LLVM
8.0.1
|
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 &) |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< AlwaysInlinerPass > | |
static StringRef | name () |
Gets the name of the pass we are mixed into. More... | |
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 30 of file AlwaysInliner.h.
Definition at line 34 of file AlwaysInliner.h.
References llvm::createAlwaysInlinerLegacyPass(), and run().
PreservedAnalyses AlwaysInlinerPass::run | ( | Module & | M, |
ModuleAnalysisManager & | |||
) |
Definition at line 35 of file AlwaysInliner.cpp.
References llvm::PreservedAnalyses::all(), llvm::Attribute::AlwaysInline, llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::clear(), llvm::Pass::doFinalization(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::SmallVectorImpl< T >::erase(), llvm::erase_if(), F(), llvm::filterDeadComdatFunctions(), llvm::getInlineCost(), llvm::PassRegistry::getPassRegistry(), llvm::GlobalObject::hasComdat(), INITIALIZE_PASS_BEGIN(), INITIALIZE_PASS_DEPENDENCY, llvm::initializeAlwaysInlinerLegacyPassPass(), llvm::InlineFunction(), llvm::SetVector< T, SmallVector< T, N >, SmallDenseSet< T, N > >::insert(), llvm::Function::isDefTriviallyDead(), llvm::isInlineViable(), llvm::make_range(), llvm::PreservedAnalyses::none(), llvm::partition(), llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::Constant::removeDeadConstantUsers().
Referenced by AlwaysInlinerPass().