Skip to content
This repository was archived by the owner on Sep 26, 2020. It is now read-only.

Commit 373a51d

Browse files
author
stalcup@google.com
committed
preparation for turning off Dataflow Optimizer to speed up optimized compiles (at optimization levels less than 9)
* splits -XdisableAggressiveOptimization into five more granular flags * marks -XdisableAggressiveOptimization deprecated * cleans up inconsistency in existing Options and ArgHandler implementations Change-Id: I2f33700566e97672b2e570fc5f75293bd6b2fb9f Review-Link: https://gwt-review.googlesource.com/#/c/2610/ Review by: rluble@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@11604 8db76d5a-ed1c-0410-87a9-c151d255dfc7
1 parent f8768f6 commit 373a51d

37 files changed

+782
-113
lines changed

dev/codeserver/java/com/google/gwt/dev/codeserver/CompilerOptionsImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ public File getWorkDir() {
111111
}
112112

113113
@Override
114+
@Deprecated
114115
public boolean isAggressivelyOptimize() {
115116
return false;
116117
}
@@ -190,4 +191,28 @@ public boolean isValidateOnly() {
190191
return false;
191192
}
192193

194+
@Override
195+
public boolean shouldClusterSimilarFunctions() {
196+
return false;
197+
}
198+
199+
@Override
200+
public boolean shouldInlineLiteralParameters() {
201+
return false;
202+
}
203+
204+
@Override
205+
public boolean shouldOptimizeDataflow() {
206+
return false;
207+
}
208+
209+
@Override
210+
public boolean shouldOrdinalizeEnums() {
211+
return false;
212+
}
213+
214+
@Override
215+
public boolean shouldRemoveDuplicateFunctions() {
216+
return false;
217+
}
193218
}

dev/codeserver/java/com/google/gwt/dev/codeserver/UnmodifiableCompilerOptions.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public final void addModuleName(String moduleName) {
3636
}
3737

3838
@Override
39+
@Deprecated
3940
public final void setAggressivelyOptimize(boolean aggressivelyOptimize) {
4041
throw new UnsupportedOperationException();
4142
}
@@ -55,6 +56,11 @@ public void setClosureCompilerEnabled(boolean enabled) {
5556
throw new UnsupportedOperationException();
5657
}
5758

