Annotate the SpeedTracer log data with some extra info.
Also, remove some unused event types and fiddle with the colors to make DevMode traces a bit more readable.

Review at http://gwt-code-reviews.appspot.com/753801

Review by: zundel@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8519 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/DevModeBase.java b/dev/core/src/com/google/gwt/dev/DevModeBase.java
index b8f3f75..cdec046 100644
--- a/dev/core/src/com/google/gwt/dev/DevModeBase.java
+++ b/dev/core/src/com/google/gwt/dev/DevModeBase.java
@@ -91,7 +91,7 @@
     public ModuleSpaceHost createModuleSpaceHost(ModuleHandle module,
         String moduleName) throws UnableToCompleteException {
       Event moduleSpaceHostCreateEvent =
-          SpeedTracerLogger.start(DevModeEventType.MODULE_SPACE_HOST_CREATE);
+          SpeedTracerLogger.start(DevModeEventType.MODULE_SPACE_HOST_CREATE, "Module Name", moduleName);
       // TODO(jat): add support for closing an active module
       TreeLogger logger = module.getLogger();
       try {
diff --git a/dev/core/src/com/google/gwt/dev/javac/CompilationState.java b/dev/core/src/com/google/gwt/dev/javac/CompilationState.java
index 9747eef..f0437ef 100644
--- a/dev/core/src/com/google/gwt/dev/javac/CompilationState.java
+++ b/dev/core/src/com/google/gwt/dev/javac/CompilationState.java
@@ -84,11 +84,13 @@
 
   public void addGeneratedCompilationUnits(TreeLogger logger,
       Collection<GeneratedUnit> generatedUnits) {
-    Event generatedUnitsAddEvent = SpeedTracerLogger.start(DevModeEventType.GENERATED_UNITS_ADD);
+    Event generatedUnitsAddEvent = SpeedTracerLogger.start(
+        DevModeEventType.GENERATED_UNITS_ADD);
 
     try {
       logger = logger.branch(TreeLogger.DEBUG, "Adding '"
           + generatedUnits.size() + "' new generated units");
+      generatedUnitsAddEvent.addData("# new generated units", "" + generatedUnits.size());
       Collection<CompilationUnit> newUnits = compileMoreLater.addGeneratedTypes(
           logger, generatedUnits);
       assimilateUnits(logger, newUnits);
diff --git a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
index 106ffde..9020b00 100644
--- a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
@@ -503,7 +503,7 @@
     compilerImpl = new CompilerImpl();
     compilerImpl.compile(icus.toArray(new ICompilationUnit[icus.size()]));
     compilerImpl = null;
-    jdtCompilerEvent.end();
+    jdtCompilerEvent.end("# icus", "" + icus.size());
     lazyContentIdMap = null;
     return true;
   }
diff --git a/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java b/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
index ec79ee4..328fe17 100644
--- a/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
+++ b/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
@@ -56,7 +56,6 @@
 import com.google.gwt.dev.util.Name;
 import com.google.gwt.dev.util.Name.InternalName;
 import com.google.gwt.dev.util.log.speedtracer.CompilerEventType;
-import com.google.gwt.dev.util.log.speedtracer.DevModeEventType;
 import com.google.gwt.dev.util.log.speedtracer.SpeedTracerLogger;
 import com.google.gwt.dev.util.log.speedtracer.SpeedTracerLogger.Event;
 
@@ -296,7 +295,10 @@
   public void addNewUnits(TreeLogger logger,
       Collection<CompilationUnit> units) {
     Event typeOracleMediatorEvent = SpeedTracerLogger.start(CompilerEventType.TYPE_ORACLE_MEDIATOR);
+    
     // First collect all class data.
+    Event visitClassFileEvent = SpeedTracerLogger.start(
+        CompilerEventType.TYPE_ORACLE_MEDIATOR, "phase", "Visit Class Files");
     classMap = new HashMap<String, CollectClassData>();
     for (CompilationUnit unit : units) {
       if (!unit.isCompiled()) {
@@ -312,7 +314,10 @@
         }
       }
     }
+    visitClassFileEvent.end();
 
+    Event identityEvent = SpeedTracerLogger.start(
+        CompilerEventType.TYPE_ORACLE_MEDIATOR, "phase", "Establish Identity");
     // Perform a shallow pass to establish identity for new and old types.
     classMapType = new HashMap<JRealClassType, CollectClassData>();
     allMethodArgs = new MethodArgNamesLookup();
@@ -337,7 +342,9 @@
         }
       }
     }
+    identityEvent.end();
 
+    Event resolveEnclosingEvent = SpeedTracerLogger.start(CompilerEventType.TYPE_ORACLE_MEDIATOR, "phase", "Resolve Enclosing Classes");
     // Hook up enclosing types
     TreeLogger branch = logger.branch(TreeLogger.SPAM,
         "Resolving enclosing classes");
@@ -348,7 +355,9 @@
         it.remove();
       }
     }
+    resolveEnclosingEvent.end();
 
