[commit: ghc] master: Remove the Target* types from HaskellConstants (f21dabc)
Ian Lynagh
igloo at earth.li
Tue Sep 18 01:55:07 CEST 2012
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/f21dabc31b1125692d804f93ef470fe555f846ad
>---------------------------------------------------------------
commit f21dabc31b1125692d804f93ef470fe555f846ad
Author: Ian Lynagh <ian at well-typed.com>
Date: Mon Sep 17 18:06:54 2012 +0100
Remove the Target* types from HaskellConstants
>---------------------------------------------------------------
compiler/prelude/PrelRules.lhs | 20 +++++++++++++-------
includes/HaskellConstants.hs | 13 -------------
2 files changed, 13 insertions(+), 20 deletions(-)
diff --git a/compiler/prelude/PrelRules.lhs b/compiler/prelude/PrelRules.lhs
index 0d4229f..3f12365 100644
--- a/compiler/prelude/PrelRules.lhs
+++ b/compiler/prelude/PrelRules.lhs
@@ -43,15 +43,15 @@ import Name ( Name, nameOccName )
import Outputable
import FastString
import StaticFlags ( opt_SimplExcessPrecision )
-import Constants
import BasicTypes
import DynFlags
+import Platform
import Util
import Control.Monad
import Data.Bits as Bits
-import Data.Int ( Int64 )
-import Data.Word ( Word, Word64 )
+import Data.Int
+import Data.Word
\end{code}
@@ -424,12 +424,18 @@ isMaxBound _ = False
-- would yield a warning. Instead we simply squash the value into the
-- *target* Int/Word range.
intResult :: DynFlags -> Integer -> Maybe CoreExpr
-intResult dflags result
- = Just (mkIntVal dflags (toInteger (fromInteger result :: TargetInt)))
+intResult dflags result = Just (mkIntVal dflags result')
+ where result' = case platformWordSize (targetPlatform dflags) of
+ 4 -> toInteger (fromInteger result :: Int32)
+ 8 -> toInteger (fromInteger result :: Int64)
+ w -> panic ("intResult: Unknown platformWordSize: " ++ show w)
wordResult :: DynFlags -> Integer -> Maybe CoreExpr
-wordResult dflags result
- = Just (mkWordVal dflags (toInteger (fromInteger result :: TargetWord)))
+wordResult dflags result = Just (mkWordVal dflags result')
+ where result' = case platformWordSize (targetPlatform dflags) of
+ 4 -> toInteger (fromInteger result :: Word32)
+ 8 -> toInteger (fromInteger result :: Word64)
+ w -> panic ("wordResult: Unknown platformWordSize: " ++ show w)
inversePrimOp :: PrimOp -> RuleM CoreExpr
inversePrimOp primop = do
diff --git a/includes/HaskellConstants.hs b/includes/HaskellConstants.hs
index bf0e99e..5b7e3dd 100644
--- a/includes/HaskellConstants.hs
+++ b/includes/HaskellConstants.hs
@@ -1,5 +1,4 @@
-import Data.Word
import Data.Int
-- This magical #include brings in all the everybody-knows-these magic
@@ -36,18 +35,6 @@ mAX_CONTEXT_REDUCTION_DEPTH = 200
wORD64_SIZE :: Int
wORD64_SIZE = 8
--- Define a fixed-range integral type equivalent to the target Int/Word
-
-#if SIZEOF_HSWORD == 4
-type TargetInt = Int32
-type TargetWord = Word32
-#elif SIZEOF_HSWORD == 8
-type TargetInt = Int64
-type TargetWord = Word64
-#else
-#error unknown SIZEOF_HSWORD
-#endif
-
tARGET_MAX_CHAR :: Int
tARGET_MAX_CHAR = 0x10ffff
More information about the Cvs-ghc
mailing list