10 #ifndef LLVM_TRANSFORMS_SCALAR_LOOPUNROLLPASS_H 11 #define LLVM_TRANSFORMS_SCALAR_LOOPUNROLLPASS_H 30 const bool OnlyWhenForced;
34 : OptLevel(OptLevel), OnlyWhenForced(OnlyWhenForced) {}
65 : OptLevel(OptLevel), OnlyWhenForced(OnlyWhenForced) {}
70 AllowPartial = Partial;
76 AllowRuntime = Runtime;
82 AllowPeeling = Peeling;
89 AllowUpperBound = UpperBound;
110 : UnrollOpts(UnrollOpts) {}
117 #endif // LLVM_TRANSFORMS_SCALAR_LOOPUNROLLPASS_H A set of parameters used to control various transforms performed by the LoopUnroll pass...
LoopUnrollOptions(int OptLevel=2, bool OnlyWhenForced=false)
This class represents lattice values for constants.
bool OnlyWhenForced
If false, use a cost model to determine whether unrolling of a loop is profitable.
LoopUnrollOptions & setUpperBound(bool UpperBound)
Enables or disables the use of trip count upper bound in loop unrolling.
The adaptor from a function pass to a loop pass computes these analyses and makes them available to t...
Loop unroll pass that only does full loop unrolling.
Loop unroll pass that will support both full and partial unrolling.
LoopFullUnrollPass(int OptLevel=2, bool OnlyWhenForced=false)
Optional< bool > AllowPeeling
A CRTP mix-in to automatically provide informational APIs needed for passes.
This header provides classes for managing per-loop analyses.
LoopUnrollOptions & setPartial(bool Partial)
Enables or disables partial unrolling.
LoopUnrollPass(LoopUnrollOptions UnrollOpts={})
This uses the target information (or flags) to control the thresholds for different unrolling stategi...
A set of analyses that are preserved following a run of a transformation pass.
PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &U)
LoopUnrollOptions & setOptLevel(int O)
This class provides an interface for updating the loop pass manager based on mutations to the loop ne...
Optional< bool > AllowPartial
Optional< bool > AllowUpperBound
LoopUnrollOptions & setRuntime(bool Runtime)
Enables or disables unrolling of loops with runtime trip count.
Represents a single loop in the control flow graph.
A container for analyses that lazily runs them and caches their results.
Optional< bool > AllowRuntime
This header defines various interfaces for pass management in LLVM.
LoopUnrollOptions & setPeeling(bool Peeling)
Enables or disables loop peeling.