class CallGraphSCCPass

Declaration

class CallGraphSCCPass : 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/CallGraphSCCPass.h:34

Inherits from: Pass

Member Variables

Method Overview

Inherited from Pass:

Methods

CallGraphSCCPass(char& pid)

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:36

Parameters

char& pid

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

Description

Assign pass manager to manager this pass

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:68

Parameters

llvm::PMStack& PMS
llvm::PassManagerType PMT

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

Description

createPrinterPass - Get a pass that prints the Module corresponding to a CallGraph.

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:40

Parameters

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

virtual bool doFinalization(llvm::CallGraph& CG)

Description

doFinalization - This method is called after the SCC's of the program has been processed, allowing the pass to do final cleanup as necessary.

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:63

Parameters

llvm::CallGraph& CG

virtual bool doInitialization(llvm::CallGraph& CG)

Description

doInitialization - This method is called before the SCC's of the program has been processed, allowing the pass to do initialization as necessary.

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:48

Parameters

llvm::CallGraph& CG

void getAnalysisUsage(
    llvm::AnalysisUsage& Info) const

Description

getAnalysisUsage - For this class, we declare that we require and preserve the call graph. If the derived class implements this method, it should always explicitly call the implementation here.

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:78

Parameters

llvm::AnalysisUsage& Info

llvm::PassManagerType
getPotentialPassManagerType() const

Description

Return what kind of Pass Manager can manage this pass.

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:71

virtual bool runOnSCC(llvm::CallGraphSCC& SCC)

Description

runOnSCC - This method should be implemented by the subclass to perform whatever action is necessary for the specified SCC. Note that non-recursive (or only self-recursive) functions will have an SCC size of 1, where recursive portions of the call graph will have SCC size > 1. SCC passes that add or delete functions to the SCC are required to update the SCC list, otherwise stale pointers may be dereferenced.

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

Parameters

llvm::CallGraphSCC& SCC

bool skipSCC(llvm::CallGraphSCC& SCC) const

Description

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

Declared at: llvm/include/llvm/Analysis/CallGraphSCCPass.h:83

Parameters

llvm::CallGraphSCC& SCC