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

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_ANALYSIS_LOOPPASS_H

15#define LLVM_ANALYSIS_LOOPPASS_H

16

20#include

21

22namespace llvm {

23

28

30public:

32

33

34

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

37

38

39

41

44

45

49

50

51

53

54

55

56

57

58

59

60 void preparePassManager(PMStack &PMS) override;

61

62

64

65

69

70protected:

71

72

73

74 bool skipLoop(const Loop *L) const;

75};

76

78public:

79 static char ID;

81

82

83

85

86

87

89

91

94

95

96 void dumpPassStructure(unsigned Offset) override;

97

103

107

108public:

109

110 void addLoop(Loop &L);

111

112

113 void markLoopAsDeleted(Loop &L);

114

115private:

116 std::deque<Loop *> LQ;

118 Loop *CurrentLoop;

119 bool CurrentLoopDeleted;

120};

121

122

123

124

135

136}

137

138#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.

void setPreservesAll()

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

static char ID

Definition LoopPass.h:79

Pass * getAsPass() override

Definition LoopPass.h:93

PassManagerType getPassManagerType() const override

Definition LoopPass.h:104

StringRef getPassName() const override

getPassName - Return a nice clean name for a pass.

Definition LoopPass.h:90

PMDataManager * getAsPMDataManager() override

Definition LoopPass.h:92

LoopPass * getContainedPass(unsigned N)

Definition LoopPass.h:98

void getAnalysisUsage(AnalysisUsage &Info) const override

Pass Manager itself does not invalidate any analysis info.

PassManagerType getPotentialPassManagerType() const override

Return what kind of Pass Manager can manage this pass.

Definition LoopPass.h:66

virtual bool doInitialization(Loop *L, LPPassManager &LPM)

Definition LoopPass.h:46

LoopPass(char &pid)

Definition LoopPass.h:31

virtual bool runOnLoop(Loop *L, LPPassManager &LPM)=0

virtual bool doFinalization()

Definition LoopPass.h:52

Represents a single loop in the control flow graph.

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...

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_LoopPassManager

LPPassManager.

static LLVM_ABI char ID

Definition LoopPass.h:126

bool runOnFunction(Function &F) override

runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.

Definition LoopPass.h:129

void getAnalysisUsage(AnalysisUsage &AU) const override

getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...

Definition LoopPass.h:131

LLVM_ABI LCSSAVerificationPass()