diff options
| author | Nirav Dave <niravd@google.com> | 2018-11-08 19:14:20 +0000 |
|---|---|---|
| committer | Nirav Dave <niravd@google.com> | 2018-11-08 19:14:20 +0000 |
| commit | 6ce9f72f76e3c1c9c5b1cd5a65ba2b0bb319294f (patch) | |
| tree | bcfc45bd36ac8be46d6c84a2b7e5e3625ee985a9 /llvm/test/CodeGen/SystemZ | |
| parent | f3dc9649ced6d3e5a2574bf939e2c8cfcfb9c465 (diff) | |
| download | bcm5719-llvm-6ce9f72f76e3c1c9c5b1cd5a65ba2b0bb319294f.tar.gz bcm5719-llvm-6ce9f72f76e3c1c9c5b1cd5a65ba2b0bb319294f.zip | |
[DAGCombine] Improve alias analysis for chain of independent stores.
FindBetterNeighborChains simulateanously improves the chain
dependencies of a chain of related stores avoiding the generation of
extra token factors. For chains longer than the GatherAllAliasDepths,
stores further down in the chain will necessarily fail, a potentially
significant waste and preventing otherwise trivial parallelization.
This patch directly parallelize the chains of stores before improving
each store. This generally improves DAG-level parallelism.
Reviewers: courbet, spatel, RKSimon, bogner, efriedma, craig.topper, rnk
Subscribers: sdardis, javed.absar, hiraditya, jrtc27, atanasyan, llvm-commits
Differential Revision: https://reviews.llvm.org/D53552
llvm-svn: 346432
Diffstat (limited to 'llvm/test/CodeGen/SystemZ')
| -rw-r--r-- | llvm/test/CodeGen/SystemZ/pr36164.ll | 69 |
1 files changed, 27 insertions, 42 deletions
diff --git a/llvm/test/CodeGen/SystemZ/pr36164.ll b/llvm/test/CodeGen/SystemZ/pr36164.ll index 312961fa4b9..2ed6fa901db 100644 --- a/llvm/test/CodeGen/SystemZ/pr36164.ll +++ b/llvm/test/CodeGen/SystemZ/pr36164.ll @@ -15,54 +15,39 @@ define void @main() local_unnamed_addr #0 { ; CHECK-LABEL: main: ; CHECK: # %bb.0: -; CHECK-NEXT: stmg %r12, %r15, 96(%r15) -; CHECK-NEXT: .cfi_offset %r12, -64 -; CHECK-NEXT: .cfi_offset %r13, -56 -; CHECK-NEXT: .cfi_offset %r14, -48 -; CHECK-NEXT: .cfi_offset %r15, -40 ; CHECK-NEXT: lhi %r0, 1 ; CHECK-NEXT: larl %r1, g_938 -; CHECK-NEXT: lhi %r2, 2 -; CHECK-NEXT: lhi %r3, 3 -; CHECK-NEXT: lhi %r4, 0 -; CHECK-NEXT: lhi %r5, 4 -; CHECK-NEXT: larl %r14, g_11 +; CHECK-NEXT: lhi %r2, 0 +; CHECK-NEXT: lhi %r3, 4 +; CHECK-NEXT: larl %r4, g_11 ; CHECK-NEXT: .LBB0_1: # =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: strl %r0, g_73 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: strl %r0, g_69 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-DAG: lghi %r13, 24 -; CHECK-DAG: strl %r2, g_69 -; CHECK-DAG: ag %r13, 0(%r1) -; CHECK-NEXT: lrl %r12, g_832 -; CHECK-NEXT: strl %r3, g_69 -; CHECK-NEXT: lrl %r12, g_832 -; CHECK-NEXT: strl %r4, g_69 -; CHECK-NEXT: lrl %r12, g_832 -; CHECK-NEXT: strl %r0, g_69 -; CHECK-NEXT: lrl %r12, g_832 ; CHECK-NEXT: strl %r2, g_69 -; CHECK-NEXT: lrl %r12, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: lrl %r5, g_832 +; CHECK-NEXT: agsi 0(%r1), 24 +; CHECK-NEXT: lrl %r5, g_832 ; CHECK-NEXT: strl %r3, g_69 -; CHECK-NEXT: stgrl %r13, g_938 -; CHECK-NEXT: lrl %r13, g_832 -; CHECK-NEXT: strl %r5, g_69 -; CHECK-NEXT: mvi 0(%r14), 1 +; CHECK-NEXT: mvi 0(%r4), 1 ; CHECK-NEXT: j .LBB0_1 br label %1 |

