[commit: ghc] supercompiler: Move the notion of shortability to the IdInfo module for reuse in the supercompiler (bc152fc)

Max Bolingbroke <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : supercompiler

http://hackage.haskell.org/trac/ghc/changeset/bc152fc8075362078a36a7d25ac147eb2c65c788

>---------------------------------------------------------------

commit bc152fc8075362078a36a7d25ac147eb2c65c788
Author: Max Bolingbroke <[email protected]>
Date:   Wed Jul 4 18:14:26 2012 +0100

    Move the notion of shortability to the IdInfo module for reuse in the supercompiler

>---------------------------------------------------------------

 compiler/basicTypes/IdInfo.lhs   |   10 ++++++++++
 compiler/simplCore/SimplCore.lhs |    7 +------
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/compiler/basicTypes/IdInfo.lhs b/compiler/basicTypes/IdInfo.lhs
index f4e49ea..2e3572c 100644
--- a/compiler/basicTypes/IdInfo.lhs
+++ b/compiler/basicTypes/IdInfo.lhs
@@ -23,6 +23,7 @@ module IdInfo (
 	IdInfo,		-- Abstract
 	vanillaIdInfo, noCafIdInfo,
 	seqIdInfo, megaSeqIdInfo,
+        isShortableIdInfo,
 
 	-- ** Zapping various forms of Info
 	zapLamInfo, zapDemandInfo, zapFragileInfo,
@@ -304,6 +305,15 @@ vanillaIdInfo
 noCafIdInfo :: IdInfo
 noCafIdInfo  = vanillaIdInfo `setCafInfo`    NoCafRefs
 	-- Used for built-in type Ids in MkId.
+
+isShortableIdInfo :: IdInfo -> Bool
+-- True if there is no user-attached IdInfo on exported_id,
+-- so we can safely discard it
+-- See Note [Messing up the exported Id's IdInfo]
+isShortableIdInfo info
+  =  isEmptySpecInfo (specInfo info)
+  && isDefaultInlinePragma (inlinePragInfo info)
+  && not (isStableUnfolding (unfoldingInfo info))
 \end{code}
 
 
diff --git a/compiler/simplCore/SimplCore.lhs b/compiler/simplCore/SimplCore.lhs
index 1e4e5b8..b8548ed 100644
--- a/compiler/simplCore/SimplCore.lhs
+++ b/compiler/simplCore/SimplCore.lhs
@@ -889,12 +889,7 @@ hasShortableIdInfo :: Id -> Bool
 -- True if there is no user-attached IdInfo on exported_id,
 -- so we can safely discard it
 -- See Note [Messing up the exported Id's IdInfo]
-hasShortableIdInfo id
-  =  isEmptySpecInfo (specInfo info)
-  && isDefaultInlinePragma (inlinePragInfo info)
-  && not (isStableUnfolding (unfoldingInfo info))
-  where
-     info = idInfo id
+hasShortableIdInfo = isShortableIdInfo . idInfo
 
 -----------------
 transferIdInfo :: Id -> Id -> Id
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.