1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/Analysis
Florian Hahn 710443d7ab [DSE] Switch to MemorySSA-backed DSE by default.
The tests have been updated and I plan to move them from the MSSA
directory up.

Some end-to-end tests needed small adjustments. One difference to the
legacy DSE is that legacy DSE also deletes trivially dead instructions
that are unrelated to memory operations. Because MemorySSA-backed DSE
just walks the MemorySSA, we only visit/check memory instructions. But
removing unrelated dead instructions is not really DSE's job and other
passes will clean up.

One noteworthy change is in llvm/test/Transforms/Coroutines/ArgAddr.ll,
but I think this comes down to legacy DSE not handling instructions that
may throw correctly in that case. To cover this with MemorySSA-backed
DSE, we need an update to llvm.coro.begin to treat it's return value to
belong to the same underlying object as the passed pointer.

There are some minor cases MemorySSA-backed DSE currently misses, e.g. related
to atomic operations, but I think those can be implemented after the switch.

This has been discussed on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2020-August/144417.html

For the MultiSource/SPEC2000/SPEC2006 the number of eliminated stores
goes from ~17500 (legayc DSE) to ~26300 (MemorySSA-backed). More numbers
and details in the thread on llvm-dev.

Impact on CTMark:
```
                                     Legacy Pass Manager
                        exec instrs    size-text
O3                       + 0.60%        - 0.27%
ReleaseThinLTO           + 1.00%        - 0.42%
ReleaseLTO-g.            + 0.77%        - 0.33%
RelThinLTO (link only)   + 0.87%        - 0.42%
RelLO-g (link only)      + 0.78%        - 0.33%
```
http://llvm-compile-time-tracker.com/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions
```
                                     New Pass Manager
                       exec instrs.   size-text
O3                       + 0.95%       - 0.25%
ReleaseThinLTO           + 1.34%       - 0.41%
ReleaseLTO-g.            + 1.71%       - 0.35%
RelThinLTO (link only)   + 0.96%       - 0.41%
RelLO-g (link only)      + 2.21%       - 0.35%
```
http://195.201.131.214:8000/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions

Reviewed By: asbirlea, xbolva00, nikic

Differential Revision: https://reviews.llvm.org/D87163
2020-09-10 22:24:32 +01:00
..
AliasSet [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
AssumptionCache
BasicAA [DSE] Switch to MemorySSA-backed DSE by default. 2020-09-10 22:24:32 +01:00
BlockFrequencyInfo
BranchProbabilityInfo Revert "[BPI] Improve static heuristics for integer comparisons" 2020-08-17 20:44:33 +02:00
CallGraph [CallGraph] Ignore callback uses 2020-07-14 13:08:49 -07:00
CFLAliasAnalysis [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
CostModel [CostModel][X86] Add vXi32 division by uniform constant costs (PR47476) 2020-09-10 12:17:54 +01:00
DDG
Delinearization [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
DemandedBits [DemandedBits] Improve accuracy of Add propagator 2020-08-17 12:54:09 +01:00
DependenceAnalysis [tbaa] Rename type-based-aa -> tbaa 2020-07-30 19:51:35 -07:00
DivergenceAnalysis Verifier: Disallow byval and similar for AMDGPU calling conventions 2020-07-20 10:58:57 -04:00
DominanceFrontier
Dominators [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
FunctionPropertiesAnalysis Add new function properties to FunctionPropertiesAnalysis 2020-07-23 12:46:47 -07:00
GlobalsModRef [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
IVUsers [NPM][IVUsers] Rename ivusers -> iv-users 2020-07-15 09:38:21 -07:00
LazyCallGraph
LazyValueAnalysis
LegacyDivergenceAnalysis Verifier: Disallow byval and similar for AMDGPU calling conventions 2020-07-20 10:58:57 -04:00
Lint
LoopAccessAnalysis [NFC] GetUnderlyingObject -> getUnderlyingObject 2020-07-30 21:08:24 -07:00
LoopCacheAnalysis/PowerPC
LoopInfo
LoopNestAnalysis [LoopNest] False negative of arePerfectlyNested with LCSSA loops 2020-08-25 16:20:52 +00:00
MemoryDependenceAnalysis [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
MemorySSA [LangRef] Adjust guarantee for llvm.memcpy to also allow equal arguments. 2020-09-05 19:18:23 +01:00
MustExecute
PhiValues
PostDominators
ProfileSummary
RegionInfo
ScalarEvolution [SCEV] Recognize min/max intrinsics 2020-09-05 16:30:11 +02:00
ScopedNoAliasAA Rename scoped-noalias -> scoped-noalias-aa 2020-07-24 12:14:27 -07:00
StackSafetyAnalysis [StackSafety] Ignore allocas with partial lifetime markers 2020-08-27 13:54:41 -07:00
TypeBasedAliasAnalysis Mark masked.{store,scatter,compressstore} intrinsics as write-only 2020-09-09 17:28:21 -05:00
ValueTracking Fix tests after 16f777f4217cfcdcf6ddce8eb1e3525a65563c43 2020-07-14 22:52:26 +02:00
alias-analysis-uses.ll [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00