llvm::InlineFunction

InlineFunction overloads

Synopses

Declared in <llvm/Transforms/Utils/Cloning.h>

This function inlines the called function into the basic block of the caller. This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.

InlineResult
InlineFunction(
    CallBase& CB,
    InlineFunctionInfo& IFI,
    bool MergeAttributes = false,
    AAResults* CalleeAAR = nullptr,
    bool InsertLifetime = true,
    bool TrackInlineHistory = false,
    Function* ForwardVarArgsTo = nullptr,
    OptimizationRemarkEmitter* ORE = nullptr);
» more...

Same as above, but it will update the contextual profile. If the contextual profile is invalid (i.e. not loaded because it is not present), it defaults to the behavior of the non-contextual profile updating variant above. This makes it easy to drop-in replace uses of the non-contextual overload.

InlineResult
InlineFunction(
    CallBase& CB,
    InlineFunctionInfo& IFI,
    PGOContextualProfile& CtxProf,
    bool MergeAttributes = false,
    AAResults* CalleeAAR = nullptr,
    bool InsertLifetime = true,
    bool TrackInlineHistory = false,
    Function* ForwardVarArgsTo = nullptr,
    OptimizationRemarkEmitter* ORE = nullptr);
» more...