+    Event resolveUnresolvedEvent = SpeedTracerLogger.start(CompilerEventType.TYPE_ORACLE_MEDIATOR, "phase", "Resolve Unresolved Types");
     // Resolve unresolved types.
     for (JRealClassType type : unresolvedTypes) {
       branch = logger.branch(TreeLogger.SPAM, "Resolving "
@@ -358,8 +367,11 @@
         // TODO: should we do anything else here?
       }
     }
+    resolveUnresolvedEvent.end();
 
+    Event finishEvent = SpeedTracerLogger.start(CompilerEventType.TYPE_ORACLE_MEDIATOR, "phase", "Finish");
     typeOracle.finish();
+    finishEvent.end();
 
     // no longer needed
     allMethodArgs = null;
@@ -548,8 +560,6 @@
    * creating JRealClassType/JGenericType objects.
    */
   private CollectClassData processClass(CompiledClass compiledClass) {
-    Event visitClassFileEvent = SpeedTracerLogger.start(DevModeEventType.VISIT_CLASS_FILE);
-    
     byte[] classBytes = compiledClass.getBytes();
     ClassReader reader = new ClassReader(classBytes);
     CollectClassData mcv = new CollectClassData();
@@ -558,8 +568,6 @@
       cv = new TraceClassVisitor(cv, new PrintWriter(System.out));
     }
     reader.accept(cv, 0);
-    
-    visitClassFileEvent.end();    
     return mcv;
   }
 
diff --git a/dev/core/src/com/google/gwt/dev/shell/ModuleSpace.java b/dev/core/src/com/google/gwt/dev/shell/ModuleSpace.java
index e8e1dac..792dc5d 100644
--- a/dev/core/src/com/google/gwt/dev/shell/ModuleSpace.java
+++ b/dev/core/src/com/google/gwt/dev/shell/ModuleSpace.java
@@ -318,7 +318,7 @@
    * Runs the module's user startup code.
    */
   public final void onLoad(TreeLogger logger) throws UnableToCompleteException {
-    Event moduleSpaceLoad = SpeedTracerLogger.start(DevModeEventType.MODULE_SPACE_LOAD);
+    Event moduleSpaceLoadEvent = SpeedTracerLogger.start(DevModeEventType.MODULE_SPACE_LOAD);
 
     // Tell the host we're ready for business.
     //
@@ -434,7 +434,7 @@
       logger.log(TreeLogger.ERROR, unableToLoadMessage, caught);
       throw new UnableToCompleteException();
     } finally {
-      moduleSpaceLoad.end();
+      moduleSpaceLoadEvent.end();
     }
   }
 
@@ -453,6 +453,8 @@
       //
       String sourceName = BinaryName.toSourceName(requestedClassName);
       resultName = rebind(sourceName);
