mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 10:32:48 +02:00
29e34b908b
Report dangling probes for frames that have real samples collected. Dangling probes are the probes associated to an empty block. When reported, sample count on a dangling probe will not be trusted by the compiler and we will rely on the counts inference algorithm to get the probe a reasonable count. This actually fixes a bug where previously only those dangling probes with samples collected were reported. This patch also fixes two existing issues. Pseudo probes are stored in `Address2ProbesMap` and their pointers are used in `PseudoProbeInlineTree`. Previously `std::vector` was used to store probes and the pointers to probes may get obsolete as the vector grows. I'm changing `std::vector` to `std::list` instead. The other issue is that all outlined functions shared the same inline frame previously due to the unchanged `Index` value as the dummy inlineSite identifier. Good results seen for SPEC2017 in general regarding profile quality. Reviewed By: wenlei, wlei Differential Revision: https://reviews.llvm.org/D100235 |
||
---|---|---|
.. | ||
CallContext.h | ||
CMakeLists.txt | ||
CSPreInliner.cpp | ||
CSPreInliner.h | ||
ErrorHandling.h | ||
llvm-profgen.cpp | ||
PerfReader.cpp | ||
PerfReader.h | ||
ProfiledBinary.cpp | ||
ProfiledBinary.h | ||
ProfileGenerator.cpp | ||
ProfileGenerator.h | ||
PseudoProbe.cpp | ||
PseudoProbe.h |