LLVM: include/llvm/Analysis/RegionPass.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_ANALYSIS_REGIONPASS_H

16#define LLVM_ANALYSIS_REGIONPASS_H

17

21#include

22

23namespace llvm {

28

29

30

31

32

34public:

36

37

38

39

40

41

42

43

44

45

46

47

48

50

51

52

53

54

55

56

58 const std::string &Banner) const override;

59

62

65

66

67

68

69

70

71 void preparePassManager(PMStack &PMS) override;

72

73 void assignPassManager(PMStack &PMS,

75

79

80

81protected:

82

83

84 bool skipRegion(Region &R) const;

85};

86

87

89 std::deque<Region*> RQ;

91 Region *CurrentRegion;

92

93public:

94 static char ID;

96

97

98

99

101

102

103

105

107

110

111

112 void dumpPassStructure(unsigned Offset) override;

113

114

120

124};

125

126}

127

128#endif

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

Analysis containing CSE Info

static bool runOnFunction(Function &F, bool PostInlining)

Represent the analysis usage information of a pass.

SmallVector< Pass *, 16 > PassVector

PMStack - This class implements a stack data structure of PMDataManager pointers.

Pass interface - Implemented by all 'passes'.

Pass(PassKind K, char &pid)

virtual bool doInitialization(Module &)

doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...

virtual bool doFinalization(Module &)

doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...

The pass manager to schedule RegionPasses.

Definition RegionPass.h:88

PMDataManager * getAsPMDataManager() override

Definition RegionPass.h:108

StringRef getPassName() const override

getPassName - Return a nice clean name for a pass.

Definition RegionPass.h:106

Pass * getContainedPass(unsigned N)

Get passes contained by this manager.

Definition RegionPass.h:115

static char ID

Definition RegionPass.h:94

void getAnalysisUsage(AnalysisUsage &Info) const override

Pass Manager itself does not invalidate any analysis info.

PassManagerType getPassManagerType() const override

Definition RegionPass.h:121

Pass * getAsPass() override

Definition RegionPass.h:109

RegionPass(char &pid)

Definition RegionPass.h:35

virtual bool doFinalization()

Definition RegionPass.h:64

virtual bool doInitialization(Region *R, RGPassManager &RGM)

Definition RegionPass.h:63

PassManagerType getPotentialPassManagerType() const override

Return what kind of Pass Manager can manage this pass.

Definition RegionPass.h:76

virtual bool runOnRegion(Region *R, RGPassManager &RGM)=0

Run the pass on a specific Region.

Pass * createPrinterPass(raw_ostream &O, const std::string &Banner) const override

Get a pass to print the LLVM IR in the region.

StringRef - Represent a constant reference to a string, i.e.

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.

PassManagerType

Different types of internal pass managers.

@ PMT_RegionPassManager

RGPassManager.