+      moduleSpaceRebindAndCreate.addData(
+          "Requested Class", requestedClassName, "Result Name", resultName);
       Class<?> resolvedClass = loadClassFromSourceName(resultName);
       if (Modifier.isAbstract(resolvedClass.getModifiers())) {
         msg = "Deferred binding result type '" + resultName
@@ -634,7 +636,8 @@
    */
   private Class<?> loadClassFromSourceName(String sourceName)
       throws ClassNotFoundException {
-    Event moduleSpaceClassLoad = SpeedTracerLogger.start(DevModeEventType.MODULE_SPACE_CLASS_LOAD);
+    Event moduleSpaceClassLoad = SpeedTracerLogger.start(
+        DevModeEventType.MODULE_SPACE_CLASS_LOAD, "Source Name", sourceName);
     try {
       String toTry = sourceName;
       while (true) {
diff --git a/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java b/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java
index 84560bd..7d4f75a 100644
--- a/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java
+++ b/dev/core/src/com/google/gwt/dev/shell/ModuleSpaceOOPHM.java
@@ -105,7 +105,8 @@
       Object[] args) throws Throwable {
     TreeLogger branch = host.getLogger().branch(TreeLogger.SPAM,
         "Invoke native method " + name, null);
-    Event javaToJsCallEvent = SpeedTracerLogger.start(DevModeEventType.JAVA_TO_JS_CALL);
+    Event javaToJsCallEvent =
+        SpeedTracerLogger.start(DevModeEventType.JAVA_TO_JS_CALL);
 
     CompilingClassLoader isolatedClassLoader = getIsolatedClassLoader();
     JsValueOOPHM jsthis = new JsValueOOPHM();
diff --git a/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java b/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java
index 8eef148..746b902 100644
--- a/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java
+++ b/dev/core/src/com/google/gwt/dev/shell/OophmSessionHandler.java
@@ -169,7 +169,7 @@
   public synchronized TreeLogger loadModule(BrowserChannelServer channel,
       String moduleName, String userAgent, String url, String tabKey,
       String sessionKey, byte[] userAgentIcon) {
-    Event moduleInit = SpeedTracerLogger.start(DevModeEventType.MODULE_INIT);
+    Event moduleInit = SpeedTracerLogger.start(DevModeEventType.MODULE_INIT, "Module Name", moduleName);
     ModuleHandle moduleHandle = host.createModuleLogger(moduleName, userAgent,
         url, tabKey, sessionKey, channel, userAgentIcon);
     TreeLogger logger = moduleHandle.getLogger();
diff --git a/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java b/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java
index 03b5059..23ee903 100644
--- a/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java
+++ b/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java
@@ -52,7 +52,7 @@
 
     public String rebind(TreeLogger logger, String typeName,
         ArtifactAcceptor artifactAcceptor) throws UnableToCompleteException {
-      Event rebindEvent = SpeedTracerLogger.start(DevModeEventType.REBIND);
+      Event rebindEvent = SpeedTracerLogger.start(DevModeEventType.REBIND, "Type Name", typeName);
       try {
         genCtx.setPropertyOracle(propOracle);
         String result = tryRebind(logger, typeName);
diff --git a/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java b/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java
index f85ba0a..cfbbd42 100644
--- a/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java
+++ b/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java
@@ -220,7 +220,8 @@
    */
   public byte[] rewrite(TypeOracle typeOracle, String className,
       byte[] classBytes, Map<String, String> anonymousClassMap) {
-    Event classBytesRewriteEvent = SpeedTracerLogger.start(DevModeEventType.CLASS_BYTES_REWRITE);
+    Event classBytesRewriteEvent =
+        SpeedTracerLogger.start(DevModeEventType.CLASS_BYTES_REWRITE, "Class Name", className);
     String desc = toDescriptor(className);
     assert (!jsoIntfDescs.contains(desc));
 
diff --git a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/CompilerEventType.java b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/CompilerEventType.java
index eb66b10..b6c0476 100644
--- a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/CompilerEventType.java
+++ b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/CompilerEventType.java
@@ -28,7 +28,7 @@
   JJS_COMPILE_PERMUTATION("JjsCompilePermutation", "Moccasin"), //
   DRAFT_OPTIMIZE("DraftOptimizer", "Blue"), //
   GENERATOR("Generator", "Red"), //
-  JDT_COMPILER("JdtCompiler", "FireBrick"), //
+  JDT_COMPILER("JdtCompiler", "Tomato"), //
   LINK("Link", "LawnGreen"), //
   MAKE_SOYC_ARTIFACTS("MakeSoycArtifacts", "Chartreuse"), //
   MODULE_DEF("ModuleDef", "BlueViolet"), //
diff --git a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/DevModeEventType.java b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/DevModeEventType.java
index 81f04eb..cb4b380 100644
--- a/dev/core/src/com/google/gwt/dev/util/log/speedtracer/DevModeEventType.java
+++ b/dev/core/src/com/google/gwt/dev/util/log/speedtracer/DevModeEventType.java
@@ -27,27 +27,19 @@
       "Teal"), //
   CREATE_UI("Create UI", "BlueViolet"), //
   GENERATED_UNITS_ADD("Generated units add", "Brown"), //
-  GENERATOR_RUN("Generator run", "Tomato"), //
   JAVA_TO_JS_CALL("Java to JS call", "LightSkyBlue"), //
   JETTY_STARTUP("Jetty startup", "Orchid"), //
-  JS_TO_JAVA_CALL("JS to Java call", "OrangeRed"), //
-  MODULE_DEF_LOAD("ModuleDef load", "Peru"), //
-  MODULE_DEF_NORMALIZE("ModuleDef normalize", "DarkKhaki"), //
-  MODULE_DEF_REFRESH("ModuleDef refresh", "DarkKhaki"), //
+  JS_TO_JAVA_CALL("JS to Java call", "Orange"), //
   MODULE_INIT("Module init", "Khaki"), //
-  MODULE_SPACE_CLASS_LOAD("ModuleSpace class load", "Ivory"), //
+  MODULE_SPACE_CLASS_LOAD("ModuleSpace class load", "MintCream"), //
   MODULE_SPACE_HOST_CREATE("ModuleSpaceHost create", "Peachpuff"), //
   MODULE_SPACE_HOST_READY("ModuleSpaceHost ready", "Linen"), //
   MODULE_SPACE_LOAD("ModuleSpace load", "LemonChiffon"), //
   MODULE_SPACE_REBIND_AND_CREATE("ModuleSpace rebindAndCreate", "Crimson"), //
   ON_MODULE_LOAD("onModuleLoad", "LightGreen"), //
-  REBIND("Rebind", "Tomato"), //
-  REBOUND_TYPE_CREATE("Rebound type create", "Crimson"), //
-  RESOURCE_ORACLE_REFRESH("ResourceOracle refresh", "Orange"), //
+  REBIND("Rebind", "DarkOrange"), //
   SLOW_STARTUP("Slow startup", "DarkSeaGreen"), //
-  STARTUP("Startup", "LimeGreen"), //
-  TYPE_ORACLE_ADD_NEW_UNITS("TypeOracle add new units", "Magenta"), //
-  VISIT_CLASS_FILE("Visit class file", "RoyalBlue");
+  STARTUP("Startup", "LimeGreen");
 
   final String cssColor;
   final String name;