diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.cpp | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp index 864e33b224f..8c54aebb9ea 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.cpp +++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp @@ -1451,14 +1451,21 @@ namespace {             RegNum < RI.getLastVirtReg(); ++RegNum)          MaxAlign = std::max(MaxAlign, RI.getRegClass(RegNum)->getAlignment()); -      FFI->setMaxAlignment(MaxAlign); +      if (FFI->getMaxAlignment() == MaxAlign) +        return false; -      return false; +      FFI->setMaxAlignment(MaxAlign); +      return true;      }      virtual const char *getPassName() const {        return "X86 Maximal Stack Alignment Calculator";      } + +    virtual void getAnalysisUsage(AnalysisUsage &AU) const { +      AU.setPreservesCFG(); +      MachineFunctionPass::getAnalysisUsage(AU); +    }    };    char MSAC::ID = 0;  | 

