class LoopPass

Declaration

class LoopPass : public Pass { /* full declaration omitted */ };

Description

Pass interface - Implemented by all 'passes'. Subclass this if you are an interprocedural optimization or you do not fit into any of the more constrained passes described below.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:28

Inherits from: Pass

Method Overview

Inherited from Pass:

Methods

LoopPass(char& pid)

Declared at: llvm/include/llvm/Analysis/LoopPass.h:30

Parameters

char& pid

void assignPassManager(llvm::PMStack& PMS,
                       llvm::PassManagerType PMT)

Description

Assign pass manager to manage this pass

Declared at: llvm/include/llvm/Analysis/LoopPass.h:62

Parameters

llvm::PMStack& PMS
llvm::PassManagerType PMT

virtual void cloneBasicBlockAnalysis(
    llvm::BasicBlock* F,
    llvm::BasicBlock* T,
    llvm::Loop* L)

Description

Each loop pass can override these simple analysis hooks to update desired analysis information. cloneBasicBlockAnalysis - Clone analysis info associated with basic block.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:79

Parameters

llvm::BasicBlock* F
llvm::BasicBlock* T
llvm::Loop* L

llvm::Pass* createPrinterPass(
    llvm::raw_ostream& O,
    const std::string& Banner) const

Description

getPrinterPass - Get a pass to print the function corresponding to a Loop.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:34

Parameters

llvm::raw_ostream& O
const std::string& Banner

virtual void deleteAnalysisLoop(llvm::Loop* L)

Description

Delete analysis info associated with Loop L. Called to notify a Pass that a loop has been deleted and any associated analysis values can be deleted.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:87

Parameters

llvm::Loop* L

virtual void deleteAnalysisValue(llvm::Value* V,
                                 llvm::Loop* L)

Description

deleteAnalysisValue - Delete analysis info associated with value V.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:82

Parameters

llvm::Value* V
llvm::Loop* L

virtual bool doFinalization()

Declared at: llvm/include/llvm/Analysis/LoopPass.h:51

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

Declared at: llvm/include/llvm/Analysis/LoopPass.h:45

Parameters

llvm::Loop* L
llvm::LPPassManager& LPM

llvm::PassManagerType
getPotentialPassManagerType() const

Description

Return what kind of Pass Manager can manage this pass.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:65

void preparePassManager(llvm::PMStack& PMS)

Description

Check if available pass managers are suitable for this pass or not.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:59

Parameters

llvm::PMStack& PMS

virtual bool runOnLoop(llvm::Loop* L,
                       llvm::LPPassManager& LPM)

Declared at: llvm/include/llvm/Analysis/LoopPass.h:39

Parameters

llvm::Loop* L
llvm::LPPassManager& LPM

bool skipLoop(const llvm::Loop* L) const

Description

Optional passes call this function to check whether the pass should be skipped. This is the case when Attribute::OptimizeNone is set or when optimization bisect is over the limit.

Declared at: llvm/include/llvm/Analysis/LoopPass.h:93

Parameters

const llvm::Loop* L