diff options
| author | simonpj <unknown> | 2001-03-05 12:19:37 +0000 |
|---|---|---|
| committer | simonpj <unknown> | 2001-03-05 12:19:37 +0000 |
| commit | b5cad075afeeebb30e3603c23e7a1c511bff36a8 (patch) | |
| tree | 4f894ab321effe974bcc3048e2036b74e4836c03 | |
| parent | ee7e91f59a9533d22648e89343aa2613e0e0b7f1 (diff) | |
| download | haskell-b5cad075afeeebb30e3603c23e7a1c511bff36a8.tar.gz | |
[project @ 2001-03-05 12:19:37 by simonpj]
Better dump of transformation rules
| -rw-r--r-- | ghc/compiler/simplCore/SimplCore.lhs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/ghc/compiler/simplCore/SimplCore.lhs b/ghc/compiler/simplCore/SimplCore.lhs index 6c07ba998f..52a5b1be0e 100644 --- a/ghc/compiler/simplCore/SimplCore.lhs +++ b/ghc/compiler/simplCore/SimplCore.lhs @@ -20,7 +20,7 @@ import HscTypes ( PersistentCompilerState(..), ) import CSE ( cseProgram ) import Rules ( RuleBase, emptyRuleBase, ruleBaseFVs, ruleBaseIds, - extendRuleBaseList, addRuleBaseFVs ) + extendRuleBaseList, addRuleBaseFVs, pprRuleBase ) import Module ( moduleEnvElts ) import CoreUnfold import PprCore ( pprCoreBindings, pprIdCoreRule, pprCoreExpr ) @@ -205,12 +205,9 @@ prepareRules :: DynFlags -> PackageRuleBase -> HomeSymbolTable [IdCoreRule], -- Orphan rules IdSet) -- RHS free vars of all rules -prepareRules dflags pkg_rule_base hst us binds rules +prepareRules dflags pkg_rule_base hst us binds local_rules = do { let (better_rules,_) = initSmpl dflags sw_chkr us local_ids black_list_all - (mapSmpl simplRule rules) - - ; dumpIfSet_dyn dflags Opt_D_dump_rules "Transformation rules" - (vcat (map pprIdCoreRule better_rules)) + (mapSmpl simplRule local_rules) ; let (local_rules, orphan_rules) = partition (isLocalId . fst) better_rules rule_rhs_fvs = unionVarSets (map (ruleRhsFreeVars . snd) better_rules) @@ -220,6 +217,12 @@ prepareRules dflags pkg_rule_base hst us binds rules rule_base = extendRuleBaseList imp_rule_base orphan_rules final_rule_base = addRuleBaseFVs rule_base (ruleBaseFVs local_rule_base) -- The last step black-lists the free vars of local rules too + + ; dumpIfSet_dyn dflags Opt_D_dump_rules "Transformation rules" + (vcat [text "Local rules", pprRuleBase local_rule_base, + text "", + text "Imported rules", pprRuleBase final_rule_base]) + ; return (final_rule_base, local_rule_ids, orphan_rules, rule_rhs_fvs) } where |
