llvm-project/llvm/unittests/Analysis
Mircea Trofin c35ad9ee4f [mlgo] Support exposing more features than those supported by models
This allows the compiler to support more features than those supported by a
model. The only requirement (development mode only) is that the new
features must be appended at the end of the list of features requested
from the model. The support is transparent to compiler code: for
unsupported features, we provide a valid buffer to copy their values;
it's just that this buffer is disconnected from the model, so insofar
as the model is concerned (AOT or development mode), these features don't
exist. The buffers are allocated at setup - meaning, at steady state,
there is no extra allocation (maintaining the current invariant). These
buffers has 2 roles: one, keep the compiler code simple. Second, allow
logging their values in development mode. The latter allows retraining
a model supporting the larger feature set starting from traces produced
with the old model.

For release mode (AOT-ed models), this decouples compiler evolution from
model evolution, which we want in scenarios where the toolchain is
frequently rebuilt and redeployed: we can first deploy the new features,
and continue working with the older model, until a new model is made
available, which can then be picked up the next time the compiler is built.

Differential Revision: https://reviews.llvm.org/D124565
2022-05-09 18:01:21 -07:00
..
Inputs/ir2native_x86_64_model
AliasAnalysisTest.cpp [AA] Correctly maintain the sign of PartiaAlias offset 2021-12-17 15:45:26 +00:00
AliasSetTrackerTest.cpp
AssumeBundleQueriesTest.cpp [llvm] Remove uses of `std::vector<bool>` 2022-01-18 18:20:45 +01:00
BasicAliasAnalysisTest.cpp [AA] Move earliest escape tracking from DSE to AA 2021-09-25 22:40:41 +02:00
BlockFrequencyInfoTest.cpp
BranchProbabilityInfoTest.cpp
CFGTest.cpp
CGSCCPassManagerTest.cpp [NFC] Add #include for constants 2022-02-23 01:26:53 -08:00
CMakeLists.txt [mlgo] Support exposing more features than those supported by models 2022-05-09 18:01:21 -07:00
CallGraphTest.cpp
CaptureTrackingTest.cpp
ConstraintSystemTest.cpp
DDGTest.cpp
DivergenceAnalysisTest.cpp
DomTreeUpdaterTest.cpp
FunctionPropertiesAnalysisTest.cpp Cleanup includes: LLVMAnalysis 2022-03-01 18:01:54 +01:00
GlobalsModRefTest.cpp
IRSimilarityIdentifierTest.cpp [NFC] Rename Instrinsic to Intrinsic 2022-04-25 18:13:23 +01:00
IVDescriptorsTest.cpp Fix incorrect TypeSize->uint64_t cast in InductionDescriptor::isInductionPHI 2022-02-10 09:39:12 +00:00
InlineCostTest.cpp Cleanup includes: LLVMAnalysis 2022-03-01 18:01:54 +01:00
LazyCallGraphTest.cpp [LazyCallGraph] Skip blockaddresses 2021-11-01 13:10:24 -07:00
LoadsTest.cpp [NFC] Add #include for constants 2022-02-23 01:26:53 -08:00
LoopInfoTest.cpp Cleanup includes: LLVMAnalysis 2022-03-01 18:01:54 +01:00
LoopNestTest.cpp [LoopNest] Add new utilites 2022-01-13 17:19:19 -05:00
MLModelRunnerTest.cpp [mlgo] Support exposing more features than those supported by models 2022-05-09 18:01:21 -07:00
MemoryBuiltinsTest.cpp [MemoryBuiltins] Demote isMallocLikeFn to implementation routine since last use has been removed 2022-01-18 15:24:52 -08:00
MemorySSATest.cpp [MemorySSA] Don't optimize uses during construction 2022-03-18 09:56:16 +01:00
PhiValuesTest.cpp [NFC] Add #include for constants 2022-02-23 01:26:53 -08:00
ProfileSummaryInfoTest.cpp
ScalarEvolutionTest.cpp [SCEV] Make SCEVUnionPredicate externally immutable [NFC] 2022-02-09 13:47:28 -08:00
SparsePropagation.cpp
TBAATest.cpp
TFUtilsTest.cpp [mlgo] Support exposing more features than those supported by models 2022-05-09 18:01:21 -07:00
TargetLibraryInfoTest.cpp [TLI] Add memset_pattern4, memset_pattern8 lib functions. 2021-12-01 21:18:19 +00:00
TensorSpecTest.cpp [mlgo] Factor out TensorSpec 2022-04-25 18:35:46 -07:00
UnrollAnalyzerTest.cpp [unroll] Use value domain for symbolic execution based cost model 2021-05-26 08:41:25 -07:00
ValueLatticeTest.cpp
ValueTrackingTest.cpp [ValueTracking] Checking haveNoCommonBitsSet for (x & y) and ~(x | y) 2022-02-16 13:42:52 +08:00
VectorFunctionABITest.cpp [NFC] Change VFShape so it contains an ElementCount rather than seperate VF and IsScalable properties. 2021-07-26 12:25:46 +01:00
VectorUtilsTest.cpp [llvm] Update report_fatal_error calls from raw_string_ostream to use Twine(OS.str()) 2021-10-05 18:42:12 +01:00