LLVM: include/llvm/Transforms/Vectorize/LoopVectorize.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56#ifndef LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZE_H

57#define LLVM_TRANSFORMS_VECTORIZE_LOOPVECTORIZE_H

58

63#include

64

65namespace llvm {

66

81

84

86

87

89

90

91

93

94

95

96

97

98

99

100

101

102

109

114

119};

120

121

129

130

132private:

133

134

135 bool InterleaveOnlyWhenForced;

136

137

138

139 bool VectorizeOnlyWhenForced;

140

141public:

143

156

161

162

164

166};

167

168

169

170

171

175

176

184

185

186

192}

193

194#endif

This header defines various interfaces for pass management in LLVM.

A cache of @llvm.assume calls within a function.

BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...

Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.

Represents a single loop in the control flow graph.

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

Analysis providing profile information.

The main scalar evolution driver.

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

Provides information about what library functions are available for the current target.

This pass provides access to the codegen interfaces that are needed for IR-level transformations.

LLVM Value Representation.

An efficient, type-erasing, non-owning reference to a callable.

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.

LLVM_ABI cl::opt< bool > EnableLoopVectorization

LLVM_ABI void reportVectorizationFailure(const StringRef DebugMsg, const StringRef OREMsg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I=nullptr)

Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding o...

AnalysisManager< Function > FunctionAnalysisManager

Convenience typedef for the Function analysis manager.

LLVM_ABI cl::opt< bool > EnableLoopInterleaving

A CRTP mix-in that provides informational APIs needed for analysis passes.

A special type used by analysis passes to provide an address that identifies that particular analysis...

Definition LoopVectorize.h:85

LoopVectorizeOptions(bool InterleaveOnlyWhenForced, bool VectorizeOnlyWhenForced)

Definition LoopVectorize.h:105

LoopVectorizeOptions & setVectorizeOnlyWhenForced(bool Value)

Definition LoopVectorize.h:115

LoopVectorizeOptions & setInterleaveOnlyWhenForced(bool Value)

Definition LoopVectorize.h:110

LoopVectorizeOptions()

The current defaults when creating the pass with no arguments are: EnableLoopInterleaving = true and ...

Definition LoopVectorize.h:103

bool InterleaveOnlyWhenForced

If false, consider all loops for interleaving.

Definition LoopVectorize.h:88

bool VectorizeOnlyWhenForced

If false, consider all loops for vectorization.

Definition LoopVectorize.h:92

TargetLibraryInfo * TLI

Definition LoopVectorize.h:149

LLVM_ABI LoopVectorizeResult runImpl(Function &F)

LLVM_ABI bool processLoop(Loop *L)

ProfileSummaryInfo * PSI

Definition LoopVectorize.h:154

LoopInfo * LI

Definition LoopVectorize.h:145

LoopAccessInfoManager * LAIs

Definition LoopVectorize.h:152

DemandedBits * DB

Definition LoopVectorize.h:150

LLVM_ABI void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)

LLVM_ABI LoopVectorizePass(LoopVectorizeOptions Opts={})

ScalarEvolution * SE

Definition LoopVectorize.h:144

AssumptionCache * AC

Definition LoopVectorize.h:151

AAResults * AA

Definition LoopVectorize.h:155

LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)

OptimizationRemarkEmitter * ORE

Definition LoopVectorize.h:153

DominatorTree * DT

Definition LoopVectorize.h:147

std::function< BlockFrequencyInfo &()> GetBFI

Definition LoopVectorize.h:148

TargetTransformInfo * TTI

Definition LoopVectorize.h:146

Storage for information about made changes.

Definition LoopVectorize.h:122

LoopVectorizeResult(bool MadeAnyChange, bool MadeCFGChange)

Definition LoopVectorize.h:126

bool MadeAnyChange

Definition LoopVectorize.h:123

bool MadeCFGChange

Definition LoopVectorize.h:124

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