#include "llvm/Analysis/PostDominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/PassManager.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/raw_ostream.h"
usingnamespacellvm;
#define DEBUG_TYPE …
#ifdef EXPENSIVE_CHECKS
static constexpr bool ExpensiveChecksEnabled = true;
#else
static constexpr bool ExpensiveChecksEnabled = …;
#endif
char PostDominatorTreeWrapperPass::ID = …;
PostDominatorTreeWrapperPass::PostDominatorTreeWrapperPass()
: … { … }
INITIALIZE_PASS(…)
bool PostDominatorTree::invalidate(Function &F, const PreservedAnalyses &PA,
FunctionAnalysisManager::Invalidator &) { … }
bool PostDominatorTree::dominates(const Instruction *I1,
const Instruction *I2) const { … }
bool PostDominatorTreeWrapperPass::runOnFunction(Function &F) { … }
void PostDominatorTreeWrapperPass::verifyAnalysis() const { … }
void PostDominatorTreeWrapperPass::print(raw_ostream &OS, const Module *) const { … }
FunctionPass* llvm::createPostDomTree() { … }
AnalysisKey PostDominatorTreeAnalysis::Key;
PostDominatorTree PostDominatorTreeAnalysis::run(Function &F,
FunctionAnalysisManager &) { … }
PostDominatorTreePrinterPass::PostDominatorTreePrinterPass(raw_ostream &OS)
: … { … }
PreservedAnalyses
PostDominatorTreePrinterPass::run(Function &F, FunctionAnalysisManager &AM) { … }