LLVM API Documentation
#include "llvm/Pass.h"#include "llvm/Module.h"#include "llvm/Instructions.h"#include "llvm/Constants.h"#include "llvm/DerivedTypes.h"#include "llvm/Intrinsics.h"#include "llvm/Transforms/Scalar.h"#include "llvm/Transforms/Utils/BasicBlockUtils.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"#include "llvm/Transforms/Instrumentation.h"#include "RSProfiling.h"#include <set>#include <map>#include <queue>

Go to the source code of this file.
Enumerations | |
| enum | RandomMeth { GBV, GBVO, HOSTCC } |
Functions | |
| static void | ReplacePhiPred (BasicBlock *btarget, BasicBlock *bold, BasicBlock *bnew) |
| static void | CollapsePhi (BasicBlock *btarget, BasicBlock *bsrc) |
| template<class T> | |
| static void | recBackEdge (BasicBlock *bb, T &BackEdges, std::map< BasicBlock *, int > &color, std::map< BasicBlock *, int > &depth, std::map< BasicBlock *, int > &finish, int &time) |
| template<class T> | |
| static void | getBackEdges (Function &F, T &BackEdges) |
| ModulePass * | llvm::createNullProfilerRSPass () |
| FunctionPass * | llvm::createRSProfilingPass () |
Variables | |
| static cl::opt< RandomMeth > | RandomMethod ("profile-randomness", cl::desc("How to randomly choose to profile:"), cl::values(clEnumValN(GBV,"global","global counter"), clEnumValN(GBVO,"ra_global","register allocated global counter"), clEnumValN(HOSTCC,"rdcc","cycle counter"), clEnumValEnd)) |
| static RegisterAnalysisGroup < RSProfilers > | A ("Profiling passes") |
| static RegisterPass < NullProfilerRS > | NP ("insert-null-profiling-rs","Measure profiling framework overhead") |
| static RegisterAnalysisGroup < RSProfilers, true > | NPT (NP) |
| static RegisterPass< ProfilerRS > | X ("insert-rs-profiling-framework","Insert random sampling instrumentation framework") |
| enum RandomMeth |
| static void CollapsePhi | ( | BasicBlock * | btarget, | |
| BasicBlock * | bsrc | |||
| ) | [static] |
Definition at line 590 of file RSProfiling.cpp.
References llvm::BasicBlock::begin(), llvm::BasicBlock::end(), and llvm::ARM_AM::ib.
Definition at line 636 of file RSProfiling.cpp.
References DOUT, llvm::Function::getEntryBlock(), llvm::Value::getName(), and recBackEdge().
| static void recBackEdge | ( | BasicBlock * | bb, | |
| T & | BackEdges, | |||
| std::map< BasicBlock *, int > & | color, | |||
| std::map< BasicBlock *, int > & | depth, | |||
| std::map< BasicBlock *, int > & | finish, | |||
| int & | time | |||
| ) | [inline, static] |
Definition at line 608 of file RSProfiling.cpp.
References llvm::TerminatorInst::getNumSuccessors(), llvm::TerminatorInst::getSuccessor(), and llvm::BasicBlock::getTerminator().
Referenced by getBackEdges().
| static void ReplacePhiPred | ( | BasicBlock * | btarget, | |
| BasicBlock * | bold, | |||
| BasicBlock * | bnew | |||
| ) | [static] |
Definition at line 579 of file RSProfiling.cpp.
References llvm::BasicBlock::begin(), llvm::BasicBlock::end(), and llvm::ARM_AM::ib.
RegisterAnalysisGroup<RSProfilers> A("Profiling passes") [static] |
Referenced by llvm::X86InstrInfo::commuteInstruction(), llvm::ImmutableListFactory< T >::Concat(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::StringMapEntry< ValueTy >::Create(), llvm::Annotable::deleteAnnotation(), llvm::StringMapEntry< ValueTy >::Destroy(), llvm::Annotable::getAnnotation(), GetMinTrailingZeros(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::Annotable::getOrCreateAnnotation(), llvm::JIT::getOrEmitGlobalVariable(), llvm::SparseSolver::getOrInitValueState(), getSymTab(), llvm::APIntOps::GreatestCommonDivisor(), llvm::SCEVExpander::InsertCastOfTo(), isIdentifiedObject(), isKnownNonNull(), isNonEscapingLocalObject(), isObjectSmallerThan(), LLVMGetNextParam(), LLVMGetPreviousParam(), LowerFDIVf32(), llvm::Value::print(), SolveQuadraticEquation(), llvm::Annotable::unlinkAnnotation(), WriteAttributeTable(), and llvm::Annotable::~Annotable().
Definition at line 123 of file RSProfiling.cpp.
Referenced by AddressIsTaken(), calculateFunctionInfo(), llvm::Interpreter::callFunction(), CheckForEscapingAllocas(), llvm::CloneBasicBlock(), llvm::ComputeMaskedBits(), EvaluateFunction(), llvm::Argument::getArgNo(), llvm::MemoryDependenceAnalysis::getDependency(), GetInstSizeWithDesc(), getSymbols(), llvm::SelectionDAGLowering::getValue(), llvm::CallSite::hasArgument(), llvm::InlineFunction(), llvm::InsertProfilingInitCall(), isDynamicConstant(), isObjectSmallerThan(), LLVMGetParam(), llvm::EscapeAnalysis::runOnFunction(), llvm::FunctionLoweringInfo::set(), and WriteModuleInfo().
| Chooser* c |
Definition at line 151 of file RSProfiling.cpp.
Referenced by llvm::apply_RI(), llvm::apply_RII(), llvm::X86Subtarget::AutoDetectSubtargetFeatures(), llvm::PriorityQueue< T, Sequence, Compare >::clear(), llvm::PriorityQueue< T, Sequence, Compare >::erase_one(), GetCurrentX86CPU(), llvm::X86JITInfo::getLazyResolverFunction(), llvm::PBQPMatrix::getRowAsVector(), llvm::sys::littleEndianHost(), llvm::normalize_matrix(), llvm::PriorityQueue< T, Sequence, Compare >::reheapify(), and llvm::PBQPMatrix::transpose().
| std::set<BasicBlock*> ChoicePoints |
Definition at line 150 of file RSProfiling.cpp.
Definition at line 109 of file RSProfiling.cpp.
Definition at line 136 of file RSProfiling.cpp.
char ID [static] |
Definition at line 74 of file RSProfiling.cpp.
RegisterPass<NullProfilerRS> NP("insert-null-profiling-rs","Measure profiling framework overhead") [static] |
Referenced by llvm::AlphaTargetLowering::LowerOperation().
RegisterAnalysisGroup<RSProfilers, true> NPT(NP) [static] |
cl::opt<RandomMeth> RandomMethod("profile-randomness", cl::desc("How to randomly choose to profile:"), cl::values(clEnumValN(GBV,"global","global counter"),clEnumValN(GBVO,"ra_global","register allocated global counter"),clEnumValN(HOSTCC,"rdcc","cycle counter"),clEnumValEnd)) [static] |
Definition at line 110 of file RSProfiling.cpp.
| uint64_t rm |
Definition at line 135 of file RSProfiling.cpp.
Definition at line 111 of file RSProfiling.cpp.
Referenced by llvm::addTag(), llvm::BumpPtrAllocator::Allocate(), llvm::MallocAllocator::Allocate(), llvm::Deserializer::BatchReadOwnedPtrs(), BinomialCoefficient(), llvm::BitsToDouble(), llvm::APInt::bitsToDouble(), llvm::BitsToFloat(), llvm::APInt::bitsToFloat(), llvm::TargetLowering::BuildSDIV(), BuildVSLDOI(), llvm::VariableDesc::classof(), llvm::CompositeTypeDesc::classof(), llvm::DerivedTypeDesc::classof(), llvm::Recycler< llvm::MachineInstr >::clear(), llvm::CloneTrace(), llvm::ConstantFoldTerminator(), llvm::DoubleToBits(), llvm::APInt::doubleToBits(), Find(), llvm::ImutAVLTree< ImutInfo >::find(), llvm::FoldingSet< llvm::ImmutableListImpl >::FindNodeOrInsertPos(), llvm::FloatToBits(), llvm::APInt::floatToBits(), llvm::ConstantArray::get(), llvm::MachineModuleInfo::getAnchoredDescriptors(), llvm::DenseMapInfo< T * >::getEmptyKey(), GetMinTrailingZeros(), llvm::FoldingSet< llvm::ImmutableListImpl >::GetOrInsertNode(), llvm::DenseMapInfo< T * >::getTombstoneKey(), llvm::APIntOps::GreatestCommonDivisor(), llvm::GreatestCommonDivisor64(), llvm::SmallVectorImpl< const const const std::pair< char *, std::pair< U::entry *, char * > > >::insert(), llvm::ImmutableMap< KeyT, ValT, ValInfo >::lookup(), LowerBUILD_VECTOR(), LowerConstant(), llvm::make_vector(), llvm::FoldingSetBucketIterator< T >::operator*(), llvm::FoldingSetIterator< T >::operator*(), llvm::FoldingSetBucketIterator< T >::operator->(), llvm::FoldingSetIterator< T >::operator->(), llvm::SmallVectorImpl< const const const std::pair< char *, std::pair< U::entry *, char * > > >::operator==(), llvm::SmallVectorImpl< const const const std::pair< char *, std::pair< U::entry *, char * > > >::push_back(), llvm::Deserializer::ReadOwnedPtr(), llvm::Deserializer::ReadPtr(), llvm::Deserializer::ReadRef(), ReplaceUses(), llvm::OwningArrayPtr< T >::reset(), llvm::OwningPtr< llvm::MemoryBuffer >::reset(), llvm::SmallVectorImpl< const const const std::pair< char *, std::pair< U::entry *, char * > > >::resize(), llvm::APIntOps::RoundDoubleToAPInt(), llvm::APInt::roundToDouble(), llvm::stripTag(), llvm::OwningArrayPtr< T >::swap(), llvm::OwningPtr< llvm::MemoryBuffer >::swap(), llvm::IntrusiveRefCntPtr< llvmc::Edge >::swap(), llvm::OwningArrayPtr< T >::take(), llvm::OwningPtr< llvm::MemoryBuffer >::take(), llvm::transferTag(), and WriteTypeTable().
| std::map<Value*, Value*> TransCache |
Definition at line 149 of file RSProfiling.cpp.
RegisterPass<ProfilerRS> X("insert-rs-profiling-framework","Insert random sampling instrumentation framework") [static] |