Reland "[Compose] Enable map composition by default"
This reverts commit 78c4768872292c8095fd6dc0ce3bd970687291eb.
Bug: b/241763080
Change-Id: I84481265bd61a59d71c7d7204a75f176783e3444
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index 35d22bb..d7cbd04 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -29,6 +29,7 @@
import com.android.tools.r8.utils.InternalOptions.DesugarState;
import com.android.tools.r8.utils.InternalOptions.HorizontalClassMergerOptions;
import com.android.tools.r8.utils.InternalOptions.LineNumberOptimization;
+import com.android.tools.r8.utils.InternalOptions.MappingComposeOptions;
import com.android.tools.r8.utils.ProgramClassCollection;
import com.android.tools.r8.utils.Reporter;
import com.android.tools.r8.utils.StringDiagnostic;
@@ -636,7 +637,8 @@
!internal.debug && proguardMapConsumer != null
? LineNumberOptimization.ON
: LineNumberOptimization.OFF;
-
+ MappingComposeOptions mappingComposeOptions = internal.mappingComposeOptions();
+ mappingComposeOptions.enableExperimentalMappingComposition = true;
// Assert and fixup defaults.
assert !internal.isShrinking();
assert !internal.isMinifying();
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 335e328..d49f628 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -1800,8 +1800,8 @@
}
public static class MappingComposeOptions {
- // TODO(b/241763080): Remove when enabled.
public boolean enableExperimentalMappingComposition = false;
+
// TODO(b/247136434): Disable for internal builds.
public boolean allowNonExistingOriginalRanges = true;
public Consumer<ClassNameMapper> generatedClassNameMapperConsumer = null;
diff --git a/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java b/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java
index 1965667..b961f22 100644
--- a/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java
+++ b/src/main/java/com/android/tools/r8/utils/positions/LineNumberOptimizer.java
@@ -53,7 +53,8 @@
if (appView.options().mappingComposeOptions().generatedClassNameMapperConsumer != null) {
appView.options().mappingComposeOptions().generatedClassNameMapperConsumer.accept(mapper);
}
- if (appView.options().mappingComposeOptions().enableExperimentalMappingComposition) {
+ if (appView.options().mappingComposeOptions().enableExperimentalMappingComposition
+ && appView.appInfo().app().getProguardMap() != null) {
timing.begin("Proguard map composition");
try {
mapper =
diff --git a/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java b/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java
index 367e1b6..861e990 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceStackTraceFunctionalCompositionTest.java
@@ -193,8 +193,6 @@
.setMappingSupplier(
ProguardMappingSupplier.builder()
.setProguardMapProducer(ProguardMapProducer.fromPath(mappingFile))
- // TODO(b/241763080): Remove when stable.
- .setAllowExperimental(true)
.build())
.build());
return retracedLines;
@@ -246,8 +244,6 @@
.addProgramFiles(r8Input)
.addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
.addKeepRuleFiles(MAIN_KEEP)
- // TODO(b/241763080): Remove when stable version is default.
- .enableExperimentalMapFileVersion()
.allowUnusedProguardConfigurationRules()
.addDontObfuscate()
.compile()
@@ -264,10 +260,10 @@
.setMode(CompilationMode.RELEASE)
.addProgramFiles(r8Input)
.addLibraryProvider(JdkClassFileProvider.fromSystemJdk())
- .enableExperimentalMapFileVersion()
- // TODO(b/241763080): Enable CF PC test mapping for this compilation.
.addOptionsModification(
- options -> options.mappingComposeOptions().enableExperimentalMappingComposition = true)
+ options -> {
+ assertTrue(options.mappingComposeOptions().enableExperimentalMappingComposition);
+ })
.apply(
b ->
b.getBuilder()