Reduce threshold for inline decision.
which is inspired by http://go/r8g/25543.
------
Revise checkParameterIsNotNull pattern:
if (param == null) throwParameterIsNullException(msg);
Bug: 117848700, 71500340
Change-Id: I5abc3abc6ccd14569dfd08530f7c776d79624ecf
diff --git a/src/test/java/com/android/tools/r8/debug/DebugInfoWhenInliningTest.java b/src/test/java/com/android/tools/r8/debug/DebugInfoWhenInliningTest.java
index 0631ddf..fb5ffe2 100644
--- a/src/test/java/com/android/tools/r8/debug/DebugInfoWhenInliningTest.java
+++ b/src/test/java/com/android/tools/r8/debug/DebugInfoWhenInliningTest.java
@@ -73,6 +73,9 @@
builder.build(), options -> {
options.lineNumberOptimization = lineNumberOptimization;
options.testing.forceJumboStringProcessing = forceJumboStringProcessing;
+ // TODO(b/117848700): Can we make these tests neutral to inlining threshold?
+ // Also CF needs improvements here.
+ options.inliningInstructionLimit = runtimeKind == RuntimeKind.CF ? 5 : 4;
});
return config;
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java b/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java
index d579b55..43e57e2 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/NonNullParamTest.java
@@ -49,10 +49,6 @@
ImmutableList.of(
"-keepattributes InnerClasses,Signature,EnclosingMethod",
"-dontobfuscate"))
- .addOptionsModification(o -> {
- // TODO(b/117848700): we're about to adjust this threshold.
- o.inliningInstructionLimit = 3;
- })
.run(mainClass)
.assertSuccessWithOutput(javaOutput)
.inspector();
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/nonnull/IntrinsicsDeputy.java b/src/test/java/com/android/tools/r8/ir/optimize/nonnull/IntrinsicsDeputy.java
index e457f0c..2e3e430 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/nonnull/IntrinsicsDeputy.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/nonnull/IntrinsicsDeputy.java
@@ -20,7 +20,7 @@
static void checkParameterIsNotNull(Object object, String paramName) {
if (object == null) {
- throw new NullPointerException(paramName);
+ throwParameterIsNullException(paramName);
}
}
@@ -28,6 +28,11 @@
if (object != null) {
return;
}
+ throwParameterIsNullException(paramName);
+ }
+
+ @NeverInline
+ static void throwParameterIsNullException(String paramName) {
throw new NullPointerException(paramName);
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
index 6b7a7c2..7d73d8f 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
@@ -225,6 +225,9 @@
options.enableInlining = true;
options.enableClassInlining = enabled;
options.enableLambdaMerging = false;
+ // Tests check if specific lambdas are inlined or not, where some of target lambdas have
+ // at least 4 instructions.
+ options.inliningInstructionLimit = 4;
}, inspector);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java b/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java
index 175d29c..8543e1f 100644
--- a/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/proxy/ProxiesTest.java
@@ -78,7 +78,12 @@
.setProgramConsumer(ClassFileConsumer.emptyConsumer())
.addLibraryFiles(ToolHelper.getJava8RuntimeJar());
}
- AndroidApp app = ToolHelper.runR8(builder.build(), o -> o.enableDevirtualization = false);
+ AndroidApp app = ToolHelper.runR8(builder.build(), o -> {
+ o.enableDevirtualization = false;
+ // Tests indirectly check if a certain method is inlined or not, where the target method has
+ // at least 4 instructions.
+ o.inliningInstructionLimit = 4;
+ });
inspection.accept(new CodeInspector(app));
String result = backend == Backend.DEX ? runOnArt(app, mainClass) : runOnJava(app, mainClass);
assertEquals(StringUtils.withNativeLineSeparator(expectedResult), result);
diff --git a/src/test/kotlinR8TestResources/class_inliner_lambda_j_style/SamIface.java b/src/test/kotlinR8TestResources/class_inliner_lambda_j_style/SamIface.java
index db0e940..3d40987 100644
--- a/src/test/kotlinR8TestResources/class_inliner_lambda_j_style/SamIface.java
+++ b/src/test/kotlinR8TestResources/class_inliner_lambda_j_style/SamIface.java
@@ -9,7 +9,7 @@
class Consumer {
public static void consume(SamIface iface) {
- System.out.println(iface.foo());
+ iface.foo();
}
public static void consumeBig(SamIface iface) {