summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2016-02-22 20:45:56 +0000
committerPhilip Reames <listmail@philipreames.com>2016-02-22 20:45:56 +0000
commit79fa9b75c07fe7aa6fa48b4e3c16a1f8f40ac8d4 (patch)
tree6e02222ac0c196a1f59a6d7281ae3f8c476a7fc1 /llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll
parent437786cf6065d86ddc9e8e30ea545e59ed89394d (diff)
downloadbcm5719-llvm-79fa9b75c07fe7aa6fa48b4e3c16a1f8f40ac8d4.tar.gz
bcm5719-llvm-79fa9b75c07fe7aa6fa48b4e3c16a1f8f40ac8d4.zip
[RS4GC] Revert optimization attempt due to memory corruption
This change reverts "246133 [RewriteStatepointsForGC] Reduce the number of new instructions for base pointers" and a follow on bugfix 12575. As pointed out in pr25846, this code suffers from a memory corruption bug. Since I'm (empirically) not going to get back to this any time soon, simply reverting the problematic change is the right answer. llvm-svn: 261565
Diffstat (limited to 'llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll')
-rw-r--r--llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll b/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll
index 00e71ff88f9..e65897e7a89 100644
--- a/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll
+++ b/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll
@@ -81,6 +81,7 @@ entry:
; we'd have commoned these, but that's a missed optimization, not correctness.
; CHECK-DAG: [ [[DISCARD:%.*.base.relocated.casted]], %loop ]
; CHECK-NOT: extra.base
+; CHECK: next.base = select
; CHECK: next = select
; CHECK: extra2.base = select
; CHECK: extra2 = select
@@ -107,7 +108,8 @@ taken: ; preds = %entry
merge: ; preds = %taken, %entry
; CHECK-LABEL: merge:
-; CHECK-NEXT: %bdv = phi
+; CHECK-NEXT: phi
+; CHECK-NEXT: phi
; CHECK-NEXT: gc.statepoint
%bdv = phi i64 addrspace(1)* [ %obj, %entry ], [ %obj2, %taken ]
call void @foo() [ "deopt"(i32 0, i32 -1, i32 0, i32 0, i32 0) ]
@@ -124,7 +126,7 @@ taken: ; preds = %entry
merge: ; preds = %taken, %entry
; CHECK-LABEL: merge:
-; CHECK-NEXT: %bdv = phi
+; CHECK-NEXT: phi
; CHECK-NEXT: gc.statepoint
%bdv = phi i64 addrspace(1)* [ %obj, %entry ], [ %obj, %taken ]
call void @foo() [ "deopt"(i32 0, i32 -1, i32 0, i32 0, i32 0) ]
@@ -138,7 +140,8 @@ entry:
merge: ; preds = %merge, %entry
; CHECK-LABEL: merge:
-; CHECK-NEXT: %bdv = phi
+; CHECK-NEXT: phi
+; CHECK-NEXT: phi
; CHECK-NEXT: br i1
%bdv = phi i64 addrspace(1)* [ %obj, %entry ], [ %obj2, %merge ]
br i1 %cnd, label %merge, label %next
OpenPOWER on IntegriCloud