class AlwaysInlinerPass
Declaration
class AlwaysInlinerPass : public PassInfoMixin { /* full declaration omitted */ };
Description
Inlines functions marked as "always_inline". Note that this does not inline call sites marked as always_inline and does not delete the functions even when all users are inlined. The normal inliner should be used to handle call site inlining, this pass's goal is to be the simplest possible pass to remove always_inline function definitions' uses by inlining them. The \c GlobalDCE pass can be used to remove these functions once all users are gone.
Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:32
Inherits from: PassInfoMixin
Member Variables
- private bool InsertLifetime
Method Overview
- public AlwaysInlinerPass(bool InsertLifetime = true)
- public static bool isRequired()
- public llvm::PreservedAnalyses run(llvm::Module & M, llvm::ModuleAnalysisManager &)
Methods
¶AlwaysInlinerPass(bool InsertLifetime = true)
AlwaysInlinerPass(bool InsertLifetime = true)
Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:36
Parameters
- bool InsertLifetime = true
¶static bool isRequired()
static bool isRequired()
Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:40
¶llvm::PreservedAnalyses run(
llvm::Module& M,
llvm::ModuleAnalysisManager&)
llvm::PreservedAnalyses run(
llvm::Module& M,
llvm::ModuleAnalysisManager&)
Declared at: llvm/include/llvm/Transforms/IPO/AlwaysInliner.h:39