diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2014-05-23 08:23:41 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2014-08-28 11:14:14 +0100 |
commit | 6d48ce2925e3cc0e267c58367739d4064094af7f (patch) | |
tree | b0be0a73cbc3ae436dc02b01ad1bad18af7b04e5 /compiler/coreSyn | |
parent | fa582cc4fbff690c3ce2243c0ca00ca29c029134 (diff) | |
download | haskell-6d48ce2925e3cc0e267c58367739d4064094af7f.tar.gz |
Make tidyProgram discard speculative specialisation rules
The new function TidyPgm.trimAutoRules discards bindings and
rules that were useful, but now have served their purpose.
See Note [Trimming auto rules] in TidyPgm
Diffstat (limited to 'compiler/coreSyn')
-rw-r--r-- | compiler/coreSyn/CoreFVs.lhs | 2 | ||||
-rw-r--r-- | compiler/coreSyn/CoreSyn.lhs | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/compiler/coreSyn/CoreFVs.lhs b/compiler/coreSyn/CoreFVs.lhs index 69da1adaa6..ae162b6a55 100644 --- a/compiler/coreSyn/CoreFVs.lhs +++ b/compiler/coreSyn/CoreFVs.lhs @@ -23,7 +23,7 @@ module CoreFVs ( varTypeTyVars, idUnfoldingVars, idFreeVars, idRuleAndUnfoldingVars, idRuleVars, idRuleRhsVars, stableUnfoldingVars, - ruleRhsFreeVars, rulesFreeVars, + ruleRhsFreeVars, ruleFreeVars, rulesFreeVars, ruleLhsOrphNames, ruleLhsFreeIds, vectsFreeVars, diff --git a/compiler/coreSyn/CoreSyn.lhs b/compiler/coreSyn/CoreSyn.lhs index e82303c4ae..6627ab07bd 100644 --- a/compiler/coreSyn/CoreSyn.lhs +++ b/compiler/coreSyn/CoreSyn.lhs @@ -81,7 +81,7 @@ module CoreSyn ( -- ** Operations on 'CoreRule's seqRules, ruleArity, ruleName, ruleIdName, ruleActivation, setRuleIdName, - isBuiltinRule, isLocalRule, + isBuiltinRule, isLocalRule, isAutoRule, -- * Core vectorisation declarations data type CoreVect(..) @@ -599,6 +599,10 @@ isBuiltinRule :: CoreRule -> Bool isBuiltinRule (BuiltinRule {}) = True isBuiltinRule _ = False +isAutoRule :: CoreRule -> Bool +isAutoRule (BuiltinRule {}) = False +isAutoRule (Rule { ru_auto = is_auto }) = is_auto + -- | The number of arguments the 'ru_fn' must be applied -- to before the rule can match on it ruleArity :: CoreRule -> Int |