From b7d8dffaf1fefdf2f6b52fcf039a06843a28d586 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Mon, 22 May 2006 16:31:09 +0000 Subject: [PATCH] Add idHasRules Add Id.idHasRules :: Id -> Bool, with the obvious semantics. This patch makes sense by itself, but it's just a tidy-up. --- compiler/basicTypes/Id.lhs | 5 ++++- compiler/simplCore/OccurAnal.lhs | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/compiler/basicTypes/Id.lhs b/compiler/basicTypes/Id.lhs index c7ce818..8f955d3 100644 --- a/compiler/basicTypes/Id.lhs +++ b/compiler/basicTypes/Id.lhs @@ -66,7 +66,7 @@ module Id ( idNewStrictness, idNewStrictness_maybe, idWorkerInfo, idUnfolding, - idSpecialisation, idCoreRules, + idSpecialisation, idCoreRules, idHasRules, idCafInfo, idLBVarInfo, idOccInfo, @@ -409,6 +409,9 @@ idSpecialisation id = specInfo (idInfo id) idCoreRules :: Id -> [CoreRule] idCoreRules id = specInfoRules (idSpecialisation id) +idHasRules :: Id -> Bool +idHasRules id = not (isEmptySpecInfo (idSpecialisation id)) + setIdSpecialisation :: Id -> SpecInfo -> Id setIdSpecialisation id spec_info = modifyIdInfo (`setSpecInfo` spec_info) id diff --git a/compiler/simplCore/OccurAnal.lhs b/compiler/simplCore/OccurAnal.lhs index 90a565f..00fdebe 100644 --- a/compiler/simplCore/OccurAnal.lhs +++ b/compiler/simplCore/OccurAnal.lhs @@ -22,10 +22,9 @@ import CoreFVs ( idRuleVars ) import CoreUtils ( exprIsTrivial, isDefaultAlt ) import Id ( isDataConWorkId, isOneShotBndr, setOneShotLambda, idOccInfo, setIdOccInfo, isLocalId, - isExportedId, idArity, idSpecialisation, + isExportedId, idArity, idHasRules, idType, idUnique, Id ) -import IdInfo ( isEmptySpecInfo ) import BasicTypes ( OccInfo(..), isOneOcc, InterestingCxt ) import VarSet @@ -320,7 +319,7 @@ reOrderRec env (CyclicSCC (bind : binds)) | inlineCandidate bndr rhs = 2 -- Likely to be inlined - | not (isEmptySpecInfo (idSpecialisation bndr)) = 1 + | idHasRules bndr = 1 -- Avoid things with specialisations; we'd like -- to take advantage of them in the subsequent bindings -- 1.7.10.4