1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/Transforms/Instrumentation
Justin Bogner 430d01bf77 InstrProf: An intrinsic and lowering for instrumentation based profiling
Introduce the ``llvm.instrprof_increment`` intrinsic and the
``-instrprof`` pass. These provide the infrastructure for writing
counters for profiling, as in clang's ``-fprofile-instr-generate``.

The implementation of the instrprof pass is ported directly out of the
CodeGenPGO classes in clang, and with the followup in clang that rips
that code out to use these new intrinsics this ends up being NFC.

Doing the instrumentation this way opens some doors in terms of
improving the counter performance. For example, this will make it
simple to experiment with alternate lowering strategies, and allows us
to try handling profiling specially in some optimizations if we want
to.

Finally, this drastically simplifies the frontend and puts all of the
lowering logic in one place.

llvm-svn: 223672
2014-12-08 18:02:35 +00:00
..
AddressSanitizer.cpp Recommit of r223513 and r223514. 2014-12-05 22:19:18 +00:00
BoundsChecking.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
CMakeLists.txt InstrProf: An intrinsic and lowering for instrumentation based profiling 2014-12-08 18:02:35 +00:00
DataFlowSanitizer.cpp [DFSAN][MIPS][LLVM] Defining ShadowPtrMask variable for MIPS64 2014-12-05 21:22:32 +00:00
GCOVProfiling.cpp Emit the entry block first and the exit block second, then all the blocks in between afterwards. This is what gcc always does, and some out of tree tools depend on that. 2014-12-03 02:45:01 +00:00
InstrProfiling.cpp InstrProf: An intrinsic and lowering for instrumentation based profiling 2014-12-08 18:02:35 +00:00
Instrumentation.cpp InstrProf: An intrinsic and lowering for instrumentation based profiling 2014-12-08 18:02:35 +00:00
LLVMBuild.txt LLVMInstrumentation requires MC since r223532. 2014-12-06 02:22:11 +00:00
Makefile
MaximumSpanningTree.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MemorySanitizer.cpp [msan] Avoid extra origin address realignment. 2014-12-05 14:34:03 +00:00
SanitizerCoverage.cpp [msan] allow -fsanitize-coverage=N together with -fsanitize=memory, llvm part 2014-12-03 23:28:26 +00:00
ThreadSanitizer.cpp Use nullptr instead of NULL for variadic sentinels 2014-11-13 22:55:19 +00:00