LLVM: include/llvm/CodeGen/MachinePostDominators.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_CODEGEN_MACHINEPOSTDOMINATORS_H

15#define LLVM_CODEGEN_MACHINEPOSTDOMINATORS_H

16

19

20namespace llvm {

21

24

28

43}

44

45

46

47

48

51

52public:

54

56

57

59 MachineFunctionAnalysisManager::Invalidator &);

60

61

62 using Base::findNearestCommonDominator;

63

64

65

68};

69

82

93

96 std::optional PDT;

97

98public:

99 static char ID;

100

102

105

107 void getAnalysisUsage(AnalysisUsage &AU) const override;

109 void verifyAnalysis() const override;

111};

112}

113

114#endif

#define LLVM_TEMPLATE_ABI

Represent the analysis usage information of a pass.

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

Core dominator tree base class.

void recalculate(ParentType &Func)

MachineFunctionPass(char &ID)

Definition MachinePostDominators.h:71

MachinePostDominatorTree Result

Definition MachinePostDominators.h:77

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

MachinePostDominatorTreePrinterPass(raw_ostream &OS)

Definition MachinePostDominators.h:88

static bool isRequired()

Definition MachinePostDominators.h:91

const MachinePostDominatorTree & getPostDomTree() const

Definition MachinePostDominators.h:104

static char ID

Definition MachinePostDominators.h:99

MachinePostDominatorTreeWrapperPass()

void releaseMemory() override

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

Definition MachinePostDominators.h:108

MachinePostDominatorTree & getPostDomTree()

Definition MachinePostDominators.h:103

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

Definition MachinePostDominators.h:49

MachinePostDominatorTree(MachineFunction &MF)

Definition MachinePostDominators.h:55

MachinePostDominatorTree()=default

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

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

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

bool Verify(const DomTreeT &DT, typename DomTreeT::VerificationLevel VL)

void DeleteEdge(DomTreeT &DT, typename DomTreeT::NodePtr From, typename DomTreeT::NodePtr To)

void Calculate(DomTreeT &DT)

GraphDiff< MachineBasicBlock *, true > MBBPostDomTreeGraphDiff

Definition MachinePostDominators.h:27

void ApplyUpdates(DomTreeT &DT, GraphDiff< typename DomTreeT::NodePtr, DomTreeT::IsPostDominator > &PreViewCFG, GraphDiff< typename DomTreeT::NodePtr, DomTreeT::IsPostDominator > *PostViewCFG)

void InsertEdge(DomTreeT &DT, typename DomTreeT::NodePtr From, typename DomTreeT::NodePtr To)

PostDomTreeBase< MachineBasicBlock > MBBPostDomTree

Definition MachinePostDominators.h:26

This is an optimization pass for GlobalISel generic memory operations.

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

DominatorTreeBase< T, true > PostDomTreeBase

AnalysisManager< MachineFunction > MachineFunctionAnalysisManager

A CRTP mix-in that provides informational APIs needed for analysis passes.

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

A CRTP mix-in to automatically provide informational APIs needed for passes.