forked from OSchip/llvm-project
Adjust enablement of RewriteStatepointsForGC
When back merging the changes in 229945 I noticed that I forgot to mark the test cases with the appropriate GC. We want the rewriting to be off by default (even when manually added to the pass order), not on-by default. To keep the current test working, mark them as using the statepoint-example GC and whitelist that GC. Longer term, we need a better selection mechanism here for both actual usage and testing. As I migrate more tests to the in tree version of this pass, I will probably need to update the enable/disable logic as well. llvm-svn: 229954
This commit is contained in:
parent
f86505abdf
commit
6faacf4772
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue