LLVM: lib/Transforms/Instrumentation/GCOVProfiling.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "insert-gcov-profiling"
#define COVINIT_FUNC(Type, LLVMType, Name, Init)
#define INSTR_PROF_VISIBILITY
#define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_VTABLE_DATA(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_VALUE_NODE(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_RAW_HEADER(Type, Name, Initializer)
#define VALUE_PROF_FUNC_PARAM(ArgType, ArgName, ArgLLVMType)
#define INSTR_PROF_COMMA
#define VALUE_PROF_KIND(Enumerator, Value, Descr)
#define COVMAP_FUNC_RECORD(Type, LLVMType, Name, Initializer)
#define COVMAP_HEADER(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_DATA_DEFINED
#define COVINIT_FUNC(Type, LLVMType, Name, Init)
#define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_VTABLE_DATA(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_VALUE_NODE(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_RAW_HEADER(Type, Name, Initializer)
#define VALUE_PROF_FUNC_PARAM(ArgType, ArgName, ArgLLVMType)
#define INSTR_PROF_COMMA
#define VALUE_PROF_KIND(Enumerator, Value, Descr)
#define COVMAP_FUNC_RECORD(Type, LLVMType, Name, Initializer)
#define COVMAP_HEADER(Type, LLVMType, Name, Initializer)
#define INSTR_PROF_DATA_DEFINED
Enumerations
enum : uint32_t { GCOV_ARC_ON_TREE = 1 << 0 , GCOV_TAG_FUNCTION = 0x01000000 , GCOV_TAG_BLOCKS = 0x01410000 , GCOV_TAG_ARCS = 0x01430000 , GCOV_TAG_LINES = 0x01450000 }
Functions
static unsigned wordsOfString (StringRef s)
static StringRef getFunctionName (const DISubprogram *SP)
static SmallString< 128 > getFilename (const DIScope *SP, vfs::FileSystem &VFS)
Extract a filename for a DIScope.
static bool functionHasLines (const Function &F, unsigned &EndLine)
static bool isUsingScopeBasedEH (Function &F)
static BasicBlock * getInstrBB (CFGMST< Edge, BBInfo > &MST, Edge &E, const DenseSet< const BasicBlock * > &ExecBlocks)
static void dumpEdges (CFGMST< Edge, BBInfo > &MST, GCOVFunction &GF)
Variables
static cl::opt< std::string > DefaultGCOVVersion ("default-gcov-version", cl::init("0000"), cl::Hidden, cl::ValueRequired)
static cl::opt< bool > AtomicCounter ("gcov-atomic-counter", cl::Hidden, cl::desc("Make counter updates atomic"))

COVINIT_FUNC [1/2]

#define COVINIT_FUNC ( Type,
LLVMType,
Name,
Init )

COVINIT_FUNC [2/2]

#define COVINIT_FUNC ( Type,
LLVMType,
Name,
Init )

COVMAP_FUNC_RECORD [1/2]

#define COVMAP_FUNC_RECORD ( Type,
LLVMType,
Name,
Initializer )

COVMAP_FUNC_RECORD [2/2]

#define COVMAP_FUNC_RECORD ( Type,
LLVMType,
Name,
Initializer )

COVMAP_HEADER [1/2]

#define COVMAP_HEADER ( Type,
LLVMType,
Name,
Initializer )

COVMAP_HEADER [2/2]

#define COVMAP_HEADER ( Type,
LLVMType,
Name,
Initializer )

DEBUG_TYPE

#define DEBUG_TYPE "insert-gcov-profiling"

INSTR_PROF_COMMA [1/2]

INSTR_PROF_COMMA [2/2]

INSTR_PROF_DATA [1/2]

#define INSTR_PROF_DATA ( Type,
LLVMType,
Name,
Initializer )

INSTR_PROF_DATA [2/2]

#define INSTR_PROF_DATA ( Type,
LLVMType,
Name,
Initializer )

INSTR_PROF_DATA_DEFINED [1/2]

#define INSTR_PROF_DATA_DEFINED

INSTR_PROF_DATA_DEFINED [2/2]

#define INSTR_PROF_DATA_DEFINED

INSTR_PROF_RAW_HEADER [1/2]

#define INSTR_PROF_RAW_HEADER ( Type,
Name,
Initializer )

INSTR_PROF_RAW_HEADER [2/2]

#define INSTR_PROF_RAW_HEADER ( Type,
Name,
Initializer )

INSTR_PROF_VALUE_NODE [1/2]

#define INSTR_PROF_VALUE_NODE ( Type,
LLVMType,
Name,
Initializer )

INSTR_PROF_VALUE_NODE [2/2]

#define INSTR_PROF_VALUE_NODE ( Type,
LLVMType,
Name,
Initializer )

INSTR_PROF_VISIBILITY

#define INSTR_PROF_VISIBILITY

INSTR_PROF_VTABLE_DATA [1/2]

#define INSTR_PROF_VTABLE_DATA ( Type,
LLVMType,
Name,
Initializer )

INSTR_PROF_VTABLE_DATA [2/2]

#define INSTR_PROF_VTABLE_DATA ( Type,
LLVMType,
Name,
Initializer )

VALUE_PROF_FUNC_PARAM [1/2]

#define VALUE_PROF_FUNC_PARAM ( ArgType,
ArgName,
ArgLLVMType )

VALUE_PROF_FUNC_PARAM [2/2]

#define VALUE_PROF_FUNC_PARAM ( ArgType,
ArgName,
ArgLLVMType )

VALUE_PROF_KIND [1/2]

#define VALUE_PROF_KIND ( Enumerator,
Value,
Descr )

VALUE_PROF_KIND [2/2]

#define VALUE_PROF_KIND ( Enumerator,
Value,
Descr )

anonymous enum

Enumerator
GCOV_ARC_ON_TREE
GCOV_TAG_FUNCTION
GCOV_TAG_BLOCKS
GCOV_TAG_ARCS
GCOV_TAG_LINES

Definition at line 54 of file GCOVProfiling.cpp.

dumpEdges()

functionHasLines()

getFilename()

getFunctionName()

getInstrBB()

Definition at line 690 of file GCOVProfiling.cpp.

References llvm::CFGMST< Edge, BBInfo >::addEdge(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), E(), llvm::BasicBlock::end(), llvm::BasicBlock::getFirstInsertionPt(), llvm::Instruction::getNumSuccessors(), llvm::GetSuccessorNumber(), llvm::BasicBlock::getTerminator(), llvm::isa(), and llvm::SplitCriticalEdge().

isUsingScopeBasedEH()

wordsOfString()

AtomicCounter

cl::opt< bool > AtomicCounter("gcov-atomic-counter", cl::Hidden, cl::desc("Make counter updates atomic")) ( "gcov-atomic-counter" , cl::Hidden , cl::desc("Make counter updates atomic") ) static

DefaultGCOVVersion

cl::opt< std::string > DefaultGCOVVersion("default-gcov-version", cl::init("0000"), cl::Hidden, cl::ValueRequired) ( "default-gcov-version" , cl::init("0000") , cl::Hidden , cl::ValueRequired ) static