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

20#include

21

22namespace llvm {

24class RGPassManager;

26class RegionInfo;

27

28

29

30

31

33public:

35

36

37

38

39

40

41

42

43

44

45

46

47

49

50

51

52

53

54

55

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

58

61

64

65

66

67

68

69

71

74

77 }

78

79

80protected:

81

82

84};

85

86

88 std::deque<Region*> RQ;

90 Region *CurrentRegion;

91

92public:

93 static char ID;

95

96

97

98

100

101

102

104

106

109

110

112

113

117 return FP;

118 }

119

122 }

123};

124

125}

126

127#endif

Analysis containing CSE Info

assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())

Represent the analysis usage information of a pass.

FunctionPass class - This class is used to implement most global optimizations.

PMDataManager provides the common place to manage the analysis data used by pass managers.

SmallVector< Pass *, 16 > PassVector

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

Pass interface - Implemented by all 'passes'.

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.

PMDataManager * getAsPMDataManager() override

StringRef getPassName() const override

getPassName - Return a nice clean name for a pass.

void dumpPassStructure(unsigned Offset) override

Print passes managed by this manager.

Pass * getContainedPass(unsigned N)

Get passes contained by this manager.

void getAnalysisUsage(AnalysisUsage &Info) const override

Pass Manager itself does not invalidate any analysis info.

PassManagerType getPassManagerType() const override

bool runOnFunction(Function &F) override

Execute all of the passes scheduled for execution.

Pass * getAsPass() override

A pass that runs on each Region in a function.

void preparePassManager(PMStack &PMS) override

Check if available pass managers are suitable for this pass or not.

bool skipRegion(Region &R) const

Optional passes call this function to check whether the pass should be skipped.

void assignPassManager(PMStack &PMS, PassManagerType PMT=PMT_RegionPassManager) override

Assign pass manager to manage this pass.

virtual bool doFinalization()

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

PassManagerType getPotentialPassManagerType() const override

Return what kind of Pass Manager can manage this pass.

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.