LLVM: include/llvm/Transforms/Utils/ExtraPassManager.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H

16#define LLVM_TRANSFORMS_UTILS_EXTRAPASSMANAGER_H

17

20

21namespace llvm {

22

23

24

25

29 FunctionAnalysisManager::Invalidator &) {

30

31

34 }

35

37 LoopAnalysisManager::Invalidator &) {

38

39

42 }

43 };

44

46

51};

52

53

54

55

56

57template

59 : public PassInfoMixin<ExtraFunctionPassManager> {

61

62public:

63 template void addPass(PassT &&Pass) {

64 InnerFPM.addPass(std::move(Pass));

65 }

66

70 PA.intersect(InnerFPM.run(F, AM));

71 PA.abandon();

72 return PA;

73 }

74

76};

77

78

79

80

81template

83 : public PassInfoMixin<ExtraLoopPassManager> {

85

86public:

87 template void addPass(PassT &&Pass) {

88 InnerLPM.addPass(std::move(Pass));

89 }

90

95 PA.intersect(InnerLPM.run(L, AM, AR, U));

96 PA.abandon();

97 return PA;

98 }

99

101};

102

103}

104

105#endif

This header defines various interfaces for pass management in LLVM.

This header provides classes for managing a pipeline of passes over loops in LLVM IR.

FunctionAnalysisManager FAM

PassT::Result * getCachedResult(IRUnitT &IR) const

Get the cached result of an analysis pass for a given IR unit.

This class provides an interface for updating the loop pass manager based on mutations to the loop ne...

Represents a single loop in the control flow graph.

Pass interface - Implemented by all 'passes'.

bool preservedWhenStateless()

Return true if the checker's analysis was not abandoned, i.e.

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

static PreservedAnalyses all()

Construct a special preserved set that preserves all passes.

PreservedAnalysisChecker getChecker() const

Build a checker for this PreservedAnalyses and the specified analysis type.

This is an optimization pass for GlobalISel generic memory operations.

AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager

The loop analysis manager.

PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > LoopPassManager

The Loop pass manager.

PassManager< Function > FunctionPassManager

Convenience typedef for a pass manager over functions.

AnalysisManager< Function > FunctionAnalysisManager

Convenience typedef for the Function analysis manager.

The adaptor from a function pass to a loop pass computes these analyses and makes them available to t...

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