diff options
Diffstat (limited to 'test/2237-checker-inline-multidex/src/Main.java')
-rw-r--r-- | test/2237-checker-inline-multidex/src/Main.java | 56 |
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"); + } } |