#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/PassRegistry.h"
#include "llvm/Support/GenericLoopInfoImpl.h"
usingnamespacellvm;
template class llvm::LoopBase<MachineBasicBlock, MachineLoop>;
template class llvm::LoopInfoBase<MachineBasicBlock, MachineLoop>;
AnalysisKey MachineLoopAnalysis::Key;
MachineLoopAnalysis::Result
MachineLoopAnalysis::run(MachineFunction &MF,
MachineFunctionAnalysisManager &MFAM) { … }
PreservedAnalyses
MachineLoopPrinterPass::run(MachineFunction &MF,
MachineFunctionAnalysisManager &MFAM) { … }
char MachineLoopInfoWrapperPass::ID = …;
MachineLoopInfoWrapperPass::MachineLoopInfoWrapperPass()
: … { … }
INITIALIZE_PASS_BEGIN(MachineLoopInfoWrapperPass, "machine-loops",
"Machine Natural Loop Construction", true, true)
INITIALIZE_PASS_DEPENDENCY(MachineDominatorTreeWrapperPass)
INITIALIZE_PASS_END(MachineLoopInfoWrapperPass, "machine-loops",
"Machine Natural Loop Construction", true, true)
char &llvm::MachineLoopInfoID = …;
bool MachineLoopInfoWrapperPass::runOnMachineFunction(MachineFunction &) { … }
bool MachineLoopInfo::invalidate(
MachineFunction &, const PreservedAnalyses &PA,
MachineFunctionAnalysisManager::Invalidator &) { … }
void MachineLoopInfo::calculate(MachineDominatorTree &MDT) { … }
void MachineLoopInfoWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const { … }
MachineBasicBlock *MachineLoop::getTopBlock() { … }
MachineBasicBlock *MachineLoop::getBottomBlock() { … }
MachineBasicBlock *MachineLoop::findLoopControlBlock() const { … }
DebugLoc MachineLoop::getStartLoc() const { … }
MachineBasicBlock *
MachineLoopInfo::findLoopPreheader(MachineLoop *L, bool SpeculativePreheader,
bool FindMultiLoopPreheader) const { … }
MDNode *MachineLoop::getLoopID() const { … }
bool MachineLoop::isLoopInvariantImplicitPhysReg(Register Reg) const { … }
bool MachineLoop::isLoopInvariant(MachineInstr &I,
const Register ExcludeReg) const { … }
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
LLVM_DUMP_METHOD void MachineLoop::dump() const {
print(dbgs());
}
#endif