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) {