llvm-project/llvm/tools/opt
Hal Finkel 40d7f5c277 Add a counter-function insertion pass
As discussed in https://reviews.llvm.org/D22666, our current mechanism to
support -pg profiling, where we insert calls to mcount(), or some similar
function, is fundamentally broken. We insert these calls in the frontend, which
means they get duplicated when inlining, and so the accumulated execution
counts for the inlined-into functions are wrong.

Because we don't want the presence of these functions to affect optimizaton,
they should be inserted in the backend. Here's a pass which would do just that.
The knowledge of the name of the counting function lives in the frontend, so
we're passing it here as a function attribute. Clang will be updated to use
this mechanism.

Differential Revision: https://reviews.llvm.org/D22825

llvm-svn: 280347
2016-09-01 09:42:39 +00:00
..
AnalysisWrappers.cpp [CG] Actually hoist up the generic CallGraphPrinter pass from a weird 2016-03-10 11:08:44 +00:00
BreakpointPrinter.cpp DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
BreakpointPrinter.h
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
GraphPrinters.cpp
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
NewPMDriver.cpp [PM] Port ModuleSummaryIndex analysis to new pass manager 2016-08-12 13:53:02 +00:00
NewPMDriver.h [PM] Port ModuleSummaryIndex analysis to new pass manager 2016-08-12 13:53:02 +00:00
PassPrinters.cpp
PassPrinters.h
PrintSCC.cpp SCC: Change clients to use const, NFC 2014-04-25 18:24:50 +00:00
opt.cpp Add a counter-function insertion pass 2016-09-01 09:42:39 +00:00