[PATCH] D20293: [RewriteStatepointsForGC] Remove obsolete assertion
Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 17 07:00:27 PDT 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL269764: [RewriteStatepointsForGC] Remove obsolete assertion (authored by igor.laevsky).
Changed prior to commit:
http://reviews.llvm.org/D20293?vs=57377&id=57475#toc
Repository:
rL LLVM
http://reviews.llvm.org/D20293
Files:
llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
llvm/trunk/test/Transforms/RewriteStatepointsForGC/constants.ll
Index: llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
===================================================================
--- llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
+++ llvm/trunk/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
@@ -1055,14 +1055,6 @@
DT->dominates(cast<Instruction>(base)->getParent(),
cast<Instruction>(ptr)->getParent())) &&
"The base we found better dominate the derived pointer");
-
- // If you see this trip and like to live really dangerously, the code should
- // be correct, just with idioms the verifier can't handle. You can try
- // disabling the verifier at your own substantial risk.
- assert(!isa<ConstantPointerNull>(base) &&
- "the relocation code needs adjustment to handle the relocation of "
- "a null pointer constant without causing false positives in the "
- "safepoint ir verifier.");
}
}
Index: llvm/trunk/test/Transforms/RewriteStatepointsForGC/constants.ll
===================================================================
--- llvm/trunk/test/Transforms/RewriteStatepointsForGC/constants.ll
+++ llvm/trunk/test/Transforms/RewriteStatepointsForGC/constants.ll
@@ -95,3 +95,25 @@
%res = extractelement <2 x i8 addrspace(1)*> <i8 addrspace(1)* @G, i8 addrspace(1)* @G>, i32 0
ret i8 addrspace(1)* %res
}
+
+define i8 addrspace(1)* @test6(i64 %arg) gc "statepoint-example" {
+entry:
+ ; Don't fail any assertions and don't record null as a live value
+ ; CHECK-LABEL: test6
+ ; CHECK: gc.statepoint
+ ; CHECK-NOT: call {{.*}}gc.relocate
+ %load_addr = getelementptr i8, i8 addrspace(1)* null, i64 %arg
+ call void @foo() [ "deopt"() ]
+ ret i8 addrspace(1)* %load_addr
+}
+
+define i8 addrspace(1)* @test7(i64 %arg) gc "statepoint-example" {
+entry:
+ ; Same as test7 but use regular constant instead of a null
+ ; CHECK-LABEL: test7
+ ; CHECK: gc.statepoint
+ ; CHECK-NOT: call {{.*}}gc.relocate
+ %load_addr = getelementptr i8, i8 addrspace(1)* inttoptr (i64 15 to i8 addrspace(1)*), i64 %arg
+ call void @foo() [ "deopt"() ]
+ ret i8 addrspace(1)* %load_addr
+}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20293.57475.patch
Type: text/x-patch
Size: 2166 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160517/a6824f0e/attachment.bin>
More information about the llvm-commits
mailing list