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

1

2

3

4

5

6

7

8

9

10

11

12

13

17

18using namespace llvm;

19

20namespace llvm {

23

25

27Calculate(MBBPostDomTree &DT);

29InsertEdge(MBBPostDomTree &DT, MachineBasicBlock *From,

32DeleteEdge(MBBPostDomTree &DT, MachineBasicBlock *From,

35ApplyUpdates(MBBPostDomTree &DT, MBBPostDomTreeGraphDiff &,

36 MBBPostDomTreeGraphDiff *);

39 MBBPostDomTree::VerificationLevel VL);

40

41}

43}

44

45AnalysisKey MachinePostDominatorTreeAnalysis::Key;

46

52

56 OS << "MachinePostDominatorTree for machine function: " << MF.getName()

57 << '\n';

60}

61

63

64

66 "MachinePostDominator Tree Construction", true, true)

67

72}

73

77 PDT->recalculate(F);

78 return false;

79}

80

86

89 MachineFunctionAnalysisManager::Invalidator &) {

90

91

93 return !PAC.preserved() &&

96}

97

101

105

106

108 return nullptr;

109 }

110

111 return NCD;

112}

113

116 !PDT->verify(MachinePostDominatorTree::VerificationLevel::Basic))

118}

119

121 const Module *M) const {

122 PDT->print(OS);

123}

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

#define LLVM_EXPORT_TEMPLATE

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

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.

Represent the analysis usage information of a pass.

void setPreservesAll()

Set by analyses that do not transform their input at all.

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

bool empty() const

empty - Check if the array is empty.

const T & consume_front()

consume_front() - Returns the first element and drops it from ArrayRef.

Represents analyses that only rely on functions' control flow.

Core dominator tree base class.

T * findNearestCommonDominator(T *A, T *B) const

DomTreeNodeBase< T > * getNode(const T *BB) const

bool isVirtualRoot(const DomTreeNodeBase< T > *A) const

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

void getAnalysisUsage(AnalysisUsage &AU) const override

getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.

StringRef getName() const

getName - Return the name of the corresponding LLVM function.

MachinePostDominatorTree Result

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

Definition MachinePostDominators.cpp:48

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

Definition MachinePostDominators.cpp:54

void verifyAnalysis() const override

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

Definition MachinePostDominators.cpp:114

bool runOnMachineFunction(MachineFunction &MF) override

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

Definition MachinePostDominators.cpp:74

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

print - Print out the internal state of the pass.

Definition MachinePostDominators.cpp:120

void getAnalysisUsage(AnalysisUsage &AU) const override

getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.

Definition MachinePostDominators.cpp:81

MachinePostDominatorTree - an analysis pass wrapper for DominatorTree used to compute the post-domina...

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

Handle invalidation explicitly.

Definition MachinePostDominators.cpp:87

LLVM_ABI MachineBasicBlock * findNearestCommonDominator(ArrayRef< MachineBasicBlock * > Blocks) const

Returns the nearest common dominator of the given blocks.

Definition MachinePostDominators.cpp:98

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.

This is an optimization pass for GlobalISel generic memory operations.

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

LLVM_ABI void initializeMachinePostDominatorTreeWrapperPassPass(PassRegistry &)

AnalysisManager< MachineFunction > MachineFunctionAnalysisManager

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

bool VerifyMachineDomInfo

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