class LoopFullUnrollPass

Declaration

class LoopFullUnrollPass : public PassInfoMixin { /* full declaration omitted */ };

Description

Loop unroll pass that only does full loop unrolling and peeling.

Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:26

Inherits from: PassInfoMixin

Member Variables

private const int OptLevel
private const bool OnlyWhenForced
If false, use a cost model to determine whether unrolling of a loop is profitable. If true, only loops that explicitly request unrolling via metadata are considered. All other loops are skipped.
private const bool ForgetSCEV
If true, forget all loops when unrolling. If false, forget top-most loop of the currently processed loops, which removes one entry at a time from the internal SCEV records. For large loops, the former is faster.

Method Overview

  • public LoopFullUnrollPass(int OptLevel = 2, bool OnlyWhenForced = false, bool ForgetSCEV = false)
  • public llvm::PreservedAnalyses run(llvm::Loop & L, llvm::LoopAnalysisManager & AM, llvm::LoopStandardAnalysisResults & AR, llvm::LPMUpdater & U)

Methods

LoopFullUnrollPass(int OptLevel = 2,
                   bool OnlyWhenForced = false,
                   bool ForgetSCEV = false)

Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:40

Parameters

int OptLevel = 2
bool OnlyWhenForced = false
bool ForgetSCEV = false

llvm::PreservedAnalyses run(
    llvm::Loop& L,
    llvm::LoopAnalysisManager& AM,
    llvm::LoopStandardAnalysisResults& AR,
    llvm::LPMUpdater& U)

Declared at: llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h:45

Parameters

llvm::Loop& L
llvm::LoopAnalysisManager& AM
llvm::LoopStandardAnalysisResults& AR
llvm::LPMUpdater& U