Commit 60ee7636 authored by Simon Peyton Jones's avatar Simon Peyton Jones

Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc

parents 0b20ae91 a0ba88be
...@@ -84,7 +84,7 @@ data Literal ...@@ -84,7 +84,7 @@ data Literal
-- First the primitive guys -- First the primitive guys
MachChar Char -- ^ @Char#@ - at least 31 bits. Create with 'mkMachChar' MachChar Char -- ^ @Char#@ - at least 31 bits. Create with 'mkMachChar'
| MachStr FastString -- ^ A string-literal: stored and emitted | MachStr FastBytes -- ^ A string-literal: stored and emitted
-- UTF-8 encoded, we'll arrange to decode it -- UTF-8 encoded, we'll arrange to decode it
-- at runtime. Also emitted with a @'\0'@ -- at runtime. Also emitted with a @'\0'@
-- terminator. Create with 'mkMachString' -- terminator. Create with 'mkMachString'
...@@ -248,7 +248,8 @@ mkMachChar = MachChar ...@@ -248,7 +248,8 @@ mkMachChar = MachChar
-- | Creates a 'Literal' of type @Addr#@, which is appropriate for passing to -- | Creates a 'Literal' of type @Addr#@, which is appropriate for passing to
-- e.g. some of the \"error\" functions in GHC.Err such as @GHC.Err.runtimeError@ -- e.g. some of the \"error\" functions in GHC.Err such as @GHC.Err.runtimeError@
mkMachString :: String -> Literal mkMachString :: String -> Literal
mkMachString s = MachStr (mkFastString s) -- stored UTF-8 encoded -- stored UTF-8 encoded
mkMachString s = MachStr (fastStringToFastBytes $ mkFastString s)
mkLitInteger :: Integer -> Type -> Literal mkLitInteger :: Integer -> Type -> Literal
mkLitInteger = LitInteger mkLitInteger = LitInteger
...@@ -436,7 +437,7 @@ pprLiteral :: (SDoc -> SDoc) -> Literal -> SDoc ...@@ -436,7 +437,7 @@ pprLiteral :: (SDoc -> SDoc) -> Literal -> SDoc
-- to wrap parens around literals that occur in -- to wrap parens around literals that occur in
-- a context requiring an atomic thing -- a context requiring an atomic thing
pprLiteral _ (MachChar ch) = pprHsChar ch pprLiteral _ (MachChar ch) = pprHsChar ch
pprLiteral _ (MachStr s) = pprHsString s pprLiteral _ (MachStr s) = pprHsBytes s
pprLiteral _ (MachInt i) = pprIntVal i pprLiteral _ (MachInt i) = pprIntVal i
pprLiteral _ (MachDouble d) = double (fromRat d) pprLiteral _ (MachDouble d) = double (fromRat d)
pprLiteral _ (MachNullAddr) = ptext (sLit "__NULL") pprLiteral _ (MachNullAddr) = ptext (sLit "__NULL")
...@@ -469,7 +470,7 @@ Hash values should be zero or a positive integer. No negatives please. ...@@ -469,7 +470,7 @@ Hash values should be zero or a positive integer. No negatives please.
\begin{code} \begin{code}
hashLiteral :: Literal -> Int hashLiteral :: Literal -> Int
hashLiteral (MachChar c) = ord c + 1000 -- Keep it out of range of common ints hashLiteral (MachChar c) = ord c + 1000 -- Keep it out of range of common ints
hashLiteral (MachStr s) = hashFS s hashLiteral (MachStr s) = hashFB s
hashLiteral (MachNullAddr) = 0 hashLiteral (MachNullAddr) = 0
hashLiteral (MachInt i) = hashInteger i hashLiteral (MachInt i) = hashInteger i
hashLiteral (MachInt64 i) = hashInteger i hashLiteral (MachInt64 i) = hashInteger i
......
...@@ -191,7 +191,7 @@ pprModuleName :: ModuleName -> SDoc ...@@ -191,7 +191,7 @@ pprModuleName :: ModuleName -> SDoc
pprModuleName (ModuleName nm) = pprModuleName (ModuleName nm) =
getPprStyle $ \ sty -> getPprStyle $ \ sty ->
if codeStyle sty if codeStyle sty
then ftext (zEncodeFS nm) then ztext (zEncodeFS nm)
else ftext nm else ftext nm
moduleNameFS :: ModuleName -> FastString moduleNameFS :: ModuleName -> FastString
...@@ -271,7 +271,7 @@ pprPackagePrefix p mod = getPprStyle doc ...@@ -271,7 +271,7 @@ pprPackagePrefix p mod = getPprStyle doc
| codeStyle sty = | codeStyle sty =
if p == mainPackageId if p == mainPackageId
then empty -- never qualify the main package in code then empty -- never qualify the main package in code
else ftext (zEncodeFS (packageIdFS p)) <> char '_' else ztext (zEncodeFS (packageIdFS p)) <> char '_'
| qualModule sty mod = ftext (packageIdFS (modulePackageId mod)) <> char ':' | qualModule sty mod = ftext (packageIdFS (modulePackageId mod)) <> char ':'
-- the PrintUnqualified tells us which modules have to -- the PrintUnqualified tells us which modules have to
-- be qualified with package names -- be qualified with package names
......
...@@ -514,7 +514,7 @@ ppr_occ_name occ = ftext (occNameFS occ) ...@@ -514,7 +514,7 @@ ppr_occ_name occ = ftext (occNameFS occ)
-- In code style, we Z-encode the strings. The results of Z-encoding each FastString are -- In code style, we Z-encode the strings. The results of Z-encoding each FastString are
-- cached behind the scenes in the FastString implementation. -- cached behind the scenes in the FastString implementation.
ppr_z_occ_name :: OccName -> SDoc ppr_z_occ_name :: OccName -> SDoc
ppr_z_occ_name occ = ftext (zEncodeFS (occNameFS occ)) ppr_z_occ_name occ = ztext (zEncodeFS (occNameFS occ))
-- Prints (if mod information is available) "Defined at <loc>" or -- Prints (if mod information is available) "Defined at <loc>" or
-- "Defined in <mod>" information for a Name. -- "Defined in <mod>" information for a Name.
......
...@@ -265,7 +265,7 @@ pprOccName :: OccName -> SDoc ...@@ -265,7 +265,7 @@ pprOccName :: OccName -> SDoc
pprOccName (OccName sp occ) pprOccName (OccName sp occ)
= getPprStyle $ \ sty -> = getPprStyle $ \ sty ->
if codeStyle sty if codeStyle sty
then ftext (zEncodeFS occ) then ztext (zEncodeFS occ)
else pp_occ <> pp_debug sty else pp_occ <> pp_debug sty
where where
pp_debug sty | debugStyle sty = braces (pprNameSpaceBrief sp) pp_debug sty | debugStyle sty = braces (pprNameSpaceBrief sp)
......
...@@ -18,50 +18,43 @@ Haskell). ...@@ -18,50 +18,43 @@ Haskell).
\begin{code} \begin{code}
{-# LANGUAGE BangPatterns #-} {-# LANGUAGE BangPatterns #-}
{-# OPTIONS -fno-warn-tabs #-}
-- The above warning supression flag is a temporary kludge.
-- While working on this module you are encouraged to remove it and
-- detab the module (please do the detabbing in a separate patch). See
-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#TabsvsSpaces
-- for details
module Unique ( module Unique (
-- * Main data types -- * Main data types
Unique, Uniquable(..), Unique, Uniquable(..),
-- ** Constructors, desctructors and operations on 'Unique's -- ** Constructors, desctructors and operations on 'Unique's
hasKey, hasKey,
pprUnique, pprUnique,
mkUniqueGrimily, -- Used in UniqSupply only! mkUniqueGrimily, -- Used in UniqSupply only!
getKey, getKeyFastInt, -- Used in Var, UniqFM, Name only! getKey, getKeyFastInt, -- Used in Var, UniqFM, Name only!
mkUnique, unpkUnique, -- Used in BinIface only mkUnique, unpkUnique, -- Used in BinIface only
incrUnique, -- Used for renumbering incrUnique, -- Used for renumbering
deriveUnique, -- Ditto deriveUnique, -- Ditto
newTagUnique, -- Used in CgCase newTagUnique, -- Used in CgCase
initTyVarUnique, initTyVarUnique,
-- ** Making built-in uniques -- ** Making built-in uniques
-- now all the built-in Uniques (and functions to make them) -- now all the built-in Uniques (and functions to make them)
-- [the Oh-So-Wonderful Haskell module system wins again...] -- [the Oh-So-Wonderful Haskell module system wins again...]
mkAlphaTyVarUnique, mkAlphaTyVarUnique,
mkPrimOpIdUnique, mkPrimOpIdUnique,
mkTupleTyConUnique, mkTupleDataConUnique, mkTupleTyConUnique, mkTupleDataConUnique,
mkPreludeMiscIdUnique, mkPreludeDataConUnique, mkPreludeMiscIdUnique, mkPreludeDataConUnique,
mkPreludeTyConUnique, mkPreludeClassUnique, mkPreludeTyConUnique, mkPreludeClassUnique,
mkPArrDataConUnique, mkPArrDataConUnique,
mkVarOccUnique, mkDataOccUnique, mkTvOccUnique, mkTcOccUnique, mkVarOccUnique, mkDataOccUnique, mkTvOccUnique, mkTcOccUnique,
mkRegSingleUnique, mkRegPairUnique, mkRegClassUnique, mkRegSubUnique, mkRegSingleUnique, mkRegPairUnique, mkRegClassUnique, mkRegSubUnique,
mkCostCentreUnique, mkCostCentreUnique,
mkBuiltinUnique, mkBuiltinUnique,
mkPseudoUniqueD, mkPseudoUniqueD,
mkPseudoUniqueE, mkPseudoUniqueE,
mkPseudoUniqueH mkPseudoUniqueH
) where ) where
#include "HsVersions.h" #include "HsVersions.h"
...@@ -79,13 +72,13 @@ import GHC.Exts (indexCharOffAddr#, Char(..)) ...@@ -79,13 +72,13 @@ import GHC.Exts (indexCharOffAddr#, Char(..))
#else #else
import Data.Array import Data.Array
#endif #endif
import Data.Char ( chr, ord ) import Data.Char ( chr, ord )
\end{code} \end{code}
%************************************************************************ %************************************************************************
%* * %* *
\subsection[Unique-type]{@Unique@ type and operations} \subsection[Unique-type]{@Unique@ type and operations}
%* * %* *
%************************************************************************ %************************************************************************
The @Chars@ are ``tag letters'' that identify the @UniqueSupply@. The @Chars@ are ``tag letters'' that identify the @UniqueSupply@.
...@@ -104,15 +97,15 @@ Now come the functions which construct uniques from their pieces, and vice versa ...@@ -104,15 +97,15 @@ Now come the functions which construct uniques from their pieces, and vice versa
The stuff about unique *supplies* is handled further down this module. The stuff about unique *supplies* is handled further down this module.
\begin{code} \begin{code}
unpkUnique :: Unique -> (Char, Int) -- The reverse unpkUnique :: Unique -> (Char, Int) -- The reverse
mkUniqueGrimily :: Int -> Unique -- A trap-door for UniqSupply mkUniqueGrimily :: Int -> Unique -- A trap-door for UniqSupply
getKey :: Unique -> Int -- for Var getKey :: Unique -> Int -- for Var
getKeyFastInt :: Unique -> FastInt -- for Var getKeyFastInt :: Unique -> FastInt -- for Var
incrUnique :: Unique -> Unique incrUnique :: Unique -> Unique
deriveUnique :: Unique -> Int -> Unique deriveUnique :: Unique -> Int -> Unique
newTagUnique :: Unique -> Char -> Unique newTagUnique :: Unique -> Char -> Unique
\end{code} \end{code}
...@@ -139,8 +132,8 @@ newTagUnique u c = mkUnique c i where (_,i) = unpkUnique u ...@@ -139,8 +132,8 @@ newTagUnique u c = mkUnique c i where (_,i) = unpkUnique u
-- and as long as the Char fits in 8 bits, which we assume anyway! -- and as long as the Char fits in 8 bits, which we assume anyway!
mkUnique :: Char -> Int -> Unique -- Builds a unique from pieces mkUnique :: Char -> Int -> Unique -- Builds a unique from pieces
-- NOT EXPORTED, so that we can see all the Chars that -- NOT EXPORTED, so that we can see all the Chars that
-- are used in this one module -- are used in this one module
mkUnique c i mkUnique c i
= MkUnique (tag `bitOrFastInt` bits) = MkUnique (tag `bitOrFastInt` bits)
...@@ -150,10 +143,10 @@ mkUnique c i ...@@ -150,10 +143,10 @@ mkUnique c i
unpkUnique (MkUnique u) unpkUnique (MkUnique u)
= let = let
-- as long as the Char may have its eighth bit set, we -- as long as the Char may have its eighth bit set, we
-- really do need the logical right-shift here! -- really do need the logical right-shift here!
tag = cBox (fastChr (u `shiftRLFastInt` _ILIT(24))) tag = cBox (fastChr (u `shiftRLFastInt` _ILIT(24)))
i = iBox (u `bitAndFastInt` _ILIT(16777215){-``0x00ffffff''-}) i = iBox (u `bitAndFastInt` _ILIT(16777215){-``0x00ffffff''-})
in in
(tag, i) (tag, i)
\end{code} \end{code}
...@@ -161,9 +154,9 @@ unpkUnique (MkUnique u) ...@@ -161,9 +154,9 @@ unpkUnique (MkUnique u)
%************************************************************************ %************************************************************************
%* * %* *
\subsection[Uniquable-class]{The @Uniquable@ class} \subsection[Uniquable-class]{The @Uniquable@ class}
%* * %* *
%************************************************************************ %************************************************************************
\begin{code} \begin{code}
...@@ -171,8 +164,8 @@ unpkUnique (MkUnique u) ...@@ -171,8 +164,8 @@ unpkUnique (MkUnique u)
class Uniquable a where class Uniquable a where
getUnique :: a -> Unique getUnique :: a -> Unique
hasKey :: Uniquable a => a -> Unique -> Bool hasKey :: Uniquable a => a -> Unique -> Bool
x `hasKey` k = getUnique x == k x `hasKey` k = getUnique x == k
instance Uniquable FastString where instance Uniquable FastString where
getUnique fs = mkUniqueGrimily (iBox (uniqueOfFS fs)) getUnique fs = mkUniqueGrimily (iBox (uniqueOfFS fs))
...@@ -183,9 +176,9 @@ instance Uniquable Int where ...@@ -183,9 +176,9 @@ instance Uniquable Int where
%************************************************************************ %************************************************************************
%* * %* *
\subsection[Unique-instances]{Instance declarations for @Unique@} \subsection[Unique-instances]{Instance declarations for @Unique@}
%* * %* *
%************************************************************************ %************************************************************************
And the whole point (besides uniqueness) is fast equality. We don't And the whole point (besides uniqueness) is fast equality. We don't
...@@ -243,9 +236,9 @@ instance Show Unique where ...@@ -243,9 +236,9 @@ instance Show Unique where
\end{code} \end{code}
%************************************************************************ %************************************************************************
%* * %* *
\subsection[Utils-base62]{Base-62 numbers} \subsection[Utils-base62]{Base-62 numbers}
%* * %* *
%************************************************************************ %************************************************************************
A character-stingy way to read/write numbers (notably Uniques). A character-stingy way to read/write numbers (notably Uniques).
...@@ -258,12 +251,12 @@ iToBase62 n_ ...@@ -258,12 +251,12 @@ iToBase62 n_
= ASSERT(n_ >= 0) go (iUnbox n_) "" = ASSERT(n_ >= 0) go (iUnbox n_) ""
where where
go n cs | n <# _ILIT(62) go n cs | n <# _ILIT(62)
= case chooseChar62 n of { c -> c `seq` (c : cs) } = case chooseChar62 n of { c -> c `seq` (c : cs) }
| otherwise | otherwise
= case (quotRem (iBox n) 62) of { (q_, r_) -> = case (quotRem (iBox n) 62) of { (q_, r_) ->
case iUnbox q_ of { q -> case iUnbox r_ of { r -> case iUnbox q_ of { q -> case iUnbox r_ of { r ->
case (chooseChar62 r) of { c -> c `seq` case (chooseChar62 r) of { c -> c `seq`
(go q (c : cs)) }}}} (go q (c : cs)) }}}}
chooseChar62 :: FastInt -> Char chooseChar62 :: FastInt -> Char
{-# INLINE chooseChar62 #-} {-# INLINE chooseChar62 #-}
...@@ -279,29 +272,29 @@ iToBase62 n_ ...@@ -279,29 +272,29 @@ iToBase62 n_
\end{code} \end{code}
%************************************************************************ %************************************************************************
%* * %* *
\subsection[Uniques-prelude]{@Uniques@ for wired-in Prelude things} \subsection[Uniques-prelude]{@Uniques@ for wired-in Prelude things}
%* * %* *
%************************************************************************ %************************************************************************
Allocation of unique supply characters: Allocation of unique supply characters:
v,t,u : for renumbering value-, type- and usage- vars. v,t,u : for renumbering value-, type- and usage- vars.
B: builtin B: builtin
C-E: pseudo uniques (used in native-code generator) C-E: pseudo uniques (used in native-code generator)
X: uniques derived by deriveUnique X: uniques derived by deriveUnique
_: unifiable tyvars (above) _: unifiable tyvars (above)
0-9: prelude things below 0-9: prelude things below
(no numbers left any more..) (no numbers left any more..)
:: (prelude) parallel array data constructors :: (prelude) parallel array data constructors
other a-z: lower case chars for unique supplies. Used so far: other a-z: lower case chars for unique supplies. Used so far:
d desugarer d desugarer
f AbsC flattener f AbsC flattener
g SimplStg g SimplStg
n Native codegen n Native codegen
r Hsc name cache r Hsc name cache
s simplifier s simplifier
\begin{code} \begin{code}
mkAlphaTyVarUnique :: Int -> Unique mkAlphaTyVarUnique :: Int -> Unique
...@@ -322,10 +315,10 @@ mkPreludeClassUnique i = mkUnique '2' i ...@@ -322,10 +315,10 @@ mkPreludeClassUnique i = mkUnique '2' i
-- The first is for the tycon itself; the latter two -- The first is for the tycon itself; the latter two
-- are for the generic to/from Ids. See TysWiredIn.mk_tc_gen_info. -- are for the generic to/from Ids. See TysWiredIn.mk_tc_gen_info.
mkPreludeTyConUnique i = mkUnique '3' (3*i) mkPreludeTyConUnique i = mkUnique '3' (3*i)
mkTupleTyConUnique BoxedTuple a = mkUnique '4' (3*a) mkTupleTyConUnique BoxedTuple a = mkUnique '4' (3*a)
mkTupleTyConUnique UnboxedTuple a = mkUnique '5' (3*a) mkTupleTyConUnique UnboxedTuple a = mkUnique '5' (3*a)
mkTupleTyConUnique ConstraintTuple a = mkUnique 'k' (3*a) mkTupleTyConUnique ConstraintTuple a = mkUnique 'k' (3*a)
-- Data constructor keys occupy *two* slots. The first is used for the -- Data constructor keys occupy *two* slots. The first is used for the
-- data constructor itself and its wrapper function (the function that -- data constructor itself and its wrapper function (the function that
...@@ -333,16 +326,16 @@ mkTupleTyConUnique ConstraintTuple a = mkUnique 'k' (3*a) ...@@ -333,16 +326,16 @@ mkTupleTyConUnique ConstraintTuple a = mkUnique 'k' (3*a)
-- used for the worker function (the function that builds the constructor -- used for the worker function (the function that builds the constructor
-- representation). -- representation).
mkPreludeDataConUnique i = mkUnique '6' (2*i) -- Must be alphabetic mkPreludeDataConUnique i = mkUnique '6' (2*i) -- Must be alphabetic
mkTupleDataConUnique BoxedTuple a = mkUnique '7' (2*a) -- ditto (*may* be used in C labels) mkTupleDataConUnique BoxedTuple a = mkUnique '7' (2*a) -- ditto (*may* be used in C labels)
mkTupleDataConUnique UnboxedTuple a = mkUnique '8' (2*a) mkTupleDataConUnique UnboxedTuple a = mkUnique '8' (2*a)
mkTupleDataConUnique ConstraintTuple a = mkUnique 'h' (2*a) mkTupleDataConUnique ConstraintTuple a = mkUnique 'h' (2*a)
mkPrimOpIdUnique op = mkUnique '9' op mkPrimOpIdUnique op = mkUnique '9' op
mkPreludeMiscIdUnique i = mkUnique '0' i mkPreludeMiscIdUnique i = mkUnique '0' i
-- No numbers left anymore, so I pick something different for the character tag -- No numbers left anymore, so I pick something different for the character tag
mkPArrDataConUnique a = mkUnique ':' (2*a) mkPArrDataConUnique a = mkUnique ':' (2*a)
-- The "tyvar uniques" print specially nicely: a, b, c, etc. -- The "tyvar uniques" print specially nicely: a, b, c, etc.
-- See pprUnique for details -- See pprUnique for details
...@@ -371,7 +364,7 @@ mkVarOccUnique, mkDataOccUnique, mkTvOccUnique, mkTcOccUnique :: FastString -> U ...@@ -371,7 +364,7 @@ mkVarOccUnique, mkDataOccUnique, mkTvOccUnique, mkTcOccUnique :: FastString -> U
-- See Note [The Unique of an OccName] in OccName -- See Note [The Unique of an OccName] in OccName
mkVarOccUnique fs = mkUnique 'i' (iBox (uniqueOfFS fs)) mkVarOccUnique fs = mkUnique 'i' (iBox (uniqueOfFS fs))
mkDataOccUnique fs = mkUnique 'd' (iBox (uniqueOfFS fs)) mkDataOccUnique fs = mkUnique 'd' (iBox (uniqueOfFS fs))
mkTvOccUnique fs = mkUnique 'v' (iBox (uniqueOfFS fs)) mkTvOccUnique fs = mkUnique 'v' (iBox (uniqueOfFS fs))
mkTcOccUnique fs = mkUnique 'c' (iBox (uniqueOfFS fs)) mkTcOccUnique fs = mkUnique 'c' (iBox (uniqueOfFS fs))
\end{code} \end{code}
{- BlockId module should probably go away completely, being superseded by Label -} {- BlockId module should probably go away completely, being superseded by Label -}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module BlockId module BlockId
( BlockId, mkBlockId -- ToDo: BlockId should be abstract, but it isn't yet ( BlockId, mkBlockId -- ToDo: BlockId should be abstract, but it isn't yet
, BlockSet, BlockEnv , BlockSet, BlockEnv
......
-- Cmm representations using Hoopl's Graph CmmNode e x. -- Cmm representations using Hoopl's Graph CmmNode e x.
{-# LANGUAGE GADTs #-} {-# LANGUAGE GADTs #-}
{-# OPTIONS_GHC -fno-warn-warnings-deprecations #-} {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-}
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
#if __GLASGOW_HASKELL__ >= 703
-- GHC 7.0.1 improved incomplete pattern warnings with GADTs
{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
#endif
module Cmm ( module Cmm (
-- * Cmm top-level datatypes -- * Cmm top-level datatypes
......
...@@ -48,11 +48,7 @@ import qualified Data.Set as Set ...@@ -48,11 +48,7 @@ import qualified Data.Set as Set
import Control.Monad import Control.Monad
foldSet :: (a -> b -> b) -> b -> Set a -> b foldSet :: (a -> b -> b) -> b -> Set a -> b
#if __GLASGOW_HASKELL__ < 704
foldSet = Set.fold
#else
foldSet = Set.foldr foldSet = Set.foldr
#endif
---------------------------------------------------------------- ----------------------------------------------------------------
-- Building InfoTables -- Building InfoTables
......
{-# LANGUAGE RecordWildCards, GADTs #-} {-# LANGUAGE RecordWildCards, GADTs #-}
#if __GLASGOW_HASKELL__ < 701
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
#endif
module CmmLayoutStack ( module CmmLayoutStack (
cmmLayoutStack, setInfoTableStackMap cmmLayoutStack, setInfoTableStackMap
) where ) where
......
...@@ -6,9 +6,6 @@ ...@@ -6,9 +6,6 @@
-- --
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
{-# LANGUAGE GADTs #-} {-# LANGUAGE GADTs #-}
#if __GLASGOW_HASKELL__ < 701
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
#endif
module CmmLint ( module CmmLint (
cmmLint, cmmLintGraph cmmLint, cmmLintGraph
) where ) where
......
...@@ -8,12 +8,6 @@ ...@@ -8,12 +8,6 @@
-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#TabsvsSpaces -- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#TabsvsSpaces
-- for details -- for details
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
#if __GLASGOW_HASKELL__ >= 703
-- GHC 7.0.1 improved incomplete pattern warnings with GADTs
{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
#endif
module CmmNode ( module CmmNode (
CmmNode(..), ForeignHint(..), CmmFormal, CmmActual, CmmNode(..), ForeignHint(..), CmmFormal, CmmActual,
UpdFrameOffset, Convention(..), ForeignConvention(..), ForeignTarget(..), UpdFrameOffset, Convention(..), ForeignConvention(..), ForeignTarget(..),
......
{-# LANGUAGE GADTs, DisambiguateRecordFields #-} {-# LANGUAGE GADTs, DisambiguateRecordFields #-}
{-# OPTIONS_GHC -fno-warn-warnings-deprecations #-} {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-}
#if __GLASGOW_HASKELL__ < 701
{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-}
#endif
module CmmProcPoint module CmmProcPoint
( ProcPointSet, Status(..)