mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
47d13f688a
This relands commit 1c021c64caef83cccb719c9bf0a2554faa6563af which was reverted in commit 17cec6a11a12f815052d56a17ef738cf246a2d9a because an assertion was being triggered, since `BuildConstantFromSCEV()` wasn't updated to handle the case where the constant we want to truncate is actually a pointer. I was unsuccessful in coming up with a test case where we'd end there with constant zext/sext of a pointer, so i didn't handle those cases there until there is a test case. Original commit message: While we indeed can't treat them as no-ops, i believe we can/should do better than just modelling them as `unknown`. `inttoptr` story is complicated, but for `ptrtoint`, it seems straight-forward to model it just as a zext-or-trunc of unknown. This may be important now that we track towards making inttoptr/ptrtoint casts not no-op, and towards preventing folding them into loads/etc (see D88979/D88789/D88788) Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D88806 |
||
---|---|---|
.. | ||
AliasSet | ||
AssumptionCache | ||
BasicAA | ||
BlockFrequencyInfo | ||
BranchProbabilityInfo | ||
CallGraph | ||
CFLAliasAnalysis | ||
CostModel | ||
DDG | ||
Delinearization | ||
DemandedBits | ||
DependenceAnalysis | ||
DivergenceAnalysis | ||
DominanceFrontier | ||
Dominators | ||
FunctionPropertiesAnalysis | ||
GlobalsModRef | ||
IRSimilarityIdentifier | ||
IVUsers | ||
LazyCallGraph | ||
LazyValueAnalysis | ||
LegacyDivergenceAnalysis | ||
Lint | ||
LoopAccessAnalysis | ||
LoopCacheAnalysis/PowerPC | ||
LoopInfo | ||
LoopNestAnalysis | ||
MemoryDependenceAnalysis | ||
MemorySSA | ||
MustExecute | ||
PhiValues | ||
PostDominators | ||
ProfileSummary | ||
RegionInfo | ||
ScalarEvolution | ||
ScopedNoAliasAA | ||
StackSafetyAnalysis | ||
TypeBasedAliasAnalysis | ||
ValueTracking | ||
alias-analysis-uses.ll |