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

1

2

3

4

5

6

7

8

9#ifndef LLVM_CODEGEN_MACHINEREGIONINFO_H

10#define LLVM_CODEGEN_MACHINEREGIONINFO_H

11

21#include

22

23namespace llvm {

24

29

48

60

72

73class MachineRegionInfo : public RegionInfoBase<RegionTraits> {

74public:

77

78

80

83};

84

87

88public:

89 static char ID;

90

93

95

97

98

99

105 void dump() const;

106

107};

108

109template <>

110template <>

113 const {

114 assert(isSubRegion() && "This is not a MachineBasicBlock RegionNode!");

116}

117

118template <>

119template <>

122 const {

124 auto Unconst =

126 return reinterpret_cast<MachineRegion *>(Unconst);

127}

128

132

135

136template <>

155

156template <>

174

175extern template class RegionBase<RegionTraits>;

176extern template class RegionNodeBase<RegionTraits>;

177extern template class RegionInfoBase<RegionTraits>;

178

179}

180

181#endif

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

This file builds on the ADT/GraphTraits.h file to build generic depth first graph iterator.

#define RegionNodeGraphTraits(NodeT, BlockT, RegionT)

#define RegionGraphTraits(RegionT, NodeT)

Represent the analysis usage information of a pass.

unsigned succ_size() const

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

MachineFunctionPass(char &ID)

Representation of each machine instruction.

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

Definition MachineRegionInfo.h:85

void getAnalysisUsage(AnalysisUsage &AU) const override

getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.

static char ID

Definition MachineRegionInfo.h:89

bool runOnMachineFunction(MachineFunction &F) override

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

MachineRegionInfo & getRegionInfo()

Definition MachineRegionInfo.h:94

~MachineRegionInfoPass() override

const MachineRegionInfo & getRegionInfo() const

Definition MachineRegionInfo.h:96

void verifyAnalysis() const override

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

void releaseMemory() override

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

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

print - Print out the internal state of the pass.

Definition MachineRegionInfo.h:73

~MachineRegionInfo() override

void recalculate(MachineFunction &F, MachineDominatorTree *DT, MachinePostDominatorTree *PDT, MachineDominanceFrontier *DF)

void updateStatistics(MachineRegion *R) final

Definition MachineRegionInfo.h:49

bool operator==(const MachineRegion &RN) const

Definition MachineRegionInfo.h:56

MachineRegionNode(MachineRegion *Parent, MachineBasicBlock *Entry, bool isSubRegion=false)

Definition MachineRegionInfo.h:51

Definition MachineRegionInfo.h:61

MachineRegion(MachineBasicBlock *Entry, MachineBasicBlock *Exit, MachineRegionInfo *RI, MachineDominatorTree *DT, MachineRegion *Parent=nullptr)

bool operator==(const MachineRegionNode &RN) const

Definition MachineRegionInfo.h:68

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

RegionBase(BlockT *Entry, BlockT *Exit, RegionInfoT *RI, DomTreeT *DT, RegionT *Parent=nullptr)

RegionT * getTopLevelRegion() const

RegionNodeBase(RegionT *Parent, BlockT *Entry, bool isSubRegion=false)

BlockT * getEntry() const

BasicBlock * getNodeAs() const

static df_iterator begin(const NodeRef &G)

static df_iterator end(const NodeRef &G)

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

This is an optimization pass for GlobalISel generic memory operations.

DomTreeNodeBase< MachineBasicBlock > MachineDomTreeNode

static NodeRef getEntryNode(MachineRegionInfoPass *RI)

Definition MachineRegionInfo.h:162

df_iterator< NodeRef, df_iterator_default_set< NodeRef >, false, GraphTraits< FlatIt< NodeRef > > > nodes_iterator

Definition MachineRegionInfo.h:159

static nodes_iterator nodes_end(MachineRegionInfoPass *RI)

Definition MachineRegionInfo.h:170

static nodes_iterator nodes_begin(MachineRegionInfoPass *RI)

Definition MachineRegionInfo.h:166

df_iterator< NodeRef, df_iterator_default_set< NodeRef >, false, GraphTraits< FlatIt< NodeRef > > > nodes_iterator

Definition MachineRegionInfo.h:139

static nodes_iterator nodes_end(MachineRegionInfo *RI)

Definition MachineRegionInfo.h:151

static NodeRef getEntryNode(MachineRegionInfo *RI)

Definition MachineRegionInfo.h:142

static nodes_iterator nodes_begin(MachineRegionInfo *RI)

Definition MachineRegionInfo.h:147

typename MachineRegionInfo *::UnknownGraphTypeError NodeRef

MachineInstr InstT

Definition MachineRegionInfo.h:40

MachineFunction FuncT

Definition MachineRegionInfo.h:31

MachineRegionNode RegionNodeT

Definition MachineRegionInfo.h:34

MachineRegionInfo RegionInfoT

Definition MachineRegionInfo.h:35

MachineDominanceFrontier DomFrontierT

Definition MachineRegionInfo.h:39

MachineBasicBlock BlockT

Definition MachineRegionInfo.h:32

MachineLoopInfo LoopInfoT

Definition MachineRegionInfo.h:42

MachineLoop LoopT

Definition MachineRegionInfo.h:41

MachineDomTreeNode DomTreeNodeT

Definition MachineRegionInfo.h:37

MachinePostDominatorTree PostDomTreeT

Definition MachineRegionInfo.h:38

MachineDominatorTree DomTreeT

Definition MachineRegionInfo.h:36

MachineRegion RegionT

Definition MachineRegionInfo.h:33

static unsigned getNumSuccessors(MachineBasicBlock *BB)

Definition MachineRegionInfo.h:44