Move calls to disableGlobalOptimization into commands
Change-Id: Id02e4064d7792f9df6b0980e4c6711c07edcd9c3
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index d0a210f..b54e34d 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -190,9 +190,6 @@
}
Timing timing = Timing.create("D8", options);
try {
- // Disable global optimizations.
- options.disableGlobalOptimizations();
-
// Synthetic assertion to check that testing assertions works and can be enabled.
assert forTesting(options, () -> !options.testing.testEnableTestAssertions);
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index bf3cf6f..583c6bb 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -488,13 +488,6 @@
assert !internal.outline.enabled;
assert !internal.enableTreeShakingOfLibraryMethodOverrides;
- // TODO(b/187675788): Enable class merging for synthetics in D8.
- HorizontalClassMergerOptions horizontalClassMergerOptions =
- internal.horizontalClassMergerOptions();
- horizontalClassMergerOptions.disable();
- assert !horizontalClassMergerOptions.isEnabled(HorizontalClassMerger.Mode.INITIAL);
- assert !horizontalClassMergerOptions.isEnabled(HorizontalClassMerger.Mode.FINAL);
-
internal.desugarState = getDesugarState();
internal.encodeChecksums = getIncludeClassesChecksum();
internal.dexClassChecksumFilter = getDexClassChecksumFilter();
@@ -520,6 +513,16 @@
internal.threadCount = getThreadCount();
}
+ // Disable global optimizations.
+ internal.disableGlobalOptimizations();
+
+ // TODO(b/187675788): Enable class merging for synthetics in D8.
+ HorizontalClassMergerOptions horizontalClassMergerOptions =
+ internal.horizontalClassMergerOptions();
+ horizontalClassMergerOptions.disable();
+ assert !horizontalClassMergerOptions.isEnabled(HorizontalClassMerger.Mode.INITIAL);
+ assert !horizontalClassMergerOptions.isEnabled(HorizontalClassMerger.Mode.FINAL);
+
internal.setDumpInputFlags(getDumpInputFlags(), skipDump);
internal.dumpOptions = dumpOptions();
diff --git a/src/main/java/com/android/tools/r8/L8.java b/src/main/java/com/android/tools/r8/L8.java
index 9d25f47..430d811 100644
--- a/src/main/java/com/android/tools/r8/L8.java
+++ b/src/main/java/com/android/tools/r8/L8.java
@@ -128,8 +128,6 @@
Timing timing = Timing.create("L8 desugaring", options);
assert options.cfToCfDesugar;
try {
- // Disable global optimizations.
- options.disableGlobalOptimizations();
// Since L8 Cf representation is temporary, just disable long running back-end optimizations
// on it.
options.enableLoadStoreOptimization = false;
diff --git a/src/main/java/com/android/tools/r8/L8Command.java b/src/main/java/com/android/tools/r8/L8Command.java
index 2abd98f..f4bb9c2 100644
--- a/src/main/java/com/android/tools/r8/L8Command.java
+++ b/src/main/java/com/android/tools/r8/L8Command.java
@@ -214,6 +214,9 @@
internal.threadCount = getThreadCount();
}
+ // Disable global optimizations.
+ internal.disableGlobalOptimizations();
+
internal.setDumpInputFlags(getDumpInputFlags(), false);
internal.dumpOptions = dumpOptions();
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 a11e201..672e322 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -178,7 +178,7 @@
enableMinification = false;
}
- // Constructor for D8.
+ // Constructor for D8, L8, Lint and other non-shrinkers.
public InternalOptions(DexItemFactory factory, Reporter reporter) {
assert reporter != null;
assert factory != null;