llvm-project/llvm/test/Instrumentation/InstrProfiling
Vedant Kumar 9a041a7522 [InstrProfiling] Emit the runtime hook when no counters are lowered
The API verification tool tapi has difficulty processing frameworks
which enable code coverage, but which have no code. The profile lowering
pass does not emit the runtime hook in this case because no counters are
lowered.

While the hook is not needed for program correctness (the profile
runtime doesn't have to be linked in), it's needed to allow tapi to
validate the exported symbol set of instrumented binaries.

It was not possible to add a workaround in tapi for empty binaries due
to an architectural issue: tapi generates its expected symbol set before
it inspects a binary. Changing that model has a higher cost than simply
forcing llvm to always emit the runtime hook.

rdar://36076904

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

llvm-svn: 326350
2018-02-28 19:00:08 +00:00
..
X86
PR23499.ll
always_inline.ll [InstrProf] Don't take the address of alwaysinline available_externally functions 2017-06-13 22:12:35 +00:00
early-exit.ll [InstrProfiling] Don't exit early when an unused intrinsic is found 2018-01-27 00:01:04 +00:00
icall.ll
linkage.ll [InstrProfiling] Emit the runtime hook when no counters are lowered 2018-02-28 19:00:08 +00:00
no-counters.ll [InstrProfiling] Emit the runtime hook when no counters are lowered 2018-02-28 19:00:08 +00:00
noruntime.ll
platform.ll
profiling.ll [InstrProfiling] Emit the runtime hook when no counters are lowered 2018-02-28 19:00:08 +00:00