[project @ 2004-05-25 09:27:16 by simonmar]
authorsimonmar <unknown>
Tue, 25 May 2004 09:27:16 +0000 (09:27 +0000)
committersimonmar <unknown>
Tue, 25 May 2004 09:27:16 +0000 (09:27 +0000)
Small performance hack in maxBound::Word.

GHC/Word.hs

index 5a13fd0..b703782 100644 (file)
@@ -132,12 +132,15 @@ instance Integral Word where
 
 instance Bounded Word where
     minBound = 0
+
+    -- use unboxed literals for maxBound, because GHC doesn't optimise
+    -- (fromInteger 0xffffffff :: Word).
 #if WORD_SIZE_IN_BITS == 31
-    maxBound = 0x7FFFFFFF
+    maxBound = W# (int2Word# 0x7FFFFFFF#)
 #elif WORD_SIZE_IN_BITS == 32
-    maxBound = 0xFFFFFFFF
+    maxBound = W# (int2Word# 0xFFFFFFFF#)
 #else
-    maxBound = 0xFFFFFFFFFFFFFFFF
+    maxBound = W# (int2Word# 0xFFFFFFFFFFFFFFFF#)
 #endif
 
 instance Ix Word where