Disable my constant island pass optimization (to make use soimm more effectively...
authorEvan Cheng <evan.cheng@apple.com>
Fri, 24 Jul 2009 19:31:03 +0000 (19:31 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 24 Jul 2009 19:31:03 +0000 (19:31 +0000)
llvm-svn: 76995

llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
llvm/lib/Target/ARM/README.txt

index 1f584d4e3ef0fef3ee323097804f611a948e73b0..48db39b623a895af2d9e91b7cecb36befb726404 100644 (file)
@@ -696,13 +696,11 @@ bool ARMConstantIslands::OffsetIsInRange(unsigned UserOffset,
     // User before the Trial.
     if (TrialOffset - UserOffset <= MaxDisp)
       return true;
-    if (IsSoImm && ARM_AM::getSOImmVal(TrialOffset - UserOffset) != -1)
-      return true;
+    // FIXME: Make use full range of soimm values.
   } else if (NegativeOK) {
     if (UserOffset - TrialOffset <= MaxDisp)
       return true;
-    if (IsSoImm && ARM_AM::getSOImmVal(~(TrialOffset - UserOffset)) != -1)
-      return true;
+    // FIXME: Make use full range of soimm values.
   }
   return false;
 }
index 3e8c54a05a83609b89361f33714590ee8a86d501..a587a2bf7ea32cf70a88a5683f3b2dc114a2ae60 100644 (file)
@@ -541,3 +541,8 @@ while ARMConstantIslandPass only need to worry about LDR (literal).
 //===---------------------------------------------------------------------===//
 
 We need to fix constant isel for ARMv6t2 to use MOVT.
+
+//===---------------------------------------------------------------------===//
+
+Constant island pass should make use of full range SoImm values for LEApcrel.
+Be careful though as the last attempt caused infinite looping on lencod.