59+
@Override
60+
public void setClusterSimilarFunctions(boolean enabled) {
61+
throw new UnsupportedOperationException();
62+
}
63+
5864
@Override
5965
public final void setCompilerMetricsEnabled(boolean enabled) {
6066
throw new UnsupportedOperationException();
@@ -100,6 +106,11 @@ public final void setGenDir(File dir) {
100106
throw new UnsupportedOperationException();
101107
}
102108

109+
@Override
110+
public void setInlineLiteralParameters(boolean inlineLiteralParameters) {
111+
throw new UnsupportedOperationException();
112+
}
113+
103114
@Override
104115
public final void setLocalWorkers(int localWorkers) {
105116
throw new UnsupportedOperationException();
@@ -125,21 +136,37 @@ public final void setOptimizationLevel(int level) {
125136
throw new UnsupportedOperationException();
126137
}
127138

139+
@Override
140+
public void setOptimizeDataflow(boolean enabled) {
141+
throw new UnsupportedOperationException();
142+
}
143+
128144
@Override
129145
public final void setOptimizePrecompile(boolean optimize) {
130146
throw new UnsupportedOperationException();
131147
}
132148

149+
@Override
150+
public void setOrdinalizeEnums(boolean enabled) {
151+
throw new UnsupportedOperationException();
152+
}
153+
133154
@Override
134155
public final void setOutDir(File outDir) {
135156
throw new UnsupportedOperationException();
136157
}
137158

159+
138160
@Override
139161
public final void setOutput(JsOutputOption obfuscated) {
140162
throw new UnsupportedOperationException();
141163
}
142164

165+
@Override
166+
public void setRemoveDuplicateFunctions(boolean enabled) {
167+
throw new UnsupportedOperationException();
168+
}
169+
143170
@Override
144171
public final void setRunAsyncEnabled(boolean enabled) {
145172
throw new UnsupportedOperationException();
@@ -155,7 +182,6 @@ public final void setSoycExtra(boolean soycExtra) {
155182
throw new UnsupportedOperationException();
156183
}
157184

158-
159185
@Override
160186
public final void setSoycHtmlDisabled(boolean disabled) {
161187
throw new UnsupportedOperationException();

dev/core/src/com/google/gwt/dev/PrecompileTaskArgProcessor.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@
2121
import com.google.gwt.dev.util.arg.ArgHandlerDisableAggressiveOptimization;
2222
import com.google.gwt.dev.util.arg.ArgHandlerDisableCastChecking;
2323
import com.google.gwt.dev.util.arg.ArgHandlerDisableClassMetadata;
24+
import com.google.gwt.dev.util.arg.ArgHandlerDisableClusterSimilarFunctions;
2425
import com.google.gwt.dev.util.arg.ArgHandlerDisableGeneratingOnShards;
26+
import com.google.gwt.dev.util.arg.ArgHandlerDisableInlineLiteralParameters;
27+
import com.google.gwt.dev.util.arg.ArgHandlerDisableOptimizeDataflow;
28+
import com.google.gwt.dev.util.arg.ArgHandlerDisableOrdinalizeEnums;
29+
import com.google.gwt.dev.util.arg.ArgHandlerDisableRemoveDuplicateFunctions;
2530
import com.google.gwt.dev.util.arg.ArgHandlerDisableRunAsync;
2631
import com.google.gwt.dev.util.arg.ArgHandlerDisableSoycHtml;
2732
import com.google.gwt.dev.util.arg.ArgHandlerDisableUpdateCheck;
@@ -43,29 +48,34 @@
4348
class PrecompileTaskArgProcessor extends CompileArgProcessor {
4449
public PrecompileTaskArgProcessor(PrecompileTaskOptions options) {
4550
super(options);
46-
registerHandler(new ArgHandlerGenDir(options));
47-
registerHandler(new ArgHandlerScriptStyle(options));
48-
registerHandler(new ArgHandlerEnableAssertions(options));
49-
registerHandler(new ArgHandlerDisableGeneratingOnShards(options));
51+
registerHandler(new ArgHandlerCompileReport(options));
52+
registerHandler(new ArgHandlerCompilerMetrics(options));
5053
registerHandler(new ArgHandlerDisableAggressiveOptimization(options));
51-
registerHandler(new ArgHandlerDisableClassMetadata(options));
5254
registerHandler(new ArgHandlerDisableCastChecking(options));
53-
registerHandler(new ArgHandlerValidateOnlyFlag(options));
55+
registerHandler(new ArgHandlerDisableClassMetadata(options));
56+
registerHandler(new ArgHandlerDisableClusterSimilarFunctions(options));
57+
registerHandler(new ArgHandlerDisableRemoveDuplicateFunctions(options));
58+
registerHandler(new ArgHandlerDisableGeneratingOnShards(options));
59+
registerHandler(new ArgHandlerDisableInlineLiteralParameters(options));
60+
registerHandler(new ArgHandlerDisableOptimizeDataflow(options));
61+
registerHandler(new ArgHandlerDisableOrdinalizeEnums(options));
5462
registerHandler(new ArgHandlerDisableRunAsync(options));
55-
registerHandler(new ArgHandlerDraftCompile(options));
63+
registerHandler(new ArgHandlerDisableSoycHtml(options));
5664
registerHandler(new ArgHandlerDisableUpdateCheck(options));
65+
registerHandler(new ArgHandlerDraftCompile(options));
5766
registerHandler(new ArgHandlerDumpSignatures());
67+
registerHandler(new ArgHandlerEnableAssertions(options));
68+
registerHandler(new ArgHandlerEnableClosureCompiler(options));
69+
registerHandler(new ArgHandlerFragmentCount(options));
70+
registerHandler(new ArgHandlerFragmentMerge(options));
71+
registerHandler(new ArgHandlerGenDir(options));
5872
registerHandler(new ArgHandlerMaxPermsPerPrecompile(options));
5973
registerHandler(new ArgHandlerOptimize(options));
60-
registerHandler(new ArgHandlerCompileReport(options));
74+
registerHandler(new ArgHandlerScriptStyle(options));
6175
registerHandler(new ArgHandlerSoyc(options));
6276
registerHandler(new ArgHandlerSoycDetailed(options));
6377
registerHandler(new ArgHandlerStrict(options));
64-
registerHandler(new ArgHandlerCompilerMetrics(options));
65-
registerHandler(new ArgHandlerDisableSoycHtml(options));
66-
registerHandler(new ArgHandlerEnableClosureCompiler(options));
67-
registerHandler(new ArgHandlerFragmentMerge(options));
68-
registerHandler(new ArgHandlerFragmentCount(options));
78+
registerHandler(new ArgHandlerValidateOnlyFlag(options));
6979
}
7080

7181
@Override

dev/core/src/com/google/gwt/dev/PrecompileTaskOptionsImpl.java

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public JsOutputOption getOutput() {
7979
}
8080

8181
@Override
82+
@Deprecated
8283
public boolean isAggressivelyOptimize() {
8384
return jjsOptions.isAggressivelyOptimize();
8485
}
@@ -158,6 +159,7 @@ public boolean isValidateOnly() {
158159
}
159160

160161
@Override
162+
@Deprecated
161163
public void setAggressivelyOptimize(boolean aggressivelyOptimize) {
162164
jjsOptions.setAggressivelyOptimize(aggressivelyOptimize);
163165
}
@@ -177,6 +179,11 @@ public void setClosureCompilerEnabled(boolean enabled) {
177179
jjsOptions.setClosureCompilerEnabled(enabled);
178180
}
179181

182+
@Override
183+
public void setClusterSimilarFunctions(boolean enabled) {
184+
jjsOptions.setClusterSimilarFunctions(enabled);
185+
}
186+
180187
@Override
181188
public void setCompilerMetricsEnabled(boolean enabled) {
182189
jjsOptions.setCompilerMetricsEnabled(enabled);
@@ -201,7 +208,7 @@ public void setEnabledGeneratingOnShards(boolean enabled) {
201208
public void setFragmentCount(int numFragments) {
202209
jjsOptions.setFragmentCount(numFragments);
203210
}
204-
211+
205212
@Override
206213
public void setFragmentsMerge(int numFragments) {
207214
jjsOptions.setFragmentsMerge(numFragments);
@@ -212,6 +219,11 @@ public void setGenDir(File genDir) {
212219
this.genDir = genDir;
213220
}
214221

222+
@Override
223+
public void setInlineLiteralParameters(boolean enabled) {
224+
jjsOptions.setInlineLiteralParameters(enabled);
225+
}
226+
215227
@Override
216228
public void setMaxPermsPerPrecompile(int maxPermsPerPrecompile) {
217229
this.maxPermsPerPrecompile = maxPermsPerPrecompile;
@@ -222,16 +234,31 @@ public void setOptimizationLevel(int level) {
222234
jjsOptions.setOptimizationLevel(level);
223235
}
224236

237+
@Override
238+
public void setOptimizeDataflow(boolean enabled) {
239+
jjsOptions.setOptimizeDataflow(enabled);
240+
}
241+
225242
@Override
226243
public void setOptimizePrecompile(boolean optimize) {
227244
jjsOptions.setOptimizePrecompile(optimize);
228245
}
229246

247+
@Override
248+
public void setOrdinalizeEnums(boolean enabled) {
249+
jjsOptions.setOrdinalizeEnums(enabled);
250+
}
251+
230252
@Override
231253
public void setOutput(JsOutputOption output) {
232254
jjsOptions.setOutput(output);
233255
}
234256

257+
@Override
258+
public void setRemoveDuplicateFunctions(boolean enabled) {
259+
jjsOptions.setRemoveDuplicateFunctions(enabled);
260+
}
261+
235262
@Override
236263
public void setRunAsyncEnabled(boolean enabled) {
237264
jjsOptions.setRunAsyncEnabled(enabled);
@@ -261,4 +288,29 @@ public void setStrict(boolean strict) {
261288
public void setValidateOnly(boolean validateOnly) {
262289
this.validateOnly = validateOnly;
263290
}
291+
292+
@Override
293+
public boolean shouldClusterSimilarFunctions() {
294+
return jjsOptions.shouldClusterSimilarFunctions();
295+
}
296+
297+
@Override
298+
public boolean shouldInlineLiteralParameters() {
299+
return jjsOptions.shouldInlineLiteralParameters();
300+
}
301+
302+
@Override
303+
public boolean shouldOptimizeDataflow() {
304+
return jjsOptions.shouldOptimizeDataflow();
305+
}
306+
307+
@Override
308+
public boolean shouldOrdinalizeEnums() {
309+
return jjsOptions.shouldOrdinalizeEnums();
310+
}
311+
312+
@Override
313+
public boolean shouldRemoveDuplicateFunctions() {
314+
return jjsOptions.shouldRemoveDuplicateFunctions();
315+
}
264316
}

dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,19 @@
1616
package com.google.gwt.dev.jjs;
1717

1818
import com.google.gwt.dev.util.arg.OptionAggressivelyOptimize;
19+
import com.google.gwt.dev.util.arg.OptionClusterSimilarFunctions;
1920
import com.google.gwt.dev.util.arg.OptionDisableCastChecking;
2021
import com.google.gwt.dev.util.arg.OptionDisableClassMetadata;
2122
import com.google.gwt.dev.util.arg.OptionEnableAssertions;
2223
import com.google.gwt.dev.util.arg.OptionEnableClosureCompiler;
2324
import com.google.gwt.dev.util.arg.OptionFragmentCount;
2425
import com.google.gwt.dev.util.arg.OptionFragmentsMerge;
26+
import com.google.gwt.dev.util.arg.OptionInlineLiteralParameters;
2527
import com.google.gwt.dev.util.arg.OptionOptimize;
28+
import com.google.gwt.dev.util.arg.OptionOptimizeDataflow;
2629
import com.google.gwt.dev.util.arg.OptionOptimizePrecompile;
30+
import com.google.gwt.dev.util.arg.OptionOrdinalizeEnums;
31+
import com.google.gwt.dev.util.arg.OptionRemoveDuplicateFunctions;
2732
import com.google.gwt.dev.util.arg.OptionRunAsyncEnabled;
2833
import com.google.gwt.dev.util.arg.OptionScriptStyle;
2934
import com.google.gwt.dev.util.arg.OptionSoycDetailed;
@@ -35,9 +40,10 @@
3540
* Controls options for the {@link JavaToJavaScriptCompiler}.
3641
*/
3742
public interface JJSOptions extends OptionOptimize, OptionAggressivelyOptimize,
38-
OptionDisableClassMetadata, OptionDisableCastChecking, OptionEnableAssertions,
43+
OptionClusterSimilarFunctions, OptionDisableClassMetadata, OptionDisableCastChecking,
44+
OptionEnableAssertions, OptionInlineLiteralParameters, OptionOptimizeDataflow,
3945
OptionRunAsyncEnabled, OptionScriptStyle, OptionSoycEnabled, OptionSoycDetailed,
40-
OptionOptimizePrecompile, OptionStrict, OptionSoycHtmlDisabled,
41-
OptionEnableClosureCompiler, OptionFragmentsMerge, OptionFragmentCount {
46+
OptionOptimizePrecompile, OptionOrdinalizeEnums, OptionRemoveDuplicateFunctions, OptionStrict,
47+
OptionSoycHtmlDisabled, OptionEnableClosureCompiler, OptionFragmentsMerge, OptionFragmentCount {
4248

4349
}

0 commit comments

Comments
 (0)