Add map output to compiledump.py
Change-Id: I7fdb15835499e7650ad0efe0bcd85edb2db04dab
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: