diff options
author | Ian Lynagh <igloo@earth.li> | 2009-04-24 12:53:20 +0000 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2009-04-24 12:53:20 +0000 |
commit | 3a8892cf1086da01b9aabaf6e87c192f75b0e5d0 (patch) | |
tree | 3482b7114758f1dc19e566e6c572c5942f69a6ff /libraries/base/GHC/Base.lhs | |
parent | 534875dbe753d567b2c8cc2c1260fd99d19aaa05 (diff) | |
download | haskell-3a8892cf1086da01b9aabaf6e87c192f75b0e5d0.tar.gz |
Use a bang pattern when we where/let-bind values with unlifted types
Diffstat (limited to 'libraries/base/GHC/Base.lhs')
-rw-r--r-- | libraries/base/GHC/Base.lhs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/libraries/base/GHC/Base.lhs b/libraries/base/GHC/Base.lhs index 3d6140f6fe..4c47992cdd 100644 --- a/libraries/base/GHC/Base.lhs +++ b/libraries/base/GHC/Base.lhs @@ -753,7 +753,7 @@ x# `modInt#` y# (x# <# 0#) && (y# ># 0#) = if r# /=# 0# then r# +# y# else 0# | otherwise = r# where - r# = x# `remInt#` y# + !r# = x# `remInt#` y# \end{code} Definitions of the boxed PrimOps; these will be @@ -801,8 +801,8 @@ gcdInt (I# a) (I# b) = g a b absInt x = if x <# 0# then negateInt# x else x - absA = absInt a - absB = absInt b + !absA = absInt a + !absB = absInt b negateInt :: Int -> Int negateInt (I# x) = I# (negateInt# x) @@ -935,7 +935,7 @@ unpackCString# addr | ch `eqChar#` '\0'# = [] | otherwise = C# ch : unpack (nh +# 1#) where - ch = indexCharOffAddr# addr nh + !ch = indexCharOffAddr# addr nh unpackAppendCString# :: Addr# -> [Char] -> [Char] {-# NOINLINE unpackAppendCString# #-} @@ -947,7 +947,7 @@ unpackAppendCString# addr rest | ch `eqChar#` '\0'# = rest | otherwise = C# ch : unpack (nh +# 1#) where - ch = indexCharOffAddr# addr nh + !ch = indexCharOffAddr# addr nh unpackFoldrCString# :: Addr# -> (Char -> a -> a) -> a -> a {-# NOINLINE [0] unpackFoldrCString# #-} @@ -965,7 +965,7 @@ unpackFoldrCString# addr f z | ch `eqChar#` '\0'# = z | otherwise = C# ch `f` unpack (nh +# 1#) where - ch = indexCharOffAddr# addr nh + !ch = indexCharOffAddr# addr nh unpackCStringUtf8# :: Addr# -> [Char] unpackCStringUtf8# addr @@ -990,7 +990,7 @@ unpackCStringUtf8# addr (ord# (indexCharOffAddr# addr (nh +# 3#)) -# 0x80#))) : unpack (nh +# 4#) where - ch = indexCharOffAddr# addr nh + !ch = indexCharOffAddr# addr nh unpackNBytes# :: Addr# -> Int# -> [Char] unpackNBytes# _addr 0# = [] |