X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Futils%2FFastMutInt.lhs;h=26183071f15c2622b5d5cd8ad7eafd5612822535;hp=e8ea58c8db80b456fc7a88daf803018566afb472;hb=914e415702a25a6e52ab1eaaf2aea233d6c6097e;hpb=0d792bea36420e657fb293d9f90f35d8ef96cb4f diff --git a/compiler/utils/FastMutInt.lhs b/compiler/utils/FastMutInt.lhs index e8ea58c..2618307 100644 --- a/compiler/utils/FastMutInt.lhs +++ b/compiler/utils/FastMutInt.lhs @@ -1,4 +1,5 @@ \begin{code} +{-# LANGUAGE BangPatterns #-} {-# OPTIONS -cpp #-} {-# OPTIONS_GHC -O #-} -- We always optimise this, otherwise performance of a non-optimised @@ -19,13 +20,12 @@ module FastMutInt( #ifdef __GLASGOW_HASKELL__ -#include "MachDeps.h" +#include "../includes/MachDeps.h" #ifndef SIZEOF_HSINT #define SIZEOF_HSINT INT_SIZE_IN_BYTES #endif import GHC.Base -import GHC.IOBase import GHC.Ptr #else /* ! __GLASGOW_HASKELL__ */ @@ -50,7 +50,7 @@ data FastMutInt = FastMutInt (MutableByteArray# RealWorld) newFastMutInt = IO $ \s -> case newByteArray# size s of { (# s, arr #) -> (# s, FastMutInt arr #) } - where I# size = SIZEOF_HSINT + where !(I# size) = SIZEOF_HSINT readFastMutInt (FastMutInt arr) = IO $ \s -> case readIntArray# arr 0# s of { (# s, i #) -> @@ -65,7 +65,7 @@ data FastMutPtr = FastMutPtr (MutableByteArray# RealWorld) newFastMutPtr = IO $ \s -> case newByteArray# size s of { (# s, arr #) -> (# s, FastMutPtr arr #) } - where I# size = SIZEOF_VOID_P + where !(I# size) = SIZEOF_VOID_P readFastMutPtr (FastMutPtr arr) = IO $ \s -> case readAddrArray# arr 0# s of { (# s, i #) ->