summaryrefslogtreecommitdiff
path: root/test/2237-checker-inline-multidex/src/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/2237-checker-inline-multidex/src/Main.java')
-rw-r--r--test/2237-checker-inline-multidex/src/Main.java56
1 files changed, 36 insertions, 20 deletions
diff --git a/test/2237-checker-inline-multidex/src/Main.java b/test/2237-checker-inline-multidex/src/Main.java
index 7ab2e7fa64..7a2ca829f3 100644
--- a/test/2237-checker-inline-multidex/src/Main.java
+++ b/test/2237-checker-inline-multidex/src/Main.java
@@ -16,57 +16,73 @@
public class Main {
public static void main(String[] args) {
- System.out.println(testNeedsEnvironment());
- System.out.println(testNeedsBssEntryString());
- System.out.println(testNeedsBssEntryInvoke());
- System.out.println(testClass());
+ // Test that the cross-dex inlining is working for HInstructions that need an environment.
+ System.out.println($noinline$testNeedsEnvironment());
+
+ // Test that the cross-dex inlining is working for HInstructions that need a bss entry.
+ System.out.println($noinline$testNeedsBssEntryString());
+ System.out.println($noinline$testNeedsBssEntryInvoke());
+ System.out.println($noinline$testClass());
+
+ // Test that we are able to inline try catches across dex files.
+ System.out.println($noinline$testTryCatch());
}
- /// CHECK-START: java.lang.String Main.testNeedsEnvironment() inliner (before)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsEnvironment() inliner (before)
/// CHECK: InvokeStaticOrDirect method_name:Multi.$inline$NeedsEnvironmentMultiDex
- /// CHECK-START: java.lang.String Main.testNeedsEnvironment() inliner (after)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsEnvironment() inliner (after)
/// CHECK-NOT: InvokeStaticOrDirect method_name:Multi.$inline$NeedsEnvironmentMultiDex
- /// CHECK-START: java.lang.String Main.testNeedsEnvironment() inliner (after)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsEnvironment() inliner (after)
/// CHECK: StringBuilderAppend
- public static String testNeedsEnvironment() {
+ private static String $noinline$testNeedsEnvironment() {
return Multi.$inline$NeedsEnvironmentMultiDex("abc");
}
- /// CHECK-START: java.lang.String Main.testNeedsBssEntryString() inliner (before)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsBssEntryString() inliner (before)
/// CHECK: InvokeStaticOrDirect method_name:Multi.$inline$NeedsBssEntryStringMultiDex
- /// CHECK-START: java.lang.String Main.testNeedsBssEntryString() inliner (after)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsBssEntryString() inliner (after)
/// CHECK-NOT: InvokeStaticOrDirect method_name:Multi.$inline$NeedsBssEntryStringMultiDex
- /// CHECK-START: java.lang.String Main.testNeedsBssEntryString() inliner (after)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsBssEntryString() inliner (after)
/// CHECK: LoadString load_kind:BssEntry
- public static String testNeedsBssEntryString() {
+ private static String $noinline$testNeedsBssEntryString() {
return Multi.$inline$NeedsBssEntryStringMultiDex();
}
- /// CHECK-START: java.lang.String Main.testNeedsBssEntryInvoke() inliner (before)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsBssEntryInvoke() inliner (before)
/// CHECK: InvokeStaticOrDirect method_name:Multi.$inline$NeedsBssEntryInvokeMultiDex
- /// CHECK-START: java.lang.String Main.testNeedsBssEntryInvoke() inliner (after)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsBssEntryInvoke() inliner (after)
/// CHECK-NOT: InvokeStaticOrDirect method_name:Multi.$inline$NeedsBssEntryInvokeMultiDex
- /// CHECK-START: java.lang.String Main.testNeedsBssEntryInvoke() inliner (after)
+ /// CHECK-START: java.lang.String Main.$noinline$testNeedsBssEntryInvoke() inliner (after)
/// CHECK: InvokeStaticOrDirect method_name:Multi.$noinline$InnerInvokeMultiDex method_load_kind:BssEntry
- public static String testNeedsBssEntryInvoke() {
+ private static String $noinline$testNeedsBssEntryInvoke() {
return Multi.$inline$NeedsBssEntryInvokeMultiDex();
}
- /// CHECK-START: java.lang.Class Main.testClass() inliner (before)
+ /// CHECK-START: java.lang.Class Main.$noinline$testClass() inliner (before)
/// CHECK: InvokeStaticOrDirect method_name:Multi.NeedsBssEntryClassMultiDex
- /// CHECK-START: java.lang.Class Main.testClass() inliner (after)
+ /// CHECK-START: java.lang.Class Main.$noinline$testClass() inliner (after)
/// CHECK-NOT: InvokeStaticOrDirect method_name:Multi.NeedsBssEntryClassMultiDex
- /// CHECK-START: java.lang.Class Main.testClass() inliner (after)
+ /// CHECK-START: java.lang.Class Main.$noinline$testClass() inliner (after)
/// CHECK: LoadClass load_kind:BssEntry class_name:Multi$Multi2
- public static Class<?> testClass() {
+ private static Class<?> $noinline$testClass() {
return Multi.NeedsBssEntryClassMultiDex();
}
+
+
+ /// CHECK-START: int Main.$noinline$testTryCatch() inliner (before)
+ /// CHECK-NOT: TryBoundary
+
+ /// CHECK-START: int Main.$noinline$testTryCatch() inliner (after)
+ /// CHECK: TryBoundary
+ private static int $noinline$testTryCatch() {
+ return Multi.$inline$TryCatch("123") + Multi.$inline$TryCatch("abc");
+ }
}