[PATCH] An intrinsic and lowering for instrumentation based profiling

Justin Bogner mail at justinbogner.com
Thu Dec 4 15:50:20 PST 2014


This introduces 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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: instrprof-intrinsic.patch
Type: text/x-patch
Size: 24131 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141204/70ae7779/attachment.bin>


More information about the llvm-commits mailing list