1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/unittests/Analysis
Eli Friedman 5e023f461c [ScalarEvolution] Strictly enforce pointer/int type rules.
Rules:

1. SCEVUnknown is a pointer if and only if the LLVM IR value is a
   pointer.
2. SCEVPtrToInt is never a pointer.
3. If any other SCEV expression has no pointer operands, the result is
   an integer.
4. If a SCEVAddExpr has exactly one pointer operand, the result is a
   pointer.
5. If a SCEVAddRecExpr's first operand is a pointer, and it has no other
   pointer operands, the result is a pointer.
6. If every operand of a SCEVMinMaxExpr is a pointer, the result is a
   pointer.
7. Otherwise, the SCEV expression is invalid.

I'm not sure how useful rule 6 is in practice.  If we exclude it, we can
guarantee that ScalarEvolution::getPointerBase always returns a
SCEVUnknown, which might be a helpful property. Anyway, I'll leave that
for a followup.

This is basically mop-up at this point; all the changes with significant
functional effects have landed.  Some of the remaining changes could be
split off, but I don't see much point.

Differential Revision: https://reviews.llvm.org/D105510
2021-07-09 17:29:26 -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
AssumeBundleQueriesTest.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
BasicAliasAnalysisTest.cpp
BlockFrequencyInfoTest.cpp
BranchProbabilityInfoTest.cpp
CallGraphTest.cpp
CaptureTrackingTest.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
ConstraintSystemTest.cpp
DDGTest.cpp
DivergenceAnalysisTest.cpp
DomTreeUpdaterTest.cpp
FunctionPropertiesAnalysisTest.cpp
GlobalsModRefTest.cpp
InlineCostTest.cpp Unpack the CostEstimate feature in ML inlining models. 2021-07-02 16:57:16 +00:00
IRSimilarityIdentifierTest.cpp
IVDescriptorsTest.cpp [IVDescriptors] Fix comment that getUnsafeAlgebraInst has been renamed to getExactFPMathInst 2021-06-21 07:56:22 +08:00
LazyCallGraphTest.cpp
LoadsTest.cpp
LoopInfoTest.cpp [unittest] Fix -Wunused-variable after D94717 2021-05-07 11:42:16 -07:00
LoopNestTest.cpp
MemoryBuiltinsTest.cpp
MemorySSATest.cpp [AA][NFC] Convert AliasResult to class containing offset for PartialAlias case. 2021-04-09 13:26:09 +03:00
PhiValuesTest.cpp
ProfileSummaryInfoTest.cpp
ScalarEvolutionTest.cpp [ScalarEvolution] Strictly enforce pointer/int type rules. 2021-07-09 17:29:26 -07:00
SparsePropagation.cpp
TargetLibraryInfoTest.cpp [OpenMP] Add new OpenMP globalization functions to library info 2021-06-22 13:23:05 -04:00
TBAATest.cpp
TFUtilsTest.cpp
UnrollAnalyzerTest.cpp [unroll] Use value domain for symbolic execution based cost model 2021-05-26 08:41:25 -07:00
ValueLatticeTest.cpp
ValueTrackingTest.cpp Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
VectorFunctionABITest.cpp
VectorUtilsTest.cpp