diff --git a/src/main/java/com/android/tools/r8/code/DexItemBasedConstString.java b/src/main/java/com/android/tools/r8/code/DexItemBasedConstString.java
index a55ddfae5..876248e62 100644
--- a/src/main/java/com/android/tools/r8/code/DexItemBasedConstString.java
+++ b/src/main/java/com/android/tools/r8/code/DexItemBasedConstString.java
@@ -14,15 +14,19 @@ import java.nio.ShortBuffer;
 
 public class DexItemBasedConstString extends Format21c {
 
+  private final Exception origin;
+
   public static final String NAME = "DexItemBasedConstString";
   public static final String SMALI_NAME = "const-string*";
 
   private final ClassNameComputationInfo classNameComputationInfo;
 
   public DexItemBasedConstString(
-      int register, DexReference string, ClassNameComputationInfo classNameComputationInfo) {
+      int register, DexReference string, ClassNameComputationInfo classNameComputationInfo,
+      Exception origin) {
     super(register, string);
     this.classNameComputationInfo = classNameComputationInfo;
+    this.origin = origin;
   }
 
   public DexReference getItem() {
@@ -73,6 +77,8 @@ public class DexItemBasedConstString extends Format21c {
 
   @Override
   public void write(ShortBuffer dest, ObjectToOffsetMapping mapping) {
+    System.out.println("[R8 logging]: origin of DexItemBasedConstString");
+    origin.printStackTrace(System.out);
     throw new Unreachable(
         "DexItemBasedConstString instructions should always be rewritten into ConstString");
   }
diff --git a/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java b/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
index 6b151b2dd..f62169bac 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
@@ -19,6 +19,8 @@ import com.android.tools.r8.ir.optimize.ReflectionOptimizer.ClassNameComputation
 
 public class DexItemBasedConstString extends ConstInstruction {
 
+  private final Exception origin;
+
   private final DexReference item;
   private final ClassNameComputationInfo classNameComputationInfo;
   private final ThrowingInfo throwingInfo;
@@ -36,6 +38,7 @@ public class DexItemBasedConstString extends ConstInstruction {
     this.item = item;
     this.classNameComputationInfo = classNameComputationInfo;
     this.throwingInfo = throwingInfo;
+    origin = new Exception();
   }
 
   @Override
@@ -72,7 +75,7 @@ public class DexItemBasedConstString extends ConstInstruction {
     builder.add(
         this,
         new com.android.tools.r8.code.DexItemBasedConstString(
-            dest, item, classNameComputationInfo));
+            dest, item, classNameComputationInfo, origin));
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java b/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java
index d869977fd..20ad151bf 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierMinifier.java
@@ -146,6 +146,27 @@ class IdentifierMinifier {
 
   private void replaceDexItemBasedConstStringInMethod(DexEncodedMethod encodedMethod) {
     if (!encodedMethod.getOptimizationInfo().useIdentifierNameString()) {
+      if (encodedMethod.getCode() != null) {
+        Code code = encodedMethod.getCode();
+        if (code.isDexCode()) {
+          Instruction[] instructions = code.asDexCode().instructions;
+          for (Instruction instruction : instructions) {
+            if (instruction.isDexItemBasedConstString()) {
+              System.out.println(
+                  "[R8 logging]: we're missing " + code.toString(encodedMethod, null));
+            }
+          }
+        } else {
+          assert code.isCfCode();
+          List<CfInstruction> instructions = code.asCfCode().instructions;
+          for (CfInstruction instruction : instructions) {
+            if (instruction.isDexItemBasedConstString()) {
+              System.out.println(
+                  "[R8 logging]: we're missing " + code.toString(encodedMethod, null));
+            }
+          }
+        }
+      }
       return;
     }
     // Abstract methods do not have code_item.
@@ -156,6 +177,8 @@ class IdentifierMinifier {
     if (code == null) {
       return;
     }
+    System.out.println(
+        "[R8 logging]: replaceDexItemBasedConstString: " + encodedMethod.toSourceString());
     if (code.isDexCode()) {
       Instruction[] instructions = code.asDexCode().instructions;
       for (int i = 0; i < instructions.length; ++i) {
diff --git a/src/main/java/com/android/tools/r8/naming/Minifier.java b/src/main/java/com/android/tools/r8/naming/Minifier.java
index 4bdf87c74..cfed2d34b 100644
--- a/src/main/java/com/android/tools/r8/naming/Minifier.java
+++ b/src/main/java/com/android/tools/r8/naming/Minifier.java
@@ -79,6 +79,7 @@ public class Minifier {
     assert lens.verifyNoCollisions(appView.appInfo().classes(), appView.dexItemFactory());
 
     timing.begin("MinifyIdentifiers");
+    System.out.println("[R8 logging]: minify identifiers");
     new IdentifierMinifier(appView, lens).run();
     timing.end();
     return lens;
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
index 4c2c8cfa8..ba6dd2285 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
@@ -152,6 +152,7 @@ public class ProguardMapMinifier {
     NamingLens lens = new MinifiedRenaming(appView, classRenaming, methodRenaming, fieldRenaming);
 
     timing.begin("MinifyIdentifiers");
+    System.out.println("[R8 logging]: minify identifiers (-applymapping)");
     new IdentifierMinifier(appView, lens).run();
     timing.end();