LLVM
8.0.1
|
#include "llvm/Transforms/Utils/EntryExitInstrumenter.h"
#include "llvm/Analysis/GlobalsModRef.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/Utils.h"
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 |
INITIALIZE_PASS | ( | EntryExitInstrumenter | , |
"ee-instrument" | , | ||
"Instrument function entry/exit with calls to e.g. mcount() (pre inlining)" | , | ||
false | , | ||
false | |||
) |
Referenced by runOnFunction().
|
static |
Definition at line 21 of file EntryExitInstrumenter.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, C, llvm::CallInst::Create(), llvm::ConstantInt::get(), llvm::FunctionType::get(), llvm::ConstantExpr::getBitCast(), llvm::BasicBlock::getContext(), llvm::Intrinsic::getDeclaration(), llvm::Type::getInt32Ty(), llvm::Type::getInt8PtrTy(), llvm::Module::getOrInsertFunction(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Type::getVoidTy(), llvm::report_fatal_error(), llvm::Intrinsic::returnaddress, and llvm::Instruction::setDebugLoc().
Referenced by runOnFunction().
Definition at line 66 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::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), llvm::Function::getSubprogram(), llvm::Attribute::getValueAsString(), INITIALIZE_PASS(), llvm::initializeEntryExitInstrumenterPass(), llvm::initializePostInlineEntryExitInstrumenterPass(), insertCall(), and llvm::Function::removeAttribute().
Referenced by addDiscriminators(), llvm::LoopVersioning::annotateInstWithNoAlias(), atomicSizeSupported(), cloneConstantExprWithNewAddressSpace(), collectSupportedLoops(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), createCallInst(), llvm::createCodeGenPreparePass(), llvm::createConstantHoistingPass(), llvm::createConstantPropagationPass(), llvm::createCostModelAnalysisPass(), llvm::createDwarfEHPass(), llvm::createEfficiencySanitizerPass(), llvm::createFalkorMarkStridedAccessesPass(), llvm::createGCInfoPrinter(), llvm::createLoadStoreVectorizerPass(), llvm::createLoopSimplifyPass(), llvm::createMemDepPrinter(), llvm::createMemDerefPrinter(), llvm::createNaryReassociatePass(), llvm::createPPCCTRLoopsVerify(), llvm::createSampleProfileLoaderPass(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::createShadowStackGCLoweringPass(), llvm::MachineModuleInfo::deleteMachineFunctionFor(), llvm::DependenceAnalysisWrapperPass::DependenceAnalysisWrapperPass(), doCallSiteSplitting(), llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), llvm::GVNExpression::Expression::dump(), llvm::AliasSetTracker::dump(), dumpScopes(), eliminateLoadsAcrossLoops(), eliminateTailRecursion(), eliminateUnreachableBlock(), enableCallSafepoints(), llvm::LazyValueInfo::enableDT(), ensurePromotedGV(), eraseDeadBBsAndChildren(), explicifyGuards(), llvm::AnalysisResolver::findImplPass(), FindPredecessorAutoreleaseWithSafePath(), 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(), llvm::LoopInfoWrapperPass::getLoopInfo(), getMulHu(), getNarrowIntrinsic(), GetPointerOperand(), llvm::PostDominatorTreeWrapperPass::getPostDomTree(), llvm::RegionInfoPass::getRegionInfo(), llvm::SCEVAAWrapperPass::getResult(), llvm::StackSafetyInfoWrapperPass::getResult(), llvm::PhiValuesWrapperPass::getResult(), llvm::BasicAAWrapperPass::getResult(), llvm::ScalarEvolutionWrapperPass::getSE(), INITIALIZE_PASS(), insertIfNamed(), InsertRootInitializers(), llvm::InstructionCombiningPass::InstructionCombiningPass(), instrumentMaskedLoadOrStore(), IsInRanges(), isMustExecuteIn(), isReInterleaveMask(), iterativelyFlattenCFG(), llvm::LoopAccessLegacyAnalysis::LoopAccessLegacyAnalysis(), lowerGuardIntrinsic(), lowerSubFn(), MarkBlocksLiveIn(), llvm::operator<<(), optimizeDivRem(), parseCHRFilterFiles(), patchAndReplaceAllUsesWith(), PGOMemOPSizeOptImpl(), llvm::PassManagerPrettyStackEntry::print(), llvm::AlignmentFromAssumptionsPass::processAssumption(), RedzoneSizeForScale(), llvm::AMDGPULibCalls::replaceCall(), replaceDevirtTrigger(), RetagMask(), llvm::BoundsCheckingPass::run(), llvm::DCEPass::run(), llvm::LowerAtomicPass::run(), llvm::PartiallyInlineLibCallsPass::run(), llvm::SinkingPass::run(), llvm::PromotePass::run(), llvm::BDCEPass::run(), llvm::GuardWideningPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::EntryExitInstrumenterPass::run(), llvm::WarnMissedTransformationsPass::run(), llvm::DSEPass::run(), llvm::LowerExpectIntrinsicPass::run(), llvm::CFGViewerPass::run(), llvm::ADCEPass::run(), llvm::EarlyCSEPass::run(), llvm::SCCPPass::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().
Definition at line 156 of file EntryExitInstrumenter.cpp.
post inline ee instrument |
Definition at line 153 of file EntryExitInstrumenter.cpp.