diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteVirtuallyMergedMethodCode.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteVirtuallyMergedMethodCode.java
index 75deda3..e39290c 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteVirtuallyMergedMethodCode.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/IncompleteVirtuallyMergedMethodCode.java
@@ -28,7 +28,6 @@
 import com.android.tools.r8.graph.lens.GraphLens;
 import com.android.tools.r8.horizontalclassmerging.VirtualMethodMerger.SuperMethodReference;
 import com.android.tools.r8.ir.analysis.type.TypeElement;
-import com.android.tools.r8.ir.code.IRMetadata;
 import com.android.tools.r8.ir.code.Value;
 import com.android.tools.r8.ir.code.ValueType;
 import com.android.tools.r8.lightir.LirBuilder;
@@ -176,11 +175,10 @@
         LirStrategy.getDefaultStrategy().getEncodingStrategy();
     LirBuilder<Value, Integer> lirBuilder =
         LirCode.builder(
-                method.getReference(),
-                method.getDefinition().isD8R8Synthesized(),
-                strategy,
-                appView.options())
-            .setMetadata(IRMetadata.unknown());
+            method.getReference(),
+            method.getDefinition().isD8R8Synthesized(),
+            strategy,
+            appView.options());
 
     int instructionIndex = 0;
     List<Value> argumentValues = new ArrayList<>();
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/UndoConstructorInlining.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/UndoConstructorInlining.java
index f10c18b..47f55800 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/UndoConstructorInlining.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/UndoConstructorInlining.java
@@ -22,7 +22,6 @@
 import com.android.tools.r8.graph.MethodAccessFlags;
 import com.android.tools.r8.graph.ProgramMethod;
 import com.android.tools.r8.ir.analysis.type.TypeElement;
-import com.android.tools.r8.ir.code.IRMetadata;
 import com.android.tools.r8.ir.code.Value;
 import com.android.tools.r8.lightir.ByteArrayWriter;
 import com.android.tools.r8.lightir.ByteUtils;
@@ -263,7 +262,6 @@
       return methodsToAppend.isEmpty()
           ? code
           : code.copyWithNewConstantsAndInstructions(
-              code.getMetadataForIR(),
               ArrayUtils.appendElements(code.getConstantPool(), methodsToAppend),
               byteWriter.toByteArray());
     }
@@ -466,8 +464,7 @@
       LirEncodingStrategy<Value, Integer> strategy =
           LirStrategy.getDefaultStrategy().getEncodingStrategy();
       LirBuilder<Value, Integer> lirBuilder =
-          LirCode.builder(methodReference, true, strategy, appView.options())
-              .setMetadata(IRMetadata.unknown());
+          LirCode.builder(methodReference, true, strategy, appView.options());
 
       int instructionIndex = 0;
       List<Value> argumentValues = new ArrayList<>();
