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

Reply via email to