struct PassModel

Declaration

template <typename IRUnitT,
          typename PassT,
          typename PreservedAnalysesT,
          typename AnalysisManagerT,
          typename... ExtraArgTs>
struct PassModel { /* full declaration omitted */ };

Description

A template wrapper used to implement the polymorphic API. Can be instantiated for any object which provides a \c run method accepting an \c IRUnitT& and an \c AnalysisManager<IRUnit>&. It requires the pass to be a copyable object.

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:69

Templates

IRUnitT
PassT
PreservedAnalysesT
AnalysisManagerT
ExtraArgTs

Member Variables

public PassT Pass

Method Overview

Methods

PassModel<IRUnitT,
          PassT,
          PreservedAnalysesT,
          AnalysisManagerT,
          ExtraArgTs...>(PassT Pass)

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:70

Parameters

PassT Pass

PassModel<IRUnitT,
          PassT,
          PreservedAnalysesT,
          AnalysisManagerT,
          ExtraArgTs...>(
    const PassModel<IRUnitT,
                    PassT,
                    PreservedAnalysesT,
                    AnalysisManagerT,
                    ExtraArgTs...>& Arg)

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:73

Parameters

const PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...>& Arg

PassModel<IRUnitT,
          PassT,
          PreservedAnalysesT,
          AnalysisManagerT,
          ExtraArgTs...>(
    PassModel<IRUnitT,
              PassT,
              PreservedAnalysesT,
              AnalysisManagerT,
              ExtraArgTs...>&& Arg)

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:74

Parameters

PassModel<IRUnitT, PassT, PreservedAnalysesT, AnalysisManagerT, ExtraArgTs...>&& Arg

bool isRequired() const

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:113

llvm::StringRef name() const

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:97

template <typename T>
static std::enable_if_t<
    is_detected<has_required_t, T>::value,
    bool>
passIsRequiredImpl()

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:104

Templates

T

template <typename T>
static std::enable_if_t<
    !is_detected<has_required_t, T>::value,
    bool>
passIsRequiredImpl()

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:109

Templates

T

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

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:91

Parameters

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

PreservedAnalysesT run(IRUnitT& IR,
                       AnalysisManagerT& AM,
                       ExtraArgTs... ExtraArgs)

Declared at: llvm/include/llvm/IR/PassManagerInternal.h:86

Parameters

IRUnitT& IR
AnalysisManagerT& AM
ExtraArgTs... ExtraArgs