1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/lib/ProfileData
Wei Mi 1344e2b49c [SampleFDO] Stop repeated indirect call promotion for the same target.
Found a problem in indirect call promotion in sample loader pass. Currently
if an indirect call is promoted for a target, and if the parent function is
inlined into some other function, the indirect call can be promoted for the
same target again. That is redundent which can harm performance and can cause
excessive compile time in some extreme case.

The patch fixes the issue. If a target is promoted for an indirect call, the
patch will write ICP metadata with the target call count being set to 0.
In the later ICP in sample profile loader, if it sees a target has 0 count
for an indirect call, it knows the target has been promoted and won't do
indirect call promotion for the indirect call.

The fix brings 0.1~0.2% performance on our search benchmark.

Differential Revision: https://reviews.llvm.org/D96806
2021-02-18 17:01:32 -08:00
..
Coverage [Coverage] Store compilation dir separately in coverage mapping 2021-02-18 14:34:39 -08:00
CMakeLists.txt Revert "[SampleFDO][NFC] Refactor SampleProfile.cpp" 2021-02-16 22:11:42 +00:00
GCOV.cpp [ProfileData] GCOVFile::readGCNO - silence undefined pointer warning. NFCI. 2021-01-04 16:50:05 +00:00
InstrProf.cpp [SampleFDO] Stop repeated indirect call promotion for the same target. 2021-02-18 17:01:32 -08:00
InstrProfReader.cpp [PGO] Supporting code for always instrumenting entry block 2020-07-22 15:01:53 -07:00
InstrProfWriter.cpp Supplement instr profile with sample profile. 2020-07-27 20:17:40 -07:00
ProfileSummaryBuilder.cpp [CSSPGO] Use merged base profile for hot threshold calculation 2021-02-05 17:51:00 -08:00
SampleProf.cpp [llvm] Populate std::vector at construction time (NFC) 2021-01-18 10:16:33 -08:00
SampleProfReader.cpp [CSSPGO] Use merged base profile for hot threshold calculation 2021-02-05 17:51:00 -08:00
SampleProfWriter.cpp [CSSPGO][llvm-profgen] Add brackets for context id to support extended binary format 2021-02-12 01:14:53 -08:00