llvm-project/llvm/unittests/Analysis
Arthur Eubanks b493124ae2 [MemorySSA] Support invariant.group metadata
The implementation is mostly copied from MemDepAnalysis. We want to look
at all loads and stores to the same pointer operand. Bitcasts and zero
GEPs of a pointer are considered the same pointer value. We choose the
most dominating instruction.

Since updating MemorySSA with invariant.group is non-trivial, for now
handling of invariant.group is not cached in any way, so it's part of
the walker. The number of loads/stores with invariant.group is small for
now anyway. We can revisit if this actually noticeably affects compile
times.

To avoid invariant.group affecting optimized uses, we need to have
optimizeUsesInBlock() not use invariant.group in any way.

Co-authored-by: Piotr Padlewski <prazek@google.com>

Reviewed By: asbirlea, nikic, Prazek

Differential Revision: https://reviews.llvm.org/D109134
2021-09-08 13:06:12 -07:00
..
Inputs/ir2native_x86_64_model
AliasAnalysisTest.cpp [AA][NFC] Convert AliasResult to class containing offset for PartialAlias case. 2021-04-09 13:26:09 +03:00
AliasSetTrackerTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
AssumeBundleQueriesTest.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
BasicAliasAnalysisTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
BlockFrequencyInfoTest.cpp Switch from llvm::is_trivially_copyable to std::is_trivially_copyable 2020-12-02 22:02:48 -08:00
BranchProbabilityInfoTest.cpp
CFGTest.cpp
CGSCCPassManagerTest.cpp Revert "[NPM] Do not run function simplification pipeline unnecessarily" 2021-05-21 16:38:02 -07:00
CMakeLists.txt Unpack the CostEstimate feature in ML inlining models. 2021-07-02 16:57:16 +00:00
CallGraphTest.cpp
CaptureTrackingTest.cpp [CaptureTrackingTest] Add missing override marker (NFC) 2020-11-07 11:44:02 +01:00
ConstraintSystemTest.cpp [ConstraintSolver] Add isConditionImplied helper. 2020-09-15 13:50:11 +01:00
DDGTest.cpp [DDG] Fix duplicate edge removal during pi-block formation 2021-01-07 10:31:11 -05:00
DivergenceAnalysisTest.cpp [NewPM] Introduce (GPU)DivergenceAnalysis in the new pass manager 2021-02-16 10:26:45 +05:30
DomTreeUpdaterTest.cpp
FunctionPropertiesAnalysisTest.cpp
GlobalsModRefTest.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
IRSimilarityIdentifierTest.cpp [IRSim] Adding support for recognizing branch similarity 2021-09-06 11:55:38 -07:00
IVDescriptorsTest.cpp [IVDescriptors] Fix comment that getUnsafeAlgebraInst has been renamed to getExactFPMathInst 2021-06-21 07:56:22 +08:00
InlineCostTest.cpp Unpack the CostEstimate feature in ML inlining models. 2021-07-02 16:57:16 +00:00
LazyCallGraphTest.cpp [CGSCC][Coroutine][NewPM] Properly support function splitting/outlining 2021-01-06 11:19:15 -08:00
LoadsTest.cpp [Loads] Add canReplacePointersIfEqual helper. 2020-09-01 20:57:41 +01:00
LoopInfoTest.cpp [unittest] Fix -Wunused-variable after D94717 2021-05-07 11:42:16 -07:00
LoopNestTest.cpp LoopNest Analysis expansion to return instructions that prevent a Loop 2021-08-17 22:25:49 +00:00
MemoryBuiltinsTest.cpp
MemorySSATest.cpp [MemorySSA] Support invariant.group metadata 2021-09-08 13:06:12 -07:00
PhiValuesTest.cpp
ProfileSummaryInfoTest.cpp Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00
ScalarEvolutionTest.cpp [unittest] Exercise SCEV's udiv and udiv ceiling routines 2021-07-15 11:55:00 -07:00
SparsePropagation.cpp
TBAATest.cpp
TFUtilsTest.cpp [NFC][MLGO] Make logging more robust 2021-08-06 04:44:52 -07:00
TargetLibraryInfoTest.cpp [OpenMP] Change `__kmpc_free_shared` to include the paired allocation size 2021-07-21 20:56:21 -04: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] Fix computeConstantRange to use "may" instead of "always" semantics for llvm.assume 2021-08-02 22:20:17 +02: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 [NFC] Change VFShape so it contains an ElementCount rather than seperate VF and IsScalable properties. 2021-07-26 12:25:46 +01:00