class ModuleToPostOrderCGSCCPassAdaptor

Declaration

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

Description

The core module pass which does a post-order walk of the SCCs and runs a CGSCC pass over each one. Designed to allow composition of a CGSCCPass(Manager) and a ModulePassManager. Note that this pass must be run with a module analysis manager as it uses the LazyCallGraph analysis. It will also run the\c CGSCCAnalysisManagerModuleProxy analysis prior to running the CGSCC pass over the module to enable a \c FunctionAnalysisManager to be used within this run safely.

Declared at: llvm/include/llvm/Analysis/CGSCCPassManager.h:329

Inherits from: PassInfoMixin

Member Variables

private std::unique_ptr<PassConceptT> Pass

Method Overview

Methods

ModuleToPostOrderCGSCCPassAdaptor(
    std::unique_ptr<PassConceptT> Pass)

Declared at: llvm/include/llvm/Analysis/CGSCCPassManager.h:336

Parameters

std::unique_ptr<PassConceptT> Pass

ModuleToPostOrderCGSCCPassAdaptor(
    llvm::ModuleToPostOrderCGSCCPassAdaptor&& Arg)

Declared at: llvm/include/llvm/Analysis/CGSCCPassManager.h:339

Parameters

llvm::ModuleToPostOrderCGSCCPassAdaptor&& Arg

static bool isRequired()

Declared at: llvm/include/llvm/Analysis/CGSCCPassManager.h:363

void printPipeline(
    llvm::raw_ostream& OS,
    function_ref<llvm::StringRef(llvm::StringRef)>
        MapClassName2PassName)

Declared at: llvm/include/llvm/Analysis/CGSCCPassManager.h:356

Parameters

llvm::raw_ostream& OS
function_ref<llvm::StringRef(llvm::StringRef)> MapClassName2PassName

llvm::PreservedAnalyses run(
    llvm::Module& M,
    llvm::ModuleAnalysisManager& AM)

Description

Runs the CGSCC pass across every SCC in the module.

Declared at: llvm/include/llvm/Analysis/CGSCCPassManager.h:354

Parameters

llvm::Module& M
llvm::ModuleAnalysisManager& AM