Remove legacy code from force inlining of constructors after class merging

Change-Id: Ida1f5b855342b8c33e5acbf5c45ced68f9ed9e0d
diff --git a/src/main/java/com/android/tools/r8/cf/TypeVerificationHelper.java b/src/main/java/com/android/tools/r8/cf/TypeVerificationHelper.java
index c5f1cac..fee91ad 100644
--- a/src/main/java/com/android/tools/r8/cf/TypeVerificationHelper.java
+++ b/src/main/java/com/android/tools/r8/cf/TypeVerificationHelper.java
@@ -242,7 +242,7 @@
         TypeInfo argumentType;
         if (argumentIndex < 0) {
           argumentType =
-              reference.isInstanceInitializerInlineIntoOrMerged(appView)
+              reference.isInstanceInitializer(appView.dexItemFactory())
                   ? new ThisInstanceInfo(instruction.asArgument(), reference.getHolderType())
                   : createInitializedType(reference.getHolderType());
         } else {
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfFrameVerifier.java b/src/main/java/com/android/tools/r8/cf/code/CfFrameVerifier.java
index 9bb9a8a..eda577c 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfFrameVerifier.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfFrameVerifier.java
@@ -314,7 +314,7 @@
       state =
           state.storeLocal(
               localIndex,
-              context.isInstanceInitializerInlineIntoOrMerged(appView)
+              context.isInstanceInitializer(appView.dexItemFactory())
                   ? FrameType.uninitializedThis()
                   : FrameType.initializedNonNullReference(context.getHolderType()),
               config);
diff --git a/src/main/java/com/android/tools/r8/dex/Constants.java b/src/main/java/com/android/tools/r8/dex/Constants.java
index 2b30ef2..10bfcc7 100644
--- a/src/main/java/com/android/tools/r8/dex/Constants.java
+++ b/src/main/java/com/android/tools/r8/dex/Constants.java
@@ -148,10 +148,7 @@
   public static final String JAVA_LANG_OBJECT_NAME = "java/lang/Object";
   public static final String INSTANCE_INITIALIZER_NAME = "<init>";
   public static final String CLASS_INITIALIZER_NAME = "<clinit>";
-  public static final String TEMPORARY_INSTANCE_INITIALIZER_PREFIX = "$r8$constructor";
   public static final String SYNTHETIC_INSTANCE_INITIALIZER_PREFIX = "$r8$init$synthetic";
 
   public static final int MAX_NON_JUMBO_INDEX = U16BIT_MAX;
-
-  public static final int KILOBYTE = 1 << 10;
 }
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
index 1b9a92e..6c86c27 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -460,23 +460,6 @@
     return accessFlags.isConstructor() && !accessFlags.isStatic();
   }
 
-  /**
-   * Returns true for (private instance) methods that have been created as a result of class merging
-   * and will be force-inlined into an instance initializer on the enclosing class.
-   */
-  public boolean willBeInlinedIntoInstanceInitializer(DexItemFactory dexItemFactory) {
-    checkIfObsolete();
-    if (getName().startsWith(dexItemFactory.temporaryConstructorMethodPrefix)) {
-      assert !isStatic();
-      return true;
-    }
-    return false;
-  }
-
-  public boolean isOrWillBeInlinedIntoInstanceInitializer(DexItemFactory dexItemFactory) {
-    return isInstanceInitializer() || willBeInlinedIntoInstanceInitializer(dexItemFactory);
-  }
-
   public boolean isDefaultInstanceInitializer() {
     checkIfObsolete();
     return isInstanceInitializer() && getParameters().isEmpty();
diff --git a/src/main/java/com/android/tools/r8/graph/DexItemFactory.java b/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
index 00f2da3..240933c 100644
--- a/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
+++ b/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
@@ -354,10 +354,6 @@
   public final DexString constructorMethodName = createString(Constants.INSTANCE_INITIALIZER_NAME);
   public final DexString classConstructorMethodName =
       createString(Constants.CLASS_INITIALIZER_NAME);
-  public final DexString temporaryConstructorMethodPrefix =
-      createString(Constants.TEMPORARY_INSTANCE_INITIALIZER_PREFIX);
-  public final DexString syntheticConstructorMethodPrefix =
-      createString(Constants.SYNTHETIC_INSTANCE_INITIALIZER_PREFIX);
 
   public final DexString thisName = createString("this");
   public final DexString lambdaInstanceFieldName = createString(LAMBDA_INSTANCE_FIELD_NAME);
diff --git a/src/main/java/com/android/tools/r8/graph/DexMethod.java b/src/main/java/com/android/tools/r8/graph/DexMethod.java
index b1b7241..ea4be31 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMethod.java
@@ -335,29 +335,6 @@
     return factory.isConstructor(this);
   }
 
-  public boolean mustBeInlinedIntoInstanceInitializer(AppView<?> appView) {
-    DexItemFactory dexItemFactory = appView.dexItemFactory();
-    if (getName().startsWith(dexItemFactory.temporaryConstructorMethodPrefix)) {
-      DexClassAndMethod method = appView.definitionFor(this);
-      return method != null
-          && appView
-              .graphLens()
-              .getOriginalMethodSignature(this)
-              .isInstanceInitializer(dexItemFactory);
-    }
-    return false;
-  }
-
-  public boolean isHorizontallyMergedInstanceInitializer(DexItemFactory dexItemFactory) {
-    return getName().startsWith(dexItemFactory.syntheticConstructorMethodPrefix);
-  }
-
-  public boolean isInstanceInitializerInlineIntoOrMerged(AppView<?> appView) {
-    return isInstanceInitializer(appView.dexItemFactory())
-        || mustBeInlinedIntoInstanceInitializer(appView)
-        || isHorizontallyMergedInstanceInitializer(appView.dexItemFactory());
-  }
-
   public DexMethod withExtraArgumentPrepended(DexType type, DexItemFactory dexItemFactory) {
     return dexItemFactory.createMethod(
         holder, getProto().prependParameter(type, dexItemFactory), name);
diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
index 1eb69e7..2efeeae 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
@@ -419,8 +419,7 @@
     if (toBeReplaced.isInvokeDirect()) {
       DexItemFactory dexItemFactory = appView.dexItemFactory();
       DexMethod invokedMethod = toBeReplaced.asInvokeDirect().getInvokedMethod();
-      if (invokedMethod.isInstanceInitializer(dexItemFactory)
-          || invokedMethod.mustBeInlinedIntoInstanceInitializer(appView)) {
+      if (invokedMethod.isInstanceInitializer(dexItemFactory)) {
         return false;
       }
     }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
index 813132c..d6953b0 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
@@ -224,7 +224,7 @@
   }
 
   private Set<UninitializedThisLocalRead> insertUninitializedThisLocalReads() {
-    if (!method.getReference().isInstanceInitializerInlineIntoOrMerged(appView)) {
+    if (!method.getReference().isInstanceInitializer(appView.dexItemFactory())) {
       return Collections.emptySet();
     }
     // Find all non-normal exit blocks.
@@ -272,7 +272,7 @@
     assert thisInitializers == null;
     initializers = new HashMap<>();
     boolean isInstanceInitializer =
-        method.getReference().isInstanceInitializerInlineIntoOrMerged(appView);
+        method.getReference().isInstanceInitializer(appView.dexItemFactory());
     for (BasicBlock block : code.blocks) {
       for (Instruction insn : block.getInstructions()) {
         if (insn.isNewInstance()) {
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/unusedarguments/EffectivelyUnusedArgumentsAnalysis.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/unusedarguments/EffectivelyUnusedArgumentsAnalysis.java
index c7472d7..d0ec5b6 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/unusedarguments/EffectivelyUnusedArgumentsAnalysis.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/unusedarguments/EffectivelyUnusedArgumentsAnalysis.java
@@ -132,9 +132,6 @@
     if (method.getDefinition().isInstanceInitializer() && argumentValue.isThis()) {
       return null;
     }
-    if (method.getDefinition().willBeInlinedIntoInstanceInitializer(appView.dexItemFactory())) {
-      return null;
-    }
     if (!ParameterRemovalUtils.canRemoveUnusedParameter(appView, method, argument.getIndex())) {
       return null;
     }
diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
index 6680806..c522643 100644
--- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
+++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
@@ -943,10 +943,7 @@
     DexType holder = field.getHolderType();
     return fieldAccessInfo.isWrittenOnlyInMethodSatisfying(
         method ->
-            method.getHolderType() == holder
-                && method
-                    .getDefinition()
-                    .isOrWillBeInlinedIntoInstanceInitializer(dexItemFactory()));
+            method.getHolderType() == holder && method.getDefinition().isInstanceInitializer());
   }
 
   public boolean isStaticFieldWrittenOnlyInEnclosingStaticInitializer(DexClassAndField field) {