summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp3
-rw-r--r--llvm/test/Transforms/RewriteStatepointsForGC/basics.ll8
2 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
index 71c79309df8..2fa5d0cef29 100644
--- a/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
+++ b/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
@@ -1900,7 +1900,8 @@ static bool insertParsePoints(Function &F, DominatorTree &DT, Pass *P,
/// point of this function is as an extension point for custom logic.
static bool shouldRewriteStatepointsIn(Function &F) {
// TODO: This should check the GCStrategy
- return true;
+ const std::string StatepointExampleName("statepoint-example");
+ return StatepointExampleName == F.getGC();
}
bool RewriteStatepointsForGC::runOnFunction(Function &F) {
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/basics.ll b/llvm/test/Transforms/RewriteStatepointsForGC/basics.ll
index bf914423dd9..7454ea1d403 100644
--- a/llvm/test/Transforms/RewriteStatepointsForGC/basics.ll
+++ b/llvm/test/Transforms/RewriteStatepointsForGC/basics.ll
@@ -4,7 +4,7 @@
declare void @foo()
; Trivial relocation over a single call
-define i8 addrspace(1)* @test1(i8 addrspace(1)* %obj) {
+define i8 addrspace(1)* @test1(i8 addrspace(1)* %obj) gc "statepoint-example" {
; CHECK-LABEL: @test1
; CHECK-LABEL: entry:
; CHECK-NEXT: gc.statepoint
@@ -15,7 +15,7 @@ entry:
}
; Two safepoints in a row (i.e. consistent liveness)
-define i8 addrspace(1)* @test2(i8 addrspace(1)* %obj) {
+define i8 addrspace(1)* @test2(i8 addrspace(1)* %obj) gc "statepoint-example" {
; CHECK-LABEL: @test2
; CHECK-LABEL: entry:
; CHECK-NEXT: gc.statepoint
@@ -29,7 +29,7 @@ entry:
}
; A simple derived pointer
-define i8 @test3(i8 addrspace(1)* %obj) {
+define i8 @test3(i8 addrspace(1)* %obj) gc "statepoint-example" {
; CHECK-LABEL: entry:
; CHECK-NEXT: getelementptr
; CHECK-NEXT: gc.statepoint
@@ -49,7 +49,7 @@ entry:
; Tests to make sure we visit both the taken and untaken predeccessor
; of merge. This was a bug in the dataflow liveness at one point.
-define i8 addrspace(1)* @test4(i1 %cmp, i8 addrspace(1)* %obj) {
+define i8 addrspace(1)* @test4(i1 %cmp, i8 addrspace(1)* %obj) gc "statepoint-example" {
entry:
br i1 %cmp, label %taken, label %untaken
OpenPOWER on IntegriCloud