diff --git a/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java b/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java
index 271bd70..21a5123 100644
--- a/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java
+++ b/src/main/java/com/android/tools/r8/utils/CompileDumpCompatR8.java
@@ -8,6 +8,7 @@
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.OutputMode;
 import com.android.tools.r8.R8;
+import com.android.tools.r8.R8Command.Builder;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
@@ -46,6 +47,7 @@
     boolean isCompatMode = false;
     OutputMode outputMode = OutputMode.DexIndexed;
     Path outputPath = null;
+    Path pgMapOutput = null;
     CompilationMode compilationMode = CompilationMode.RELEASE;
     List<Path> program = new ArrayList<>();
     List<Path> library = new ArrayList<>();
@@ -107,6 +109,11 @@
               config.add(Paths.get(operand));
               break;
             }
+          case "--pg-map-output":
+            {
+              pgMapOutput = Paths.get(operand);
+              break;
+            }
           default:
             throw new IllegalArgumentException("Unimplemented option: " + option);
         }
@@ -114,7 +121,7 @@
         program.add(Paths.get(option));
       }
     }
-    R8.run(
+    Builder builder =
         new CompatProguardCommandBuilder(isCompatMode)
             .addProgramFiles(program)
             .addLibraryFiles(library)
@@ -122,7 +129,10 @@
             .addProguardConfigurationFiles(config)
             .setOutput(outputPath, outputMode)
             .setMode(compilationMode)
-            .setMinApiLevel(minApi)
-            .build());
+            .setMinApiLevel(minApi);
+    if (pgMapOutput != null) {
+      builder.setProguardMapOutputPath(pgMapOutput);
+    }
+    R8.run(builder.build());
   }
 }
diff --git a/tools/compiledump.py b/tools/compiledump.py
index 2ab1425..5aa5f97 100755
--- a/tools/compiledump.py
+++ b/tools/compiledump.py
@@ -187,6 +187,8 @@
       cmd.extend(['--classpath', dump.classpath_jar()])
     if compiler != 'd8' and dump.config_file():
       cmd.extend(['--pg-conf', dump.config_file()])
+    if compiler != 'd8':
+      cmd.extend(['--pg-map-output', '%s.map' % out])
     cmd.extend(otherargs)
     utils.PrintCmd(cmd)
     try:
