Don't use movw / movt for iOS static codegen for now to workaround some tools issues...
authorEvan Cheng <evan.cheng@apple.com>
Fri, 27 May 2011 20:11:27 +0000 (20:11 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 27 May 2011 20:11:27 +0000 (20:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132211 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/ARM/movt-movw-global.ll

index 5c1cdedd84af4caa4641c060107129bd56df783b..682af2f6b8178631895469aa2a87267c1edbb40e 100644 (file)
@@ -2082,7 +2082,8 @@ SDValue ARMTargetLowering::LowerGlobalAddressDarwin(SDValue Op,
   MachineFunction &MF = DAG.getMachineFunction();
   ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
 
-  if (Subtarget->useMovt()) {
+  // FIXME: Enable this for static codegen when tool issues are fixed.
+  if (Subtarget->useMovt() && RelocM != Reloc::Static) {
     ++NumMovwMovt;
     // FIXME: Once remat is capable of dealing with instructions with register
     // operands, expand this into two nodes.
index 5795c7b5c963118f414e36b4ba6433d16a871b5c..991d728dddac9a263292b14bae5b49b014a9ab97 100644 (file)
@@ -16,8 +16,8 @@ entry:
 ; IOS-PIC:      movw    r0, :lower16:(L_foo$non_lazy_ptr-(LPC0_0+8))
 ; IOS-PIC-NEXT: movt    r0, :upper16:(L_foo$non_lazy_ptr-(LPC0_0+8))
 
-; IOS-STATIC:      movw    r0, :lower16:_foo
-; IOS-STATIC-NEXT: movt    r0, :upper16:_foo
+; IOS-STATIC-NOT:      movw    r0, :lower16:_foo
+; IOS-STATIC-NOT:       movt    r0, :upper16:_foo
   ret i32* @foo
 }
 
@@ -32,8 +32,8 @@ entry:
 ; IOS-PIC:      movw    r1, :lower16:(L_foo$non_lazy_ptr-(LPC1_0+8))
 ; IOS-PIC-NEXT: movt    r1, :upper16:(L_foo$non_lazy_ptr-(LPC1_0+8))
 
-; IOS-STATIC:      movw    r1, :lower16:_foo
-; IOS-STATIC-NEXT: movt    r1, :upper16:_foo
+; IOS-STATIC-NOT:      movw    r1, :lower16:_foo
+; IOS-STATIC-NOT:      movt    r1, :upper16:_foo
   store i32 %baz, i32* @foo, align 4
   ret void
 }