Segmented stacks: omit __morestack call when there's no frame.
[oota-llvm.git] / lib / Target / X86 / X86FixupLEAs.cpp
index 1e7712c2df860a625ed3a6b0de446ddbe98e828d..6c5b86f61969ca59eaa7080d454fcd6bff089f8b 100644 (file)
@@ -150,6 +150,10 @@ FunctionPass *llvm::createX86FixupLEAs() {
 
 bool FixupLEAPass::runOnMachineFunction(MachineFunction &Func) {
   TM = &Func.getTarget();
+  const X86Subtarget &ST = TM->getSubtarget<X86Subtarget>();
+  if (!ST.LEAusesAG() && !ST.slowLEA())
+    return false;
+
   TII = static_cast<const X86InstrInfo*>(TM->getInstrInfo());
 
   DEBUG(dbgs() << "Start X86FixupLEAs\n";);