diff options
author | Igor Laevsky <igmyrj@gmail.com> | 2016-05-04 14:55:36 +0000 |
---|---|---|
committer | Igor Laevsky <igmyrj@gmail.com> | 2016-05-04 14:55:36 +0000 |
commit | fb1811d3a0b771ef0c340687d6d8ebcddde0aaef (patch) | |
tree | 3dbdec73d0562dbc7d858bacf518fe1e41ac35e8 /llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll | |
parent | ebb04b9eb614fb8ee59938b66400f77a785e156f (diff) | |
download | bcm5719-llvm-fb1811d3a0b771ef0c340687d6d8ebcddde0aaef.tar.gz bcm5719-llvm-fb1811d3a0b771ef0c340687d6d8ebcddde0aaef.zip |
[RS4GC] Use SetVector/MapVector instead of DenseSet/DenseMap to guarantee stable ordering
Goal of this change is to guarantee stable ordering of the statepoint arguments and other
newly inserted values such as gc.relocates. Previously we had explicit sorting in a couple
of places. However for unnamed values ordering was partial and overall we didn't have any
strong invariant regarding it. This change switches all data structures to use SetVector's
and MapVector's which provide possibility for deterministic iteration over them.
Explicit sorting is now redundant and was removed.
Differential Revision: http://reviews.llvm.org/D19669
llvm-svn: 268502
Diffstat (limited to 'llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll')
-rw-r--r-- | llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll b/llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll index 3e0a9611e8b..c4ec2ce5bf7 100644 --- a/llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll +++ b/llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll @@ -76,10 +76,10 @@ entry: ; CHECK: addrspacecast i32* %ptr1 to i32 addrspace(1)* call void @do_safepoint() [ "deopt"() ] -; CHECK: %base.relocated = call coldcc i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(token %statepoint_token, i32 7, i32 7) -; CHECK: %base.relocated.casted = bitcast i8 addrspace(1)* %base.relocated to i32 addrspace(1)* -; CHECK: %ptr2.relocated = call coldcc i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(token %statepoint_token, i32 7, i32 8) +; CHECK: %ptr2.relocated = call coldcc i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(token %statepoint_token, i32 8, i32 7) ; CHECK: %ptr2.relocated.casted = bitcast i8 addrspace(1)* %ptr2.relocated to i32 addrspace(1)* +; CHECK: %base.relocated = call coldcc i8 addrspace(1)* @llvm.experimental.gc.relocate.p1i8(token %statepoint_token, i32 8, i32 8) +; CHECK: %base.relocated.casted = bitcast i8 addrspace(1)* %base.relocated to i32 addrspace(1)* call void @use_obj32(i32 addrspace(1)* %base) call void @use_obj32(i32 addrspace(1)* %ptr2) ret void |