Revision: 7976
Author: [email protected]
Date: Mon Apr 26 15:50:49 2010
Log: Patching in Rietveld issue 406801, which updates
what optimizations are affected by -XdisableAggressiveOptimization.
http://code.google.com/p/google-web-toolkit/source/detail?r=7976
Modified:
/branches/snapshot-2010.03.29-r7809/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
=======================================
---
/branches/snapshot-2010.03.29-r7809/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
Mon Mar 29 05:13:55 2010
+++
/branches/snapshot-2010.03.29-r7809/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
Mon Apr 26 15:50:49 2010
@@ -279,7 +279,7 @@
EvalFunctionsAtTopScope.exec(jsProgram, map);
// (9) Optimize the JS AST.
- if (options.isAggressivelyOptimize()) {
+ if (!options.isDraftCompile()) {
boolean didChange;
do {
if (Thread.interrupted()) {
@@ -303,7 +303,7 @@
// (10) Split up the program into fragments
SyntheticArtifact dependencies = null;
- if (options.isAggressivelyOptimize() && options.isRunAsyncEnabled())
{
+ if (options.isRunAsyncEnabled()) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
CodeSplitter.exec(logger, jprogram, jsProgram, map,
chooseDependencyRecorder(options.isSoycEnabled(), baos));
@@ -322,16 +322,18 @@
case OBFUSCATED:
obfuscateMap = JsStringInterner.exec(jprogram, jsProgram);
JsObfuscateNamer.exec(jsProgram);
- if (JsStackEmulator.getStackMode(propertyOracles) ==
- JsStackEmulator.StackMode.STRIP) {
- boolean changed = false;
- for (int i = 0; i < jsProgram.getFragmentCount(); i++) {
- JsBlock fragment = jsProgram.getFragmentBlock(i);
- changed = JsDuplicateFunctionRemover.exec(jsProgram,
fragment)
- || changed;
- }
- if (changed) {
- JsUnusedFunctionRemover.exec(jsProgram);
+ if (options.isAggressivelyOptimize()) {
+ if (JsStackEmulator.getStackMode(propertyOracles) ==
+ JsStackEmulator.StackMode.STRIP) {
+ boolean changed = false;
+ for (int i = 0; i < jsProgram.getFragmentCount(); i++) {
+ JsBlock fragment = jsProgram.getFragmentBlock(i);
+ changed = JsDuplicateFunctionRemover.exec(jsProgram,
fragment)
+ || changed;
+ }
+ if (changed) {
+ JsUnusedFunctionRemover.exec(jsProgram);
+ }
}
}
break;
@@ -529,7 +531,7 @@
ReplaceRebinds.exec(logger, jprogram, rpo);
// Fix up GWT.runAsync()
- if (options.isAggressivelyOptimize() && options.isRunAsyncEnabled())
{
+ if (options.isRunAsyncEnabled()) {
ReplaceRunAsyncs.exec(logger, jprogram);
CodeSplitter.pickInitialLoadSequence(logger, jprogram,
module.getProperties());
@@ -670,10 +672,10 @@
// dead code removal??
didChange = DeadCodeElimination.exec(jprogram) || didChange;
+ // inlining
+ didChange = MethodInliner.exec(jprogram) || didChange;
+
if (isAggressivelyOptimize) {
- // inlining
- didChange = MethodInliner.exec(jprogram) || didChange;
-
// remove same parameters value
didChange = SameParameterValueOptimizer.exec(jprogram) || didChange;
}
@@ -920,7 +922,8 @@
JsFunctionClusterer clusterer = new
JsFunctionClusterer(out.toString(),
v.getStatementRanges());
// only cluster for obfuscated mode
- if (options.getOutput() == JsOutputOption.OBFUSCATED) {
+ if (options.isAggressivelyOptimize()
+ && options.getOutput() == JsOutputOption.OBFUSCATED) {
clusterer.exec();
}
// rewrite top-level blocks to limit the number of statements
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors