summaryrefslogtreecommitdiff
path: root/test/624-checker-stringops/src/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/624-checker-stringops/src/Main.java')
-rw-r--r--test/624-checker-stringops/src/Main.java40
1 files changed, 25 insertions, 15 deletions
diff --git a/test/624-checker-stringops/src/Main.java b/test/624-checker-stringops/src/Main.java
index 055a4d7ec9..06b1af36df 100644
--- a/test/624-checker-stringops/src/Main.java
+++ b/test/624-checker-stringops/src/Main.java
@@ -27,16 +27,16 @@ public class Main {
// Variant intrinsics remain in the loop, but invariant references are hoisted out of the loop.
//
/// CHECK-START: int Main.liveIndexOf() licm (before)
- /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOf loop:{{B\d+}} outer_loop:none
- /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOfAfter loop:{{B\d+}} outer_loop:none
- /// CHECK-DAG: InvokeVirtual intrinsic:StringStringIndexOf loop:{{B\d+}} outer_loop:none
- /// CHECK-DAG: InvokeVirtual intrinsic:StringStringIndexOfAfter loop:{{B\d+}} outer_loop:none
+ /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOf loop:{{B\d+}} outer_loop:none
+ /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOfAfter loop:{{B\d+}} outer_loop:none
+ /// CHECK-DAG: InvokeStaticOrDirect intrinsic:StringStringIndexOf loop:{{B\d+}} outer_loop:none
+ /// CHECK-DAG: InvokeStaticOrDirect intrinsic:StringStringIndexOfAfter loop:{{B\d+}} outer_loop:none
//
/// CHECK-START: int Main.liveIndexOf() licm (after)
- /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOf loop:{{B\d+}} outer_loop:none
- /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOfAfter loop:{{B\d+}} outer_loop:none
- /// CHECK-DAG: InvokeVirtual intrinsic:StringStringIndexOf loop:none
- /// CHECK-DAG: InvokeVirtual intrinsic:StringStringIndexOfAfter loop:none
+ /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOf loop:{{B\d+}} outer_loop:none
+ /// CHECK-DAG: InvokeVirtual intrinsic:StringIndexOfAfter loop:{{B\d+}} outer_loop:none
+ /// CHECK-DAG: InvokeStaticOrDirect intrinsic:StringStringIndexOf loop:none
+ /// CHECK-DAG: InvokeStaticOrDirect intrinsic:StringStringIndexOfAfter loop:none
static int liveIndexOf() {
int k = ABC.length() + XYZ.length(); // does LoadString before loops
for (char c = 'A'; c <= 'Z'; c++) {
@@ -89,8 +89,8 @@ public class Main {
// Explicit null check on receiver, implicit null check on argument prevents hoisting.
//
/// CHECK-START: int Main.indexOfExceptions(java.lang.String, java.lang.String) licm (after)
- /// CHECK-DAG: <<String:l\d+>> NullCheck loop:<<Loop:B\d+>> outer_loop:none
- /// CHECK-DAG: InvokeVirtual [<<String>>,{{l\d+}}] intrinsic:StringStringIndexOf loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: <<String:l\d+>> NullCheck loop:<<Loop:B\d+>> outer_loop:none
+ /// CHECK-DAG: InvokeStaticOrDirect [<<String>>,{{l\d+}}] intrinsic:StringStringIndexOf loop:<<Loop>> outer_loop:none
static int indexOfExceptions(String s, String t) {
int k = 0;
for (char c = 'A'; c <= 'Z'; c++) {
@@ -234,17 +234,27 @@ public class Main {
}
//
- // All calls in the loop-body and thus loop can be eliminated.
+ // All calls in the loop-body are dead and thus loop can be eliminated.
//
- /// CHECK-START: int Main.bufferDeadLoop() instruction_simplifier (before)
+ /// CHECK-START: int Main.bufferDeadLoop() dead_code_elimination$initial (before)
/// CHECK-DAG: Phi loop:<<Loop:B\d+>>
/// CHECK-DAG: InvokeVirtual intrinsic:StringBufferToString loop:<<Loop>>
/// CHECK-DAG: InvokeVirtual intrinsic:StringStringIndexOfAfter loop:<<Loop>>
//
+ /// CHECK-START: int Main.bufferDeadLoop() dead_code_elimination$initial (after)
+ /// CHECK-NOT: InvokeVirtual intrinsic:StringStringIndexOfAfter
+ //
+ /// CHECK-START: int Main.bufferDeadLoop() instruction_simplifier$after_inlining (before)
+ /// CHECK: InvokeStaticOrDirect intrinsic:StringBufferToString
+ //
+ /// CHECK-START: int Main.bufferDeadLoop() instruction_simplifier$after_inlining (after)
+ /// CHECK-NOT: InvokeStaticOrDirect intrinsic:StringBufferToString
+ //
+ /// CHECK-START: int Main.bufferDeadLoop() loop_optimization (before)
+ /// CHECK: Phi
+ //
/// CHECK-START: int Main.bufferDeadLoop() loop_optimization (after)
/// CHECK-NOT: Phi
- /// CHECK-NOT: InvokeVirtual intrinsic:StringBufferToString
- /// CHECK-NOT: InvokeVirtual intrinsic:StringStringIndexOfAfter
static int bufferDeadLoop() {
StringBuffer b = new StringBuffer();
String x = "x";
@@ -255,7 +265,7 @@ public class Main {
}
//
- // All calls in the loop-body and thus loop can be eliminated.
+ // All calls in the loop-body are dead and thus loop can be eliminated.
//
/// CHECK-START: int Main.builderDeadLoop() instruction_simplifier (before)
/// CHECK-DAG: Phi loop:<<Loop:B\d+>>