[label various optimizations properly. clear stats when eta expanding
John Meacham <john@repetae.net>**20060720061458] hunk ./Main.hs 299
+    let tparms = transformParms {
+            transformPass = "PreInit",
+            transformDumpProgress = True
+            }
hunk ./Main.hs 305
-    prog <- transformProgram transformParms {
-        transformPass = "PreInit",
-        transformDumpProgress = True,
+    prog <- transformProgram tparms {
hunk ./Main.hs 309
-    printProgram prog
+    prog <- transformProgram tparms { transformCategory = "typeAnalyze", transformOperation = typeAnalyze True } prog
hunk ./Main.hs 336
-        mprog <- transformProgram tparms { transformCategory = "Simple Recursive", transformOperation = sRec } mprog
+        mprog <- transformProgram tparms { transformCategory = "SimpleRecursive", transformOperation = sRec } mprog
hunk ./Main.hs 341
-        mprog <- simplifyProgram sopt "SuperSimplify" (dump FD.CoreMini) mprog
+        mprog <- simplifyProgram sopt "Init-One" (dump FD.CoreMini) mprog
hunk ./Main.hs 349
-        mprog <- simplifyProgram sopt "Simplify FloatOutCleanup" (dump FD.CoreMini) mprog
+        mprog <- simplifyProgram sopt "Init-Two-FloatOutCleanup" (dump FD.CoreMini) mprog
hunk ./Main.hs 354
-        mprog <- simplifyProgram sopt "Simplify After Strictness" False mprog
+        mprog <- simplifyProgram sopt "Init-Three-AfterDemand" False mprog
hunk ./Main.hs 373
-    progress "Big Simplify"
hunk ./Main.hs 374
-    prog <- simplifyProgram' sopt "SuperSimplify" True (IterateMax 4) prog
+    prog <- simplifyProgram' sopt "Big-One" True (IterateMax 4) prog
hunk ./Main.hs 514
-    let (prog',stats) = Stats.runStatM $  etaExpandProgram prog
-    transformProgram transformParms { transformCategory = "EtaExpansion", transformDumpProgress = miniCorePass,  transformOperation = const $ return prog' { progStats = progStats prog' `mappend` stats } } prog
+    let f prog = prog' { progStats = progStats prog `mappend` stats } where
+        (prog',stats) = Stats.runStatM $  etaExpandProgram prog
+    transformProgram transformParms { transformCategory = "EtaExpansion", transformDumpProgress = miniCorePass,  transformOperation = return . f } prog
hunk ./Main.hs 518
-etaExpandProg' :: Program -> IO Program
-etaExpandProg' prog = do
-    let (prog',stats) = Stats.runStatM $  etaExpandProgram prog
-    transformProgram transformParms { transformCategory = "EtaExpansion", transformDumpProgress = True, transformPass = "PreInit",  transformOperation = const $ return prog' { progStats = progStats prog' `mappend` stats } } prog
hunk ./Main.hs 557
+
+    when collectPassStats $ do
+        Stats.print "PassStats" Stats.theStats
+        Stats.clear Stats.theStats
+