llvm-project/llvm/unittests/Analysis
Nikita Popov f96428e16d [MemorySSA] Don't optimize uses during construction
This changes MemorySSA to be constructed in unoptimized form.
MemorySSA::ensureOptimizedUses() can be called to optimize all
uses (once). This should be done by passes where having optimized
uses is beneficial, either because we're going to query all uses
anyway, or because we're doing def-use walks.

This should help reduce the compile-time impact of MemorySSA for
some use cases (the reason why I started looking into this is
D117926), which can avoid optimizing all uses upfront, and instead
only optimize those that are actually queried.

Actually, we have an existing use-case for this, which is EarlyCSE.
Disabling eager use optimization there gives a significant
compile-time improvement, because EarlyCSE will generally only query
clobbers for a subset of all uses (this change is not included in
this patch).

Differential Revision: https://reviews.llvm.org/D121381
2022-03-18 09:56:16 +01: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 [NFC][mlgo] Generalize model runner interface 2021-12-08 20:10:58 -08: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 [IRSim] Make sure the first instruction of a block doesn't get missed if it is the first valid instruction in Module. 2022-03-13 23:13:09 -05: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 [NFC][mlgo] Generalize model runner interface 2021-12-08 20:10:58 -08: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] Add support for multiple training traces per module 2022-01-11 16:13:31 -08:00
TargetLibraryInfoTest.cpp [TLI] Add memset_pattern4, memset_pattern8 lib functions. 2021-12-01 21:18:19 +00: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