LLVM: lib/CodeGen/MachineDominators.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

22

23using namespace llvm;

24

25namespace llvm {

26

27#ifdef EXPENSIVE_CHECKS

29#else

31#endif

32}

33

36 cl::desc("Verify machine dominator info (time consuming)"));

37

38namespace llvm {

42

46CalculateWithUpdates(MBBDomTree &DT, MBBUpdates U);

47

51

55

57ApplyUpdates(MBBDomTree &DT, MBBDomTreeGraphDiff &,

58 MBBDomTreeGraphDiff *);

59

61Verify(const MBBDomTree &DT, MBBDomTree::VerificationLevel VL);

62}

63}

64

67 MachineFunctionAnalysisManager::Invalidator &) {

68

69

71 return !PAC.preserved() &&

74}

75

76AnalysisKey MachineDominatorTreeAnalysis::Key;

77

83

87 OS << "MachineDominatorTree for machine function: " << MF.getName() << '\n';

90}

91

93

95 "MachineDominator Tree Construction", true, true)

96

101}

102

104

109

111

114 if (!DT->verify(MachineDominatorTree::VerificationLevel::Basic))

116}

117

119 const Module *) const {

120 if (DT)

121 DT->print(OS);

122}

#define LLVM_EXPORT_TEMPLATE

Generic dominator tree construction - this file provides routines to construct immediate dominator in...

static cl::opt< bool, true > VerifyMachineDomInfoX("verify-machine-dom-info", cl::location(VerifyMachineDomInfo), cl::Hidden, cl::desc("Verify machine dominator info (time consuming)"))

ppc ctr loops PowerPC CTR Loops Verify

#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)

This templated class represents "all analyses that operate over " (e....

PassT::Result & getResult(IRUnitT &IR, ExtraArgTs... ExtraArgs)

Get the result of an analysis pass for a given IR unit.

Represents analyses that only rely on functions' control flow.

Base class for the actual dominator tree node.

Core dominator tree base class.

Analysis pass which computes a MachineDominatorTree.

MachineDominatorTree Result

LLVM_ABI Result run(MachineFunction &MF, MachineFunctionAnalysisManager &)

Definition MachineDominators.cpp:79

LLVM_ABI PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)

Definition MachineDominators.cpp:85

Analysis pass which computes a MachineDominatorTree.

void verifyAnalysis() const override

verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis infor...

Definition MachineDominators.cpp:112

void print(raw_ostream &OS, const Module *M=nullptr) const override

print - Print out the internal state of the pass.

Definition MachineDominators.cpp:118

bool runOnMachineFunction(MachineFunction &MF) override

runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...

Definition MachineDominators.cpp:105

void releaseMemory() override

releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...

Definition MachineDominators.cpp:110

DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...

LLVM_ABI bool invalidate(MachineFunction &, const PreservedAnalyses &PA, MachineFunctionAnalysisManager::Invalidator &)

Handle invalidation explicitly.

Definition MachineDominators.cpp:65

MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...

StringRef getName() const

getName - Return the name of the corresponding LLVM function.

A Module instance is used to store all the information related to an LLVM module.

static LLVM_ABI PassRegistry * getPassRegistry()

getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...

A set of analyses that are preserved following a run of a transformation pass.

static PreservedAnalyses all()

Construct a special preserved set that preserves all passes.

PreservedAnalysisChecker getChecker() const

Build a checker for this PreservedAnalyses and the specified analysis type.

This class implements an extremely fast bulk output stream that can only output to a stream.

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

LocationClass< Ty > location(Ty &L)

This is an optimization pass for GlobalISel generic memory operations.

Printable print(const GCNRegPressure &RP, const GCNSubtarget *ST=nullptr, unsigned DynamicVGPRBlockSize=0)

LLVM_ABI char & MachineDominatorsID

MachineDominators - This pass is a machine dominators analysis pass.

Definition MachineDominators.cpp:103

AnalysisManager< MachineFunction > MachineFunctionAnalysisManager

LLVM_ABI void report_fatal_error(Error Err, bool gen_crash_diag=true)

bool VerifyMachineDomInfo

Definition MachineDominators.cpp:30

LLVM_ABI void initializeMachineDominatorTreeWrapperPassPass(PassRegistry &)

A special type used by analysis passes to provide an address that identifies that particular analysis...