llvm-project/llvm/unittests/IR
Hiroshi Yamauchi 6c27c61d32 [PGO] Improve the working set size heuristics under the partial sample PGO.
Summary:
The working set size heuristics (ProfileSummaryInfo::hasHugeWorkingSetSize)
under the partial sample PGO may not be accurate because the profile is partial
and the number of hot profile counters in the ProfileSummary may not reflect the
actual working set size of the program being compiled.

To improve this, the (approximated) ratio of the the number of profile counters
of the program being compiled to the number of profile counters in the partial
sample profile is computed (which is called the partial profile ratio) and the
working set size of the profile is scaled by this ratio to reflect the working
set size of the program being compiled and used for the working set size
heuristics.

The partial profile ratio is approximated based on the number of the basic
blocks in the program and the NumCounts field in the ProfileSummary and computed
through the thin LTO indexing. This means that there is the limitation that the
scaled working set size is available to the thin LTO post link passes only.

Reviewers: davidxl

Subscribers: mgorny, eraman, hiraditya, steven_wu, dexonsmith, arphaman, dang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79831
2020-06-01 10:29:23 -07:00
..
AbstractCallSiteTest.cpp [AbstractCallSite] Look though constant cast expression when checking for callee use 2020-04-30 15:09:57 -07:00
AsmWriterTest.cpp IR: Cleanup after test to silence ASAN builds 2019-08-03 15:40:00 +00:00
AttributesTest.cpp [Alignment][NFC] Attributes use Align/MaybeAlign 2019-10-22 09:51:06 +00:00
BasicBlockTest.cpp [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
CFGBuilder.cpp [CFG/BasicBlock] Rename succ_const to const_succ. [NFC] 2020-03-25 12:40:55 -07:00
CFGBuilder.h
CMakeLists.txt [AbstractCallSite] Look though constant cast expression when checking for callee use 2020-04-30 15:09:57 -07:00
ConstantRangeTest.cpp [ConstantRange] Add initial support for binaryXor. 2020-03-24 12:59:50 +00:00
ConstantsTest.cpp [IR] fix Constant::isElementWiseEqual() to allow for all undef elements compare 2020-01-17 08:31:16 -05:00
DataLayoutTest.cpp [Alignment][NFC] Add a helper function to DataLayout 2019-10-21 13:58:33 +00:00
DebugInfoTest.cpp [Instruction] Set metadata uses to undef on deletion 2020-05-21 15:58:12 -07:00
DebugTypeODRUniquingTest.cpp [DebugInfo] support for DW_AT_data_location in llvm 2020-05-15 11:33:17 +05:30
DominatorTreeBatchUpdatesTest.cpp
DominatorTreeTest.cpp [Dominators] Use Instruction::comesBefore for block-local queries, NFC 2020-02-20 16:41:51 -08:00
FunctionTest.cpp Make Value::getPointerAlignment() return an Align, not a MaybeAlign. 2020-05-20 16:37:20 -07:00
IRBuilderTest.cpp [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
InstructionsTest.cpp [llvm][IR][CastInst] Update `castIsValid` for scalable vectors. 2020-03-30 21:13:40 +00:00
IntrinsicsTest.cpp
LegacyPassManagerTest.cpp [CallGraphUpdater] Removed references to calles when deleting function 2020-05-04 18:59:47 -07:00
MDBuilderTest.cpp
ManglerTest.cpp
MetadataTest.cpp [DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays 2020-05-28 13:46:41 +05:30
ModuleTest.cpp [PGO] Improve the working set size heuristics under the partial sample PGO. 2020-06-01 10:29:23 -07:00
PassBuilderCallbacksTest.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
PassManagerTest.cpp [NewPassManager] Add assertions when getting statefull cached analysis. 2020-05-13 12:38:38 -07:00
PatternMatch.cpp [PatternMatch] abbreviate vector inst matchers; NFC 2020-05-24 09:19:47 -04:00
TimePassesTest.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
TypesTest.cpp
UseTest.cpp
UserTest.cpp
VPIntrinsicTest.cpp Remove asserting getters from base Type 2020-04-17 14:03:31 -07:00
ValueHandleTest.cpp
ValueMapTest.cpp Replace non-recursive sys::Mutex users with std::mutex 2019-08-07 11:59:44 +00:00
ValueTest.cpp [Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned) 2019-10-15 11:24:36 +00:00
VectorTypesTest.cpp [SVE][NFC] Remove unused variable 2020-04-29 14:30:32 -07:00
VerifierTest.cpp [SVE] Update API ConstantVector::getSplat() to use ElementCount. 2020-03-12 13:22:41 -07:00