[clean up optimizations, give sane names to more passes
John Meacham <john@repetae.net>**20060720100219] hunk ./Main.hs 328
-                (True,[(t,v@ELam {})]) -> do
+                (True,[(t,v@ELam {})]) | tvrIdent t `member` (freeVars v :: IdSet) -> do
hunk ./Main.hs 373
+
hunk ./Main.hs 375
-    prog <- simplifyProgram' sopt "Big-One" True (IterateMax 4) prog
+    prog <- etaExpandProg "Init-Big-One" prog
+    prog <- transformProgram tparms {
+        transformPass = "Init-Big-One",
+        transformCategory = "FloatInward",
+        transformOperation = programFloatInward
+        } prog
+
+    prog <- Demand.analyzeProgram prog
+    prog <- simplifyProgram' sopt "Init-Big-One" True (IterateMax 4) prog
+
hunk ./Main.hs 386
-    --prog <- transformProgram "Big Float Inward" DontIterate True programFloatInward prog
-    --progress "Big Type Anasysis"
-    --prog <- transformProgram "typeAnalyze" DontIterate True (typeAnalyze True) prog
-    prog <- barendregtProg prog
-    -- we have to redo strictness after type analysis, as it might have changed the number of arguments to functions
-    --prog <- simplifyProgram sopt "SuperSimplify" True prog
hunk ./Main.hs 387
-    progress "Big Eta Expansion"
-    prog <- etaExpandProg prog
hunk ./Main.hs 514
-etaExpandProg :: Program -> IO Program
-etaExpandProg prog = do
+etaExpandProg :: String -> Program -> IO Program
+etaExpandProg pass prog = do
hunk ./Main.hs 518
-    transformProgram transformParms { transformCategory = "EtaExpansion", transformDumpProgress = miniCorePass,  transformOperation = return . f } prog
+    transformProgram transformParms { transformPass = pass, transformCategory = "EtaExpansion", transformDumpProgress = miniCorePass,  transformOperation = return . f } prog
hunk ./Main.hs 537
-transTypeAnalyze = transformParms { transformCategory = "TypeAnalyze",  transformOperation = typeAnalyze True }
+transTypeAnalyze = transformParms { transformCategory = "typeAnalyze",  transformOperation = typeAnalyze True }
hunk ./Main.hs 612
-    prog <- transformProgram transTypeAnalyze { transformPass = "AfterMethod", transformDumpProgress = True } prog
+    prog <- transformProgram transTypeAnalyze { transformPass = "Main-AfterMethod", transformDumpProgress = True } prog
hunk ./Main.hs 616
-    prog <- simplifyProgram mempty "SuperSimplify pass 1" True prog
+    prog <- simplifyProgram mempty "Main-One" True prog
hunk ./Main.hs 621
-    prog <- etaExpandProg prog
+    prog <- etaExpandProg "Main-AfterOne" prog
hunk ./Main.hs 623
-    prog <- transformProgram transTypeAnalyze { transformPass = "AfterSimplify", transformDumpProgress = True } prog
+    prog <- transformProgram transTypeAnalyze { transformPass = "Main-AfterSimp", transformDumpProgress = True } prog
hunk ./Main.hs 627
-    prog <- simplifyProgram mempty "SuperSimplify pass 2" True prog
+    prog <- simplifyProgram mempty "Main-Two" True prog
hunk ./Main.hs 886
-    when (dodump && dump FD.CoreSteps) $ Stats.printLStat (optStatLevel options) name estat
+    when (dodump && dump FD.CoreSteps && estat /= mempty) $ Stats.printLStat (optStatLevel options) name estat