Remove never inline modeling for kotlin intrinsics

Change-Id: Iad3e410291ed32a208597c66a1bb9e7f840f7e3d
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
index 40c2ce3..674493f 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
@@ -59,7 +59,6 @@
 import com.android.tools.r8.ir.optimize.inliner.InliningReasonStrategy;
 import com.android.tools.r8.ir.optimize.inliner.NopWhyAreYouNotInliningReporter;
 import com.android.tools.r8.ir.optimize.inliner.WhyAreYouNotInliningReporter;
-import com.android.tools.r8.kotlin.Kotlin;
 import com.android.tools.r8.shaking.AppInfoWithLiveness;
 import com.android.tools.r8.shaking.MainDexInfo;
 import com.android.tools.r8.utils.InternalOptions;
@@ -71,7 +70,6 @@
 import com.android.tools.r8.utils.collections.LongLivedProgramMethodSetBuilder;
 import com.android.tools.r8.utils.collections.ProgramMethodSet;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
@@ -86,7 +84,6 @@
 
   protected final AppView<AppInfoWithLiveness> appView;
   private final IRConverter converter;
-  private final Set<DexMethod> extraNeverInlineMethods;
   private final LensCodeRewriter lensCodeRewriter;
   final MainDexInfo mainDexInfo;
 
@@ -107,17 +104,8 @@
       AppView<AppInfoWithLiveness> appView,
       IRConverter converter,
       LensCodeRewriter lensCodeRewriter) {
-    Kotlin.Intrinsics intrinsics = appView.dexItemFactory().kotlin.intrinsics;
     this.appView = appView;
     this.converter = converter;
-    this.extraNeverInlineMethods =
-        appView.options().kotlinOptimizationOptions().disableKotlinSpecificOptimizations
-            ? ImmutableSet.of()
-            : ImmutableSet.of(
-                intrinsics.throwNpe,
-                intrinsics.throwParameterIsNullException,
-                intrinsics.throwParameterIsNullNPE,
-                intrinsics.throwParameterIsNullIAE);
     this.lensCodeRewriter = lensCodeRewriter;
     this.mainDexInfo = appView.appInfo().getMainDexInfo();
     this.singleInlineCallers =
@@ -140,12 +128,6 @@
       return true;
     }
 
-    if (extraNeverInlineMethods.contains(
-        appView.graphLens().getOriginalMethodSignature(singleTargetReference))) {
-      whyAreYouNotInliningReporter.reportExtraNeverInline();
-      return true;
-    }
-
     if (appInfo.isNeverInlineMethod(singleTargetReference)) {
       whyAreYouNotInliningReporter.reportMarkedAsNeverInline();
       return true;
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/inliner/NopWhyAreYouNotInliningReporter.java b/src/main/java/com/android/tools/r8/ir/optimize/inliner/NopWhyAreYouNotInliningReporter.java
index 218a8fc..cc7d4ec 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/inliner/NopWhyAreYouNotInliningReporter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/inliner/NopWhyAreYouNotInliningReporter.java
@@ -22,9 +22,6 @@
   }
 
   @Override
-  public void reportExtraNeverInline() {}
-
-  @Override
   public void reportCallerNotSameClass() {}
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporter.java b/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporter.java
index 8063674..66d6108 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporter.java
@@ -45,8 +45,6 @@
     }
   }
 
-  public abstract void reportExtraNeverInline();
-
   public abstract void reportCallerNotSameClass();
 
   public abstract void reportCallerNotSameNest();
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporterImpl.java b/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporterImpl.java
index f9418b4..94632b6 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporterImpl.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/inliner/WhyAreYouNotInliningReporterImpl.java
@@ -48,11 +48,6 @@
   }
 
   @Override
-  public void reportExtraNeverInline() {
-    print("method is marked as an additional never inline method.");
-  }
-
-  @Override
   public void reportCallerNotSameClass() {
     print("inlinee can only be inlined into methods in the same class.");
   }
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 4aaea25..2d2611f 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
@@ -259,9 +259,11 @@
               String kotlinIntrinsics = "void kotlin.jvm.internal.Intrinsics";
               assertEquals(
                   Lists.newArrayList(
-                      kotlinc.is(KOTLINC_1_3_72)
-                          ? kotlinIntrinsics + ".throwParameterIsNullException(java.lang.String)"
-                          : kotlinIntrinsics + ".throwParameterIsNullNPE(java.lang.String)"),
+                      kotlinIntrinsics
+                          + (kotlinc.is(KOTLINC_1_3_72)
+                              ? ".checkParameterIsNotNull"
+                              : ".checkNotNullParameter")
+                          + "(java.lang.Object, java.lang.String)"),
                   collectStaticCalls(clazz, "main", String[].class.getCanonicalName()));
             });
   }
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineChainTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineChainTest.java
index 802be75..da2f568 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineChainTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineChainTest.java
@@ -78,10 +78,10 @@
               long checkParameterIsNotNull = countCall(main, "checkParameterIsNotNull");
               long checkNotNullParameter = countCall(main, "checkNotNullParameter");
               if (kotlinParameters.is(KotlinCompilerVersion.KOTLINC_1_3_72)) {
-                assertEquals(allowAccessModification ? 0 : 1, checkParameterIsNotNull);
+                assertEquals(1, checkParameterIsNotNull);
                 assertEquals(0, checkNotNullParameter);
               } else {
-                assertEquals(allowAccessModification ? 0 : 1, checkNotNullParameter);
+                assertEquals(1, checkNotNullParameter);
                 assertEquals(0, checkParameterIsNotNull);
               }
             });
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java
index c407a5b..37dd2b3 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java
@@ -76,9 +76,7 @@
               MethodSubject isSupported = main.uniqueMethodWithName("isSupported");
               assertThat(isSupported, isPresent());
               assertEquals(
-                  !kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72) || allowAccessModification
-                      ? 0
-                      : 1,
+                  kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72) ? 1 : 0,
                   countCall(isSupported, "checkParameterIsNotNull"));
 
               // In general cases, null check won't be invoked only once or twice, hence no subtle
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
index 142e48d..d8a7e1c 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
@@ -62,15 +62,25 @@
                               "throwParameterIsNullException",
                               "void",
                               Collections.singletonList("java.lang.String")),
-                          // throwParameterIsNullException is not added for test starting from 1.4
-                          kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72))
+                          false)
+                      .put(
+                          new MethodSignature(
+                              "throwParameterIsNullNPE",
+                              "void",
+                              Collections.singletonList("java.lang.String")),
+                          false)
                       .put(
                           new MethodSignature(
                               "checkParameterIsNotNull",
                               "void",
                               Lists.newArrayList("java.lang.Object", "java.lang.String")),
-                          kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72)
-                              && !allowAccessModification)
+                          kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72))
+                      .put(
+                          new MethodSignature(
+                              "checkNotNullParameter",
+                              "void",
+                              Lists.newArrayList("java.lang.Object", "java.lang.String")),
+                          !kotlinc.is(KotlinCompilerVersion.KOTLINC_1_3_72))
                       .build());
             });
   }
diff --git a/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java b/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java
index e6f1c6d..63cacfc 100644
--- a/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java
+++ b/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java
@@ -118,7 +118,7 @@
     boolean metKotlinIntrinsicsNullChecks = false;
     while (it.hasNext()) {
       DexMethod invokedMethod = it.next().getMethod();
-      if (invokedMethod.holder.toSourceString().contains("java.net")) {
+      if (invokedMethod.holder.getTypeName().contains("java.net")) {
         continue;
       }
       ClassSubject invokedMethodHolderSubject =
@@ -165,7 +165,11 @@
                     "-neverinline class **." + targetClassName + " { <methods>; }",
                     "-keepconstantarguments class kotlin.jvm.internal.Intrinsics {",
                     "  *** checkParameterIsNotNull(...);",
+                    "}",
+                    "-neversinglecallerinline class kotlin.jvm.internal.Intrinsics {",
+                    "  *** checkParameterIsNotNull(...);",
                     "}"))
+            .addNeverSingleCallerInlineAnnotations()
             .allowDiagnosticWarningMessages()
             .minification(minification)
             .compile()