From 9994b8894ae34c8059cfce24d690ed18f8e0e94a Mon Sep 17 00:00:00 2001 From: Andrey Turetskiy Date: Sat, 20 Feb 2016 11:11:55 +0000 Subject: [PATCH] [X86] Enable the LEA optimization pass by default. Differential Revision: http://reviews.llvm.org/D16877 llvm-svn: 261429 --- llvm/lib/Target/X86/X86OptimizeLEAs.cpp | 9 +++++---- llvm/test/CodeGen/X86/lea-opt-memop-check.ll | 2 +- llvm/test/CodeGen/X86/lea-opt.ll | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/llvm/lib/Target/X86/X86OptimizeLEAs.cpp b/llvm/lib/Target/X86/X86OptimizeLEAs.cpp index 1a3a095..1114acb 100644 --- a/llvm/lib/Target/X86/X86OptimizeLEAs.cpp +++ b/llvm/lib/Target/X86/X86OptimizeLEAs.cpp @@ -36,9 +36,10 @@ using namespace llvm; #define DEBUG_TYPE "x86-optimize-LEAs" -static cl::opt EnableX86LEAOpt("enable-x86-lea-opt", cl::Hidden, - cl::desc("X86: Enable LEA optimizations."), - cl::init(false)); +static cl::opt + 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(); diff --git a/llvm/test/CodeGen/X86/lea-opt-memop-check.ll b/llvm/test/CodeGen/X86/lea-opt-memop-check.ll index 85b738e..cdf99a1 100644 --- a/llvm/test/CodeGen/X86/lea-opt-memop-check.ll +++ b/llvm/test/CodeGen/X86/lea-opt-memop-check.ll @@ -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. diff --git a/llvm/test/CodeGen/X86/lea-opt.ll b/llvm/test/CodeGen/X86/lea-opt.ll index 20e2777..4c91871 100644 --- a/llvm/test/CodeGen/X86/lea-opt.ll +++ b/llvm/test/CodeGen/X86/lea-opt.ll @@ -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 } -- 2.7.4