Increase simple inlining limit to align with chrome expectations

Bug: b/288184354
Change-Id: Iea013fd5925bc75c5fa9d116220f735e9b738d7d
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index c6f018a..4408df0 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -1693,9 +1693,11 @@
       if (simpleInliningInstructionLimit >= 0) {
         return simpleInliningInstructionLimit;
       }
-      // Allow 2 instructions when using LIR regardless of backend.
+      // Allow 4 instructions when using LIR regardless of backend.
       if (options.testing.useLir) {
-        return 2;
+        // TODO(b/288226522): We should reevaluate this for size and other inputs as it regresses
+        //  compared to DEX code with limit 5. This is set to 4 to avoid discard errors in chrome.
+        return 4;
       }
       // Allow 3 instructions when generating to class files.
       if (options.isGeneratingClassFiles()) {
diff --git a/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java b/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
index a2adf72..f9822e9 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
@@ -51,7 +51,6 @@
         .addDontWarn("android.content.pm.IPackageManager")
         .addOptionsModification(
             options -> options.getOpenClosedInterfacesOptions().suppressAllOpenInterfaces())
-        .allowCheckDiscardedErrors()
         .allowUnusedDontWarnPatterns()
         .allowUnusedProguardConfigurationRules()
         .enableProtoShrinking(false)
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineFunctionalInterfaceMethodImplementedByLambdasTest.java b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineFunctionalInterfaceMethodImplementedByLambdasTest.java
index 441f149..ccd59c6 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineFunctionalInterfaceMethodImplementedByLambdasTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineFunctionalInterfaceMethodImplementedByLambdasTest.java
@@ -5,7 +5,6 @@
 package com.android.tools.r8.ir.optimize.inliner;
 
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
-import static com.android.tools.r8.utils.codeinspector.Matchers.notIf;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
 
@@ -39,6 +38,7 @@
         .addKeepMainRule(TestClass.class)
         .enableNeverClassInliningAnnotations()
         .setMinApi(parameters)
+        .addOptionsModification(o -> o.testing.enableLir())
         .compile()
         .inspect(this::inspect)
         .run(parameters.getRuntime(), TestClass.class)
@@ -52,9 +52,8 @@
       // Used by the invoke-custom instruction.
       assertThat(inspector.clazz(I.class), isPresent());
     }
-
-    // When compiling to DEX, A.m() will be single caller inlined in the second optimization pass.
-    assertThat(inspector.clazz(A.class), notIf(isPresent(), parameters.isDexRuntime()));
+    // A.m() will be single caller inlined in the second optimization pass.
+    assertThat(inspector.clazz(A.class), not(isPresent()));
   }
 
   static class TestClass {
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/inliner/SingleTargetAfterInliningTest.java b/src/test/java/com/android/tools/r8/ir/optimize/inliner/SingleTargetAfterInliningTest.java
index 706f8f0..95cf23e 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/inliner/SingleTargetAfterInliningTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/inliner/SingleTargetAfterInliningTest.java
@@ -4,6 +4,7 @@
 
 package com.android.tools.r8.ir.optimize.inliner;
 
+import static com.android.tools.r8.utils.codeinspector.Matchers.isAbsent;
 import static com.android.tools.r8.utils.codeinspector.Matchers.isPresent;
 import static com.android.tools.r8.utils.codeinspector.Matchers.notIf;
 import static org.hamcrest.CoreMatchers.not;
@@ -83,7 +84,9 @@
     ClassSubject bClassSubject = inspector.clazz(B.class);
     assertThat(bClassSubject, isPresent());
     // TODO(b/286058449): We could inline this.
-    assertThat(bClassSubject.uniqueMethodWithOriginalName("foo"), isPresent());
+    assertThat(
+        bClassSubject.uniqueMethodWithOriginalName("foo"),
+        (parameters.isCfRuntime() && maxInliningDepth == 1) ? isAbsent() : isPresent());
 
     // B.bar() should always be inlined because it is marked as @AlwaysInline.
     assertThat(
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/uninstantiatedtypes/NestedInterfaceMethodTest.java b/src/test/java/com/android/tools/r8/ir/optimize/uninstantiatedtypes/NestedInterfaceMethodTest.java
index 085002e..9626829 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/uninstantiatedtypes/NestedInterfaceMethodTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/uninstantiatedtypes/NestedInterfaceMethodTest.java
@@ -60,8 +60,11 @@
             .enableNoVerticalClassMergingAnnotations()
             .addOptionsModification(
                 options -> {
+                  options.testing.enableLir();
                   options.enableDevirtualization = false;
                   options.inlinerOptions().enableInliningOfInvokesWithNullableReceivers = false;
+                  // The checks for I being present rely on not simple inlining.
+                  options.inlinerOptions().simpleInliningInstructionLimit = 3;
                 })
             .setMinApi(AndroidApiLevel.B)
             .run(parameters.getRuntime(), TestClass.class)
diff --git a/src/test/java/com/android/tools/r8/rewrite/enums/EnumOptimizationTest.java b/src/test/java/com/android/tools/r8/rewrite/enums/EnumOptimizationTest.java
index 35991a7..97045ca 100644
--- a/src/test/java/com/android/tools/r8/rewrite/enums/EnumOptimizationTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/enums/EnumOptimizationTest.java
@@ -159,6 +159,12 @@
         .enableMemberValuePropagationAnnotations()
         .enableSideEffectAnnotations()
         .addOptionsModification(this::configure)
+        .addOptionsModification(
+            o -> {
+              o.testing.enableLir();
+              // Not inlining toString depends on simple inlining limit.
+              o.inlinerOptions().simpleInliningInstructionLimit = 3;
+            })
         .setMinApi(parameters)
         .compile()
         .inspect(this::inspectToStrings)
diff --git a/tools/chrome_data.py b/tools/chrome_data.py
index 69d3a28..55ac69a 100644
--- a/tools/chrome_data.py
+++ b/tools/chrome_data.py
@@ -257,7 +257,6 @@
         'pgconf': [os.path.join(V200430_BASE, 'proguard.config')],
         'libraries': [os.path.join(V200430_BASE, 'library.jar')],
         'min-api': ANDROID_N_API,
-        'system-properties': ['-Dcom.android.tools.r8.testing.dontReportFailingCheckDiscarded=1'],
     },
   },
   '200520-monochrome_public_minimal_apks': {