[X86] Enable the LEA optimization pass by default.
authorAndrey Turetskiy <andrey.turetskiy@gmail.com>
Sat, 20 Feb 2016 11:11:55 +0000 (11:11 +0000)
committerAndrey Turetskiy <andrey.turetskiy@gmail.com>
Sat, 20 Feb 2016 11:11:55 +0000 (11:11 +0000)
Differential Revision: http://reviews.llvm.org/D16877

llvm-svn: 261429

llvm/lib/Target/X86/X86OptimizeLEAs.cpp
llvm/test/CodeGen/X86/lea-opt-memop-check.ll
llvm/test/CodeGen/X86/lea-opt.ll

index 1a3a095..1114acb 100644 (file)
@@ -36,9 +36,10 @@ using namespace llvm;
 
 #define DEBUG_TYPE "x86-optimize-LEAs"
 
-static cl::opt<bool> EnableX86LEAOpt("enable-x86-lea-opt", cl::Hidden,
-                                     cl::desc("X86: Enable LEA optimizations."),
-                                     cl::init(false));
+static cl::opt<bool>
+    DisableX86LEAOpt("disable-x86-lea-opt", cl::Hidden,
+                     cl::desc("X86: Disable LEA optimizations."),
+                     cl::init(false));
 
 STATISTIC(NumSubstLEAs, "Number of LEA instruction substitutions");
 STATISTIC(NumRedundantLEAs, "Number of redundant LEA instructions removed");
@@ -615,7 +616,7 @@ bool OptimizeLEAPass::runOnMachineFunction(MachineFunction &MF) {
   bool Changed = false;
 
   // Perform this optimization only if we care about code size.
-  if (!EnableX86LEAOpt || !MF.getFunction()->optForSize())
+  if (DisableX86LEAOpt || !MF.getFunction()->optForSize())
     return false;
 
   MRI = &MF.getRegInfo();
index 85b738e..cdf99a1 100644 (file)
@@ -1,5 +1,5 @@
 ; REQUIRES: asserts
-; RUN: llc < %s -march=x86 -mtriple=i686-pc-win32 -enable-x86-lea-opt | FileCheck %s
+; RUN: llc < %s -march=x86 -mtriple=i686-pc-win32 | FileCheck %s
 
 ; PR26575
 ; Assertion `(Disp->isImm() || Disp->isGlobal()) && (Other.Disp->isImm() || Other.Disp->isGlobal()) && "Address displacement operand is always an immediate or a global"' failed.
index 20e2777..4c91871 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=x86_64-linux -enable-x86-lea-opt | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
 
 %struct.anon1 = type { i32, i32, i32 }
 %struct.anon2 = type { i32, [32 x i32], i32 }