LLVM 20.0.0git
|
Inlines functions marked as "always_inline". More...
#include "llvm/Transforms/IPO/AlwaysInliner.h"
Public Member Functions | |
AlwaysInlinerPass (bool InsertLifetime=true) | |
PreservedAnalyses | run (Module &M, ModuleAnalysisManager &) |
Public Member Functions inherited from llvm::PassInfoMixin< AlwaysInlinerPass > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Static Public Member Functions | |
static bool | isRequired () |
Static Public Member Functions inherited from llvm::PassInfoMixin< AlwaysInlinerPass > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. | |
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 GlobalDCE
pass can be used to remove these functions once all users are gone.
Definition at line 32 of file AlwaysInliner.h.
Definition at line 36 of file AlwaysInliner.h.
|
inlinestatic |
Definition at line 40 of file AlwaysInliner.h.
PreservedAnalyses AlwaysInlinerPass::run | ( | Module & | M, |
ModuleAnalysisManager & | MAM | ||
) |
Definition at line 168 of file AlwaysInliner.cpp.
References llvm::PreservedAnalyses::all(), F, FAM, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), MAM, and llvm::PreservedAnalyses::preserveSet().