diff options
Diffstat (limited to 'llvm/lib/CodeGen/MachineLoopInfo.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MachineLoopInfo.cpp | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MachineLoopInfo.cpp b/llvm/lib/CodeGen/MachineLoopInfo.cpp index 3b8b430d1b0f..0c1439da9b29 100644 --- a/llvm/lib/CodeGen/MachineLoopInfo.cpp +++ b/llvm/lib/CodeGen/MachineLoopInfo.cpp @@ -18,6 +18,7 @@  #include "llvm/CodeGen/MachineDominators.h"  #include "llvm/CodeGen/Passes.h"  #include "llvm/Config/llvm-config.h" +#include "llvm/InitializePasses.h"  #include "llvm/Support/Debug.h"  #include "llvm/Support/raw_ostream.h"  using namespace llvm; @@ -27,6 +28,9 @@ template class llvm::LoopBase<MachineBasicBlock, MachineLoop>;  template class llvm::LoopInfoBase<MachineBasicBlock, MachineLoop>;  char MachineLoopInfo::ID = 0; +MachineLoopInfo::MachineLoopInfo() : MachineFunctionPass(ID) { +  initializeMachineLoopInfoPass(*PassRegistry::getPassRegistry()); +}  INITIALIZE_PASS_BEGIN(MachineLoopInfo, "machine-loops",                  "Machine Natural Loop Construction", true, true)  INITIALIZE_PASS_DEPENDENCY(MachineDominatorTree) @@ -36,11 +40,15 @@ INITIALIZE_PASS_END(MachineLoopInfo, "machine-loops",  char &llvm::MachineLoopInfoID = MachineLoopInfo::ID;  bool MachineLoopInfo::runOnMachineFunction(MachineFunction &) { -  releaseMemory(); -  LI.analyze(getAnalysis<MachineDominatorTree>().getBase()); +  calculate(getAnalysis<MachineDominatorTree>());    return false;  } +void MachineLoopInfo::calculate(MachineDominatorTree &MDT) { +  releaseMemory(); +  LI.analyze(MDT.getBase()); +} +  void MachineLoopInfo::getAnalysisUsage(AnalysisUsage &AU) const {    AU.setPreservesAll();    AU.addRequired<MachineDominatorTree>();  | 
