X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FConstants.lhs;h=091a7de4dc19ee475407289ec19e3a63fc787638;hb=423d477bfecd490de1449c59325c8776f91d7aac;hp=9d6a7cc6384021ce2af7ded53f84d7caf1eb1a36;hpb=553e90d9a32ee1b1809430f260c401cc4169c6c7;p=ghc-hetmet.git diff --git a/ghc/compiler/main/Constants.lhs b/ghc/compiler/main/Constants.lhs index 9d6a7cc..091a7de 100644 --- a/ghc/compiler/main/Constants.lhs +++ b/ghc/compiler/main/Constants.lhs @@ -4,68 +4,7 @@ \section[Constants]{Info about this compilation} \begin{code} -module Constants ( - mAX_CONTEXT_REDUCTION_DEPTH, - mAX_TUPLE_SIZE, - - mAX_SPEC_THUNK_SIZE, - mAX_SPEC_FUN_SIZE, - mAX_SPEC_CONSTR_SIZE, - mAX_SPEC_SELECTEE_SIZE, - mAX_SPEC_AP_SIZE, - - mIN_UPD_SIZE, - mIN_SIZE_NonUpdHeapObject, - - sTD_HDR_SIZE, - pROF_HDR_SIZE, - gRAN_HDR_SIZE, - aRR_WORDS_HDR_SIZE, - aRR_PTRS_HDR_SIZE, - rESERVED_C_STACK_BYTES, - rESERVED_STACK_WORDS, - - sTD_ITBL_SIZE, - rET_ITBL_SIZE, - pROF_ITBL_SIZE, - gRAN_ITBL_SIZE, - tICKY_ITBL_SIZE, - - mAX_FAMILY_SIZE_FOR_VEC_RETURNS, - - uF_SIZE, - pROF_UF_SIZE, - gRAN_UF_SIZE, -- HWL - uF_RET, - uF_UPDATEE, - - mAX_Vanilla_REG, - mAX_Float_REG, - mAX_Double_REG, - mAX_Long_REG, - - mAX_Real_Vanilla_REG, - mAX_Real_Float_REG, - mAX_Real_Double_REG, - mAX_Real_Long_REG, - - mAX_INTLIKE, mIN_INTLIKE, - mAX_CHARLIKE, mIN_CHARLIKE, - - spRelToInt, - - dOUBLE_SIZE, - iNT64_SIZE, - wORD64_SIZE, - - wORD_SIZE, - wORD_SIZE_IN_BITS, - - bLOCK_SIZE, - bLOCK_SIZE_W, - - bITMAP_BITS_SHIFT, - ) where +module Constants (module Constants) where -- This magical #include brings in all the everybody-knows-these magic -- constants unfortunately, we need to be *explicit* about which one @@ -73,7 +12,7 @@ module Constants ( -- be in trouble. #include "HsVersions.h" -#include "../includes/config.h" +#include "../includes/ghcconfig.h" #include "../includes/MachRegs.h" #include "../includes/Constants.h" #include "../includes/MachDeps.h" @@ -107,47 +46,20 @@ mIN_SIZE_NonUpdHeapObject = (MIN_NONUPD_SIZE::Int) \end{code} \begin{code} -mIN_INTLIKE, mAX_INTLIKE :: Integer -- Only used to compare with (MachInt Integer) +mIN_INTLIKE, mAX_INTLIKE :: Int mIN_INTLIKE = MIN_INTLIKE mAX_INTLIKE = MAX_INTLIKE -mIN_CHARLIKE, mAX_CHARLIKE :: Int -- Only used to compare with (MachChar Int) +mIN_CHARLIKE, mAX_CHARLIKE :: Int mIN_CHARLIKE = MIN_CHARLIKE mAX_CHARLIKE = MAX_CHARLIKE \end{code} -A little function that abstracts the stack direction. Note that most -of the code generator is dependent on the stack direction anyway, so -changing this on its own spells certain doom. ToDo: remove? - -\begin{code} --- THIS IS DIRECTION SENSITIVE! - --- stack grows down, positive virtual offsets correspond to negative --- additions to the stack pointer. - -spRelToInt :: Int{-VirtualSpOffset-} -> Int{-VirtualSpOffset-} -> Int -spRelToInt sp off = sp - off -\end{code} - A section of code-generator-related MAGIC CONSTANTS. \begin{code} mAX_FAMILY_SIZE_FOR_VEC_RETURNS = (MAX_VECTORED_RTN::Int) -- pretty arbitrary -- If you change this, you may need to change runtimes/standard/Update.lhc - --- The update frame sizes -uF_SIZE = (STD_UF_SIZE::Int) - --- Same again, with profiling -pROF_UF_SIZE = (PROF_UF_SIZE::Int) - --- Same again, with gransim -gRAN_UF_SIZE = (GRAN_UF_SIZE::Int) - --- Offsets in an update frame. They don't change with profiling! -uF_RET = (UF_RET::Int) -uF_UPDATEE = (UF_UPDATEE::Int) \end{code} \begin{code} @@ -172,8 +84,6 @@ Closure header sizes. sTD_HDR_SIZE = (STD_HDR_SIZE :: Int) pROF_HDR_SIZE = (PROF_HDR_SIZE :: Int) gRAN_HDR_SIZE = (GRAN_HDR_SIZE :: Int) -aRR_WORDS_HDR_SIZE = (ARR_WORDS_HDR_SIZE :: Int) -aRR_PTRS_HDR_SIZE = (ARR_PTRS_HDR_SIZE :: Int) \end{code} Info Table sizes. @@ -189,8 +99,8 @@ tICKY_ITBL_SIZE = (TICKY_ITBL_SIZE :: Int) Size of a double in StgWords. \begin{code} -dOUBLE_SIZE = (SIZEOF_DOUBLE `quot` SIZEOF_HSWORD :: Int) -wORD64_SIZE = (8 `quot` SIZEOF_HSWORD :: Int) +dOUBLE_SIZE = SIZEOF_DOUBLE :: Int +wORD64_SIZE = 8 :: Int iNT64_SIZE = wORD64_SIZE \end{code} @@ -219,7 +129,7 @@ Size of a storage manager block (in bytes). \begin{code} bLOCK_SIZE = (BLOCK_SIZE :: Int) -bLOCK_SIZE_W = (bLOCK_SIZE `div` wORD_SIZE :: Int) +bLOCK_SIZE_W = (bLOCK_SIZE `quot` wORD_SIZE :: Int) \end{code} Number of bits to shift a bitfield left by in an info table. @@ -227,3 +137,10 @@ Number of bits to shift a bitfield left by in an info table. \begin{code} bITMAP_BITS_SHIFT = (BITMAP_BITS_SHIFT :: Int) \end{code} + +Constants derived from headers in ghc/includes, generated by the program +../includes/mkDerivedConstants.c. + +\begin{code} +#include "../includes/GHCConstants.h" +\end{code}