[set maximum limit on big simplification pass
John Meacham <john@repetae.net>**20060420011956] hunk ./Main.hs 327
-    prog <- simplifyProgram sopt "SuperSimplify" True prog
+    prog <- simplifyProgram' sopt "SuperSimplify" True (IterateMax 4) prog
hunk ./Main.hs 330
-    prog <- transformProgram "typeAnalyze" DontIterate (dump FD.Pass) (typeAnalyze True) prog
+    prog <- transformProgram "typeAnalyze" DontIterate True (typeAnalyze True) prog
hunk ./Main.hs 752
+    return prog { progStats = progStats prog `mappend` istat }
+
+simplifyProgram' sopt name dodump iterate prog = do
+    let istat = progStats prog
+    let g =  return . SS.programSSimplify sopt { SS.so_dataTable = progDataTable prog } . SS.programPruneOccurance
+    prog <- transformProgram name iterate dodump g prog  { progStats = mempty }
+    when ((dodump && dump FD.Progress) || dump FD.Pass) $ Stats.printStat name (progStats prog)