summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsimonpj <unknown>2005-07-28 12:48:25 +0000
committersimonpj <unknown>2005-07-28 12:48:25 +0000
commit52ed73913693626b505287178c20f05913d00a07 (patch)
treef00a0ff0e5b8b965b0a57b87f75fb90c7a06abb4
parent6edd4302fab7c5594284f122679f0368f2dbcf55 (diff)
downloadhaskell-52ed73913693626b505287178c20f05913d00a07.tar.gz
[project @ 2005-07-28 12:48:25 by simonpj]
Fix another minor bogon in the new rules stuff
-rw-r--r--ghc/compiler/simplCore/SimplCore.lhs8
1 files changed, 5 insertions, 3 deletions
diff --git a/ghc/compiler/simplCore/SimplCore.lhs b/ghc/compiler/simplCore/SimplCore.lhs
index 8e3139e041..a386a3d6b0 100644
--- a/ghc/compiler/simplCore/SimplCore.lhs
+++ b/ghc/compiler/simplCore/SimplCore.lhs
@@ -18,7 +18,7 @@ import HscTypes ( HscEnv(..), ModGuts(..), ExternalPackageState(..),
import CSE ( cseProgram )
import Rules ( RuleBase, emptyRuleBase, mkRuleBase, unionRuleBase,
extendRuleBaseList, pprRuleBase, ruleCheckProgram,
- mkSpecInfo, addSpecInfo )
+ addSpecInfo, addIdSpecialisations )
import PprCore ( pprCoreBindings, pprCoreExpr, pprRules )
import OccurAnal ( occurAnalysePgm, occurAnalyseExpr )
import IdInfo ( setNewStrictnessInfo, newStrictnessInfo,
@@ -33,7 +33,7 @@ import CoreLint ( endPass )
import FloatIn ( floatInwards )
import FloatOut ( floatOutwards )
import Id ( Id, modifyIdInfo, idInfo, isExportedId, isLocalId,
- idSpecialisation, setIdSpecialisation, idName )
+ idSpecialisation, idName )
import VarSet
import VarEnv
import NameEnv ( lookupNameEnv )
@@ -266,7 +266,9 @@ updateBinders local_rules binds
update_bndr bndr = case lookupNameEnv local_rules (idName bndr) of
Nothing -> bndr
- Just rules -> bndr `setIdSpecialisation` mkSpecInfo rules
+ Just rules -> bndr `addIdSpecialisations` rules
+ -- The binder might have some existing rules,
+ -- arising from specialisation pragmas
\end{code}