-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8352595: Regression of JDK-8314999 in IR matching #24163
Changes from 3 commits
4c7ed17
ee3cc6f
17e11d4
98febc9
b125df8
c7c0cfa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -113,12 +113,12 @@ public void testMixedPhases() { | |||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix7", PHASEIDEALLOOP1, PHASEIDEALLOOP2, FINAL_CODE, | ||||||||||||||||||||||||||||||||||||||||||||
OPTIMIZE_FINISHED, PRINT_IDEAL); | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix8", PHASEIDEALLOOP1, PHASEIDEALLOOP2, FINAL_CODE, | ||||||||||||||||||||||||||||||||||||||||||||
OPTIMIZE_FINISHED, PRINT_IDEAL, PRINT_OPTO_ASSEMBLY); | ||||||||||||||||||||||||||||||||||||||||||||
OPTIMIZE_FINISHED, PRINT_IDEAL); | ||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note that the tests on this file only collect compile phases and actually do not perform any IR matching. So, the IR rules do not need work. This means that for all tests where we use the default compile phase of This just means that we should not replace |
||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix9", PHASEIDEALLOOP1, PHASEIDEALLOOP2, PRINT_IDEAL); | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix10", PHASEIDEALLOOP1, PHASEIDEALLOOP2, PRINT_OPTO_ASSEMBLY); | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix11", PHASEIDEALLOOP1, PHASEIDEALLOOP2, PRINT_OPTO_ASSEMBLY, | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix11", PHASEIDEALLOOP1, PHASEIDEALLOOP2, BEFORE_MACRO_EXPANSION, | ||||||||||||||||||||||||||||||||||||||||||||
FINAL_CODE, OPTIMIZE_FINISHED); | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix12", PHASEIDEALLOOP1, PHASEIDEALLOOP2, PRINT_OPTO_ASSEMBLY, | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix12", PHASEIDEALLOOP1, PHASEIDEALLOOP2, | ||||||||||||||||||||||||||||||||||||||||||||
FINAL_CODE, OPTIMIZE_FINISHED, PRINT_IDEAL); | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix13", PHASEIDEALLOOP1, PHASEIDEALLOOP2, PRINT_IDEAL, | ||||||||||||||||||||||||||||||||||||||||||||
FINAL_CODE, OPTIMIZE_FINISHED); | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -129,7 +129,7 @@ public void testMixedPhases() { | |||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix16", PHASEIDEALLOOP1, PHASEIDEALLOOP2, FINAL_CODE, | ||||||||||||||||||||||||||||||||||||||||||||
OPTIMIZE_FINISHED, PRINT_IDEAL); | ||||||||||||||||||||||||||||||||||||||||||||
assertContainsOnly(methodToCompilePhases, testClass, "mix17", PHASEIDEALLOOP1, PHASEIDEALLOOP2, FINAL_CODE, | ||||||||||||||||||||||||||||||||||||||||||||
OPTIMIZE_FINISHED, PRINT_OPTO_ASSEMBLY); | ||||||||||||||||||||||||||||||||||||||||||||
OPTIMIZE_FINISHED, PRINT_IDEAL); | ||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
private void testDefault(Class<?> testClass, CompilePhase... compilePhases) { | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -147,9 +147,9 @@ private void assertContainsOnly(Map<String, Set<CompilePhase>> methodToCompilePh | |||||||||||||||||||||||||||||||||||||||||||
String simpleMethodName, CompilePhase... compilePhases) { | ||||||||||||||||||||||||||||||||||||||||||||
String methodName = getFullMethodName(testClass, simpleMethodName); | ||||||||||||||||||||||||||||||||||||||||||||
Set<CompilePhase> compilePhaseSet = methodToCompilePhases.get(methodName); | ||||||||||||||||||||||||||||||||||||||||||||
Assert.assertEquals("must be equal", compilePhases.length, compilePhaseSet.size()); | ||||||||||||||||||||||||||||||||||||||||||||
Assert.assertEquals("In method " + simpleMethodName + ": must be equal", compilePhases.length, compilePhaseSet.size()); | ||||||||||||||||||||||||||||||||||||||||||||
for (CompilePhase compilePhase : compilePhases) { | ||||||||||||||||||||||||||||||||||||||||||||
Assert.assertTrue("did not find " + compilePhase + " for " + methodName, | ||||||||||||||||||||||||||||||||||||||||||||
Assert.assertTrue("In method " + simpleMethodName + ": did not find " + compilePhase + " for " + methodName, | ||||||||||||||||||||||||||||||||||||||||||||
methodToCompilePhases.get(methodName).contains(compilePhase)); | ||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -193,44 +193,45 @@ public void test6() {} | |||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
static class Opto { | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.SCOPE_OBJECT, "2"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test1() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.ALLOC_OF, "Foo"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.OOPMAP_WITH, "Foo", "2"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test2() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.SCOPE_OBJECT, "2"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.FIELD_ACCESS) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.CHECKCAST_ARRAY, "2"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test3() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC_ARRAY_OF, "Foo", "!= 4"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.CHECKCAST_ARRAYCOPY, IRNode.CHECKCAST_ARRAY_OF, "Foo"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.CBZ_HI, "> 1"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test4() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.FIELD_ACCESS) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.CHECKCAST_ARRAY, "2"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.CBNZW_HI}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.CBZ_LS, "2", IRNode.CBZW_LS, "> 1"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test5() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.CHECKCAST_ARRAYCOPY, IRNode.CHECKCAST_ARRAY_OF, "Foo"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "2", IRNode.ALLOC_ARRAY_OF, "Foo", "> 1"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.CBNZW_HI}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.CBZW_LS, "> 1"}) | ||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+212
to
+222
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've just noticed that these AArch64 specific jdk/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Lines 2905 to 2925 in e23e0f8
We should probably add a similar check for these For this test here, we only collect compile phases and it does not matter on what platforms these |
||||||||||||||||||||||||||||||||||||||||||||
public void test6() {} | ||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
static class IdealAndOpto { | ||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.FIELD_ACCESS) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE) | ||||||||||||||||||||||||||||||||||||||||||||
public void test1() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.ALLOC_OF, "Foo"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.CHECKCAST_ARRAY_OF, "Foo"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.STORE_OF_FIELD, "iFld"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test2() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
@@ -241,7 +242,7 @@ public void test3() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.LOAD_OF_FIELD, "iFld", "!= 4"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC_ARRAY_OF, "Foo", "!= 4"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.OOPMAP_WITH, "Foo", "!= 4"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test4() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
@@ -254,7 +255,7 @@ public void test5() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.STORE, IRNode.CHECKCAST_ARRAY_OF, "Foo"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "2", IRNode.STORE_OF_FIELD, "iFld", "> 1"}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.FIELD_ACCESS, "2", IRNode.STORE_OF_FIELD, "iFld", "> 1"}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test6() {} | ||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
@@ -308,7 +309,7 @@ public void test2() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC, phase = AFTER_PARSING) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.ALLOC_ARRAY_OF, "Foo"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.OOPMAP_WITH, "Foo"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
public void test3() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -326,7 +327,7 @@ public void test6() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE, phase = {PHASEIDEALLOOP1, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.FIELD_ACCESS, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE, phase = {FINAL_CODE, OPTIMIZE_FINISHED}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test7() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
@@ -346,7 +347,7 @@ public void test2A() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "< 3"}, phase = AFTER_PARSING) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC_ARRAY_OF, "Foo", ">=3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.OOPMAP_WITH, "Foo", ">=3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
public void test3A() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -364,7 +365,7 @@ public void test6A() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.STORE, "3"}, phase = {PHASEIDEALLOOP1, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.FIELD_ACCESS, "3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.STORE, "3"}, phase = {FINAL_CODE, OPTIMIZE_FINISHED}) | ||||||||||||||||||||||||||||||||||||||||||||
public void test7A() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
@@ -386,13 +387,13 @@ public void mix2() {} | |||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE, phase = AFTER_PARSING) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.STORE, "3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.ALLOC_OF, "Foo"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = {IRNode.OOPMAP_WITH, "Foo"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
public void mix3() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.STORE, "3"}, phase = AFTER_PARSING) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.STORE_OF_CLASS, "Foo", "3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.FIELD_ACCESS, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
public void mix4() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -402,7 +403,7 @@ public void mix5() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE, phase = {PHASEIDEALLOOP1, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.FIELD_ACCESS, "3"}, phase = DEFAULT) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE, phase = {FINAL_CODE, OPTIMIZE_FINISHED}) | ||||||||||||||||||||||||||||||||||||||||||||
public void mix6() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
|
@@ -413,7 +414,7 @@ public void mix7() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE, phase = {PHASEIDEALLOOP1, DEFAULT, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "3"}, phase = {FINAL_CODE, OPTIMIZE_FINISHED, DEFAULT}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.LOOP, "3"}, phase = {FINAL_CODE, OPTIMIZE_FINISHED, DEFAULT}) | ||||||||||||||||||||||||||||||||||||||||||||
marc-chevalier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||
public void mix8() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -425,13 +426,13 @@ public void mix9() {} | |||||||||||||||||||||||||||||||||||||||||||
public void mix10() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC, phase = {PHASEIDEALLOOP1, PRINT_OPTO_ASSEMBLY, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC, phase = {PHASEIDEALLOOP1, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "3"}, phase = {FINAL_CODE, OPTIMIZE_FINISHED, DEFAULT}) | ||||||||||||||||||||||||||||||||||||||||||||
marc-chevalier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||
public void mix11() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.STORE, phase = {PHASEIDEALLOOP1, PRINT_IDEAL, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.ALLOC, "3"}, phase = {FINAL_CODE, OPTIMIZE_FINISHED, DEFAULT}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {IRNode.LOOP, "3"}, phase = {FINAL_CODE, OPTIMIZE_FINISHED, DEFAULT}) | ||||||||||||||||||||||||||||||||||||||||||||
marc-chevalier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||
public void mix12() {} | ||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
|
@@ -456,7 +457,7 @@ public void mix16() {} | |||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||
@Test | ||||||||||||||||||||||||||||||||||||||||||||
@IR(counts = {"foo", "3"}, phase = {PHASEIDEALLOOP1, PHASEIDEALLOOP2}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.ALLOC, phase = {FINAL_CODE, OPTIMIZE_FINISHED, DEFAULT}) | ||||||||||||||||||||||||||||||||||||||||||||
@IR(failOn = IRNode.LOOP, phase = {FINAL_CODE, OPTIMIZE_FINISHED, DEFAULT}) | ||||||||||||||||||||||||||||||||||||||||||||
marc-chevalier marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||
public void mix17() {} | ||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think for this test you should add a matching on some
PrintOptoAssembly
as well since it tries to verify ideal and opto matching.