From 6d48ce2925e3cc0e267c58367739d4064094af7f Mon Sep 17 00:00:00 2001 From: Simon Peyton Jones Date: Fri, 23 May 2014 08:23:41 +0100 Subject: 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 --- compiler/coreSyn/CoreFVs.lhs | 2 +- compiler/coreSyn/CoreSyn.lhs | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'compiler/coreSyn') 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 -- cgit v1.2.1