LLVM  7.0.0svn
Functions | Variables
EntryExitInstrumenter.cpp File Reference
#include "llvm/Transforms/Utils/EntryExitInstrumenter.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Scalar.h"
Include dependency graph for EntryExitInstrumenter.cpp:

Go to the source code of this file.

Functions

static void insertCall (Function &CurFn, StringRef Func, Instruction *InsertionPt, DebugLoc DL)
 
static bool runOnFunction (Function &F, bool PostInlining)
 
 INITIALIZE_PASS (EntryExitInstrumenter, "ee-instrument", "Instrument function entry/exit with calls to e.g. mcount() (pre inlining)", false, false) INITIALIZE_PASS(PostInlineEntryExitInstrumenter
 
post inline ee Instrument function entry exit with calls to e g mcount () " "(post inlining)"
 

Variables

post inline ee instrument
 
post inline ee Instrument function entry exit with calls to e g false
 

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( EntryExitInstrumenter  ,
"ee-instrument ,
"Instrument function entry/exit with calls to e.g. mcount() (pre inlining)"  ,
false  ,
false   
)

Referenced by runOnFunction().

◆ insertCall()

static void insertCall ( Function CurFn,
StringRef  Func,
Instruction InsertionPt,
DebugLoc  DL 
)
static

◆ mcount()

post inline ee Instrument function entry exit with calls to e g mcount ( )

◆ runOnFunction()

static bool runOnFunction ( Function F,
bool  PostInlining 
)
static

Definition at line 67 of file EntryExitInstrumenter.cpp.

References llvm::AnalysisUsage::addPreserved(), llvm::Function::begin(), llvm::StringRef::empty(), F(), llvm::AttributeList::FunctionIndex, llvm::DebugLoc::get(), llvm::Instruction::getDebugLoc(), llvm::Function::getFnAttribute(), llvm::PassRegistry::getPassRegistry(), llvm::Function::getSubprogram(), llvm::Attribute::getValueAsString(), INITIALIZE_PASS(), llvm::initializeEntryExitInstrumenterPass(), llvm::initializePostInlineEntryExitInstrumenterPass(), insertCall(), and llvm::Function::removeAttribute().

Referenced by addAcyclicInnerLoop(), addDiscriminators(), llvm::LoopVersioning::annotateInstWithNoAlias(), atomicSizeSupported(), cloneConstantExprWithNewAddressSpace(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::createCodeGenPreparePass(), llvm::createConstantHoistingPass(), llvm::createConstantPropagationPass(), llvm::createCostModelAnalysisPass(), llvm::createDwarfEHPass(), llvm::createEfficiencySanitizerPass(), llvm::createFalkorMarkStridedAccessesPass(), llvm::createLoopSimplifyPass(), llvm::createMemDepPrinter(), llvm::createMemDerefPrinter(), llvm::createNaryReassociatePass(), llvm::createPPCCTRLoopsVerify(), llvm::createSampleProfileLoaderPass(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::createShadowStackGCLoweringPass(), CreateVarArgHelper(), llvm::createWebAssemblyOptimizeReturned(), llvm::MachineModuleInfo::deleteMachineFunctionFor(), llvm::DependenceAnalysisWrapperPass::DependenceAnalysisWrapperPass(), DescKind(), DFS(), doCallSiteSplitting(), llvm::GVNExpression::Expression::dump(), llvm::AliasSetTracker::dump(), eliminateLoadsAcrossLoops(), eliminateTailRecursion(), eliminateUnreachableBlock(), enableCallSafepoints(), llvm::LazyValueInfo::enableDT(), ensurePromotedGV(), llvm::AnalysisResolver::findImplPass(), FindPredecessorAutoreleaseWithSafePath(), findRetainForStoreStrongContraction(), formLCSSAOnAllLoops(), llvm::FPPassManager::FPPassManager(), llvm::FunctionPass::FunctionPass(), llvm::AAResultsWrapperPass::getAAResults(), llvm::LazyBlockFrequencyInfoPass::getBFI(), llvm::BlockFrequencyInfoWrapperPass::getBFI(), llvm::BranchProbabilityInfoWrapperPass::getBPI(), llvm::DominanceFrontierWrapperPass::getDominanceFrontier(), llvm::DominatorTreeWrapperPass::getDomTree(), getInductionVariable(), llvm::LoopInfoWrapperPass::getLoopInfo(), GetPointerOperand(), llvm::PostDominatorTreeWrapperPass::getPostDomTree(), llvm::RegionInfoPass::getRegionInfo(), llvm::SCEVAAWrapperPass::getResult(), llvm::BasicAAWrapperPass::getResult(), llvm::ScalarEvolutionWrapperPass::getSE(), hasUnsafeFPMath(), INITIALIZE_PASS(), INITIALIZE_PASS_WITH_OPTIONS(), insertIfNamed(), InsertRootInitializers(), llvm::InstructionCombiningPass::InstructionCombiningPass(), instrumentMaskedLoadOrStore(), isAtomic(), IsInRanges(), IsPointerOffset(), isReInterleaveMask(), iterativelyFlattenCFG(), llvm::LoopAccessLegacyAnalysis::LoopAccessLegacyAnalysis(), lowerGuardIntrinsic(), lowerSubFn(), MarkBlocksLiveIn(), llvm::operator<<(), optimizeDivRem(), patchAndReplaceAllUsesWith(), PGOMemOPSizeOptImpl(), preheader(), llvm::PassManagerPrettyStackEntry::print(), llvm::AlignmentFromAssumptionsPass::processAssumption(), propagateMetadata(), RedzoneSizeForScale(), llvm::AMDGPULibCalls::replaceCall(), replaceDevirtTrigger(), RetagMask(), llvm::BoundsCheckingPass::run(), llvm::DCEPass::run(), llvm::LowerAtomicPass::run(), llvm::SinkingPass::run(), llvm::PartiallyInlineLibCallsPass::run(), llvm::PromotePass::run(), llvm::BDCEPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::EntryExitInstrumenterPass::run(), llvm::DSEPass::run(), llvm::LowerExpectIntrinsicPass::run(), llvm::ADCEPass::run(), llvm::CFGViewerPass::run(), llvm::SCCPPass::run(), llvm::EarlyCSEPass::run(), llvm::SimplifyCFGPass::run(), llvm::ReassociatePass::run(), llvm::PrintFunctionPass::run(), llvm::MemCpyOptPass::runImpl(), runImpl(), llvm::FPPassManager::runOnModule(), scalarizeMaskedScatter(), setCannotDuplicate(), setFastFlags(), shouldInstrumentBlock(), llvm::simplifyLoop(), TypeSizeToSizeIndex(), unifyBitWidth(), unifyReturnBlockSet(), updatePredecessorProfileMetadata(), llvm::verifyModule(), writeCFGToDotFile(), and llvm::LazyValueInfoWrapperPass::~LazyValueInfoWrapperPass().

Variable Documentation

◆ false

post inline ee Instrument function entry exit with calls to e g false

Definition at line 147 of file EntryExitInstrumenter.cpp.

◆ instrument

post inline ee instrument

Definition at line 144 of file EntryExitInstrumenter.cpp.