LLVM API Documentation

RSProfiling.cpp File Reference

#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>

Include dependency graph for RSProfiling.cpp:

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)
ModulePassllvm::createNullProfilerRSPass ()
FunctionPassllvm::createRSProfilingPass ()

Variables

static cl::opt< RandomMethRandomMethod ("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")


Enumeration Type Documentation

enum RandomMeth

Enumerator:
GBV 
GBVO 
HOSTCC 

Definition at line 54 of file RSProfiling.cpp.


Function Documentation

static void CollapsePhi ( BasicBlock btarget,
BasicBlock bsrc 
) [static]

template<class T>
static void getBackEdges ( Function F,
T BackEdges 
) [inline, static]

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 
) [inline, static]

static void ReplacePhiPred ( BasicBlock btarget,
BasicBlock bold,
BasicBlock bnew 
) [static]


Variable Documentation

RegisterAnalysisGroup<RSProfilers> A("Profiling passes") [static]

Chooser* c

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]

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.

const Type* T

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]




This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.