class ModulePass

Declaration

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

Description

ModulePass class - This class is used to implement unstructured interprocedural optimizations and analyses. ModulePasses may do anything they want to the program.

Declared at: llvm/include/llvm/Pass.h:248

Inherits from: Pass

Member Variables

Method Overview

Inherited from Pass:

Methods

ModulePass(char& pid)

Declared at: llvm/include/llvm/Pass.h:250

Parameters

char& pid

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

Description

Each pass is responsible for assigning a pass manager to itself. PMS is the stack of available pass manager.

Declared at: llvm/include/llvm/Pass.h:263

Parameters

llvm::PMStack& PMS
llvm::PassManagerType T

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

Description

createPrinterPass - Get a module printer pass.

Declared at: llvm/include/llvm/Pass.h:256

Parameters

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

llvm::PassManagerType
getPotentialPassManagerType() const

Description

Return what kind of Pass Manager can manage this pass.

Declared at: llvm/include/llvm/Pass.h:266

virtual bool runOnModule(llvm::Module& M)

Description

runOnModule - Virtual method overriden by subclasses to process the module being operated on.

Declared at: llvm/include/llvm/Pass.h:261

Parameters

llvm::Module& M

bool skipModule(llvm::Module& M) 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/Pass.h:271

Parameters

llvm::Module& M

~ModulePass()

Declared at: llvm/include/llvm/Pass.h:253