llvm-project/llvm/test/Transforms/SampleProfile
Diego Novillo 84f06cc835 SamplePGO - Add initial support for inliner annotations.
This adds two thresholds to the sample profiler to affect inlining
decisions: the concept of global hotness and coldness.

Functions that have accumulated more than a certain fraction of samples at
runtime, are annotated with the InlineHint attribute. Conversely,
functions that accumulate less than a certain fraction of samples, are
annotated with the Cold attribute.

This is very similar to the hints emitted by Clang when using
instrumentation profiles.

Notice that this is a very blunt instrument. A function may have
globally collected a significant fraction of samples, but that does not
necessarily mean that every callsite for that function is hot.

Ideally, we would annotate each callsite with the samples collected at
that callsite. This way, the inliner can incorporate all these weights
into its cost model.

Once the inliner offers this functionality, we can change the hints
emitted here to a more precise per-callsite annotation. For now, this is
providing some measure of speedups with our internal benchmarks. I've
observed speedups of up to 23% (though the geo mean is about 3%). I expect
these numbers to improve as the inliner gets better annotations.

llvm-svn: 254212
2015-11-27 23:14:51 +00:00
..
Inputs SamplePGO - Add initial support for inliner annotations. 2015-11-27 23:14:51 +00:00
branch.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
calls.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cov-zero-samples.ll SamplePGO - Add coverage tracking for samples. 2015-11-23 20:12:21 +00:00
coverage-warning.ll SamplePGO - Add coverage tracking for samples. 2015-11-23 20:12:21 +00:00
discriminator.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
entry_counts.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
fnptr.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
gcc-simple.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inline-coverage.ll SamplePGO - Add coverage tracking for samples. 2015-11-23 20:12:21 +00:00
inline-hint.ll SamplePGO - Add initial support for inliner annotations. 2015-11-27 23:14:51 +00:00
inline.ll SamplePGO - Add test for hot/cold inlined functions. 2015-11-24 22:38:37 +00:00
nolocinfo.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
offset.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
propagate.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
remarks.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
syntax.ll [llvm-profdata] Add check for text profile formats and improve error reporting (2nd try) 2015-11-13 03:47:58 +00:00