Revert part of r142530. The patch potentially hurts performance especially
authorEvan Cheng <evan.cheng@apple.com>
Wed, 26 Oct 2011 01:17:44 +0000 (01:17 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 26 Oct 2011 01:17:44 +0000 (01:17 +0000)
on Darwin platforms where -Os means optimize for size without hurting
performance.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143002 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/ARM/2011-10-18-DisableMovtSize.ll

index 3f913ded1d156d042da967b41285802fe0878c97..fa5f0be1d748546bdb46e671bf1b08e395a3f178 100644 (file)
@@ -2106,8 +2106,9 @@ SDValue ARMTargetLowering::LowerGlobalAddressELF(SDValue Op,
   // If we have T2 ops, we can materialize the address directly via movt/movw
   // pair. This is always cheaper in terms of performance, but uses at least 2
   // extra bytes.
+  MachineFunction &MF = DAG.getMachineFunction();
   if (Subtarget->useMovt() &&
-      !DAG.getMachineFunction().getFunction()->hasFnAttr(Attribute::OptimizeForSize)) {
+      !MF.getFunction()->hasFnAttr(Attribute::OptimizeForSize)) {
     ++NumMovwMovt;
     // FIXME: Once remat is capable of dealing with instructions with register
     // operands, expand this into two nodes.
@@ -2132,8 +2133,7 @@ SDValue ARMTargetLowering::LowerGlobalAddressDarwin(SDValue Op,
   ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
 
   // FIXME: Enable this for static codegen when tool issues are fixed.
-  if (Subtarget->useMovt() && RelocM != Reloc::Static &&
-      !DAG.getMachineFunction().getFunction()->hasFnAttr(Attribute::OptimizeForSize)) {
+  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 6dae75be91c48069a2db544b42f8d8c00558cafa..4f84ab09e4bc6bc9fb41c0a4ab8c132df6657168 100644 (file)
@@ -1,4 +1,3 @@
-; RUN: llc < %s -mtriple=armv7-apple-darwin  | FileCheck %s
 ; RUN: llc < %s -mtriple=armv7-unknown-linux-eabi | FileCheck %s
 
 ; Check that when optimizing for size, a literal pool load is used