summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/SystemZ
diff options
context:
space:
mode:
authorNirav Dave <niravd@google.com>2018-11-08 19:14:20 +0000
committerNirav Dave <niravd@google.com>2018-11-08 19:14:20 +0000
commit6ce9f72f76e3c1c9c5b1cd5a65ba2b0bb319294f (patch)
treebcfc45bd36ac8be46d6c84a2b7e5e3625ee985a9 /llvm/test/CodeGen/SystemZ
parentf3dc9649ced6d3e5a2574bf939e2c8cfcfb9c465 (diff)
downloadbcm5719-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.ll69
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
OpenPOWER on IntegriCloud