X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FConstants.lhs;h=9d6a7cc6384021ce2af7ded53f84d7caf1eb1a36;hb=20e1c6cc426dcc864c7fc5710b1b5aa25453061c;hp=daa1c841c135bedf817e91d6c4da72d8415205e5;hpb=b4623557bb3c8bec7232e4e68a8be8cf28fbbda6;p=ghc-hetmet.git diff --git a/ghc/compiler/main/Constants.lhs b/ghc/compiler/main/Constants.lhs index daa1c84..9d6a7cc 100644 --- a/ghc/compiler/main/Constants.lhs +++ b/ghc/compiler/main/Constants.lhs @@ -20,13 +20,13 @@ module Constants ( sTD_HDR_SIZE, pROF_HDR_SIZE, gRAN_HDR_SIZE, - tICKY_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, @@ -37,13 +37,8 @@ module Constants ( pROF_UF_SIZE, gRAN_UF_SIZE, -- HWL uF_RET, - uF_SU, uF_UPDATEE, - sEQ_FRAME_SIZE, - pROF_SEQ_FRAME_SIZE, - gRAN_SEQ_FRAME_SIZE, -- HWL - mAX_Vanilla_REG, mAX_Float_REG, mAX_Double_REG, @@ -54,8 +49,6 @@ module Constants ( mAX_Real_Double_REG, mAX_Real_Long_REG, - oTHER_TAG, - mAX_INTLIKE, mIN_INTLIKE, mAX_CHARLIKE, mIN_CHARLIKE, @@ -66,10 +59,12 @@ module Constants ( wORD64_SIZE, wORD_SIZE, + wORD_SIZE_IN_BITS, bLOCK_SIZE, - bLOCK_SIZE_W + bLOCK_SIZE_W, + bITMAP_BITS_SHIFT, ) where -- This magical #include brings in all the everybody-knows-these magic @@ -90,7 +85,8 @@ module Constants ( All pretty arbitrary: \begin{code} -mAX_TUPLE_SIZE = (37 :: Int) +mAX_TUPLE_SIZE = (62 :: Int) -- Should really match the number + -- of decls in Data.Tuple mAX_CONTEXT_REDUCTION_DEPTH = (20 :: Int) \end{code} @@ -110,13 +106,6 @@ mIN_UPD_SIZE = (MIN_UPD_SIZE::Int) mIN_SIZE_NonUpdHeapObject = (MIN_NONUPD_SIZE::Int) \end{code} -Constants for semi-tagging; the tags associated with the data -constructors will start at 0 and go up. - -\begin{code} -oTHER_TAG = (INFO_OTHER_TAG :: Integer) -- (-1) unevaluated, probably -\end{code} - \begin{code} mIN_INTLIKE, mAX_INTLIKE :: Integer -- Only used to compare with (MachInt Integer) mIN_INTLIKE = MIN_INTLIKE @@ -158,18 +147,9 @@ gRAN_UF_SIZE = (GRAN_UF_SIZE::Int) -- Offsets in an update frame. They don't change with profiling! uF_RET = (UF_RET::Int) -uF_SU = (UF_SU::Int) uF_UPDATEE = (UF_UPDATEE::Int) \end{code} -Seq frame sizes. - -\begin{code} -sEQ_FRAME_SIZE = (STD_SEQ_FRAME_SIZE::Int) -pROF_SEQ_FRAME_SIZE = (PROF_SEQ_FRAME_SIZE::Int) -gRAN_SEQ_FRAME_SIZE = (GRAN_SEQ_FRAME_SIZE::Int) -\end{code} - \begin{code} mAX_Vanilla_REG = (MAX_VANILLA_REG :: Int) mAX_Float_REG = (MAX_FLOAT_REG :: Int) @@ -192,7 +172,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) -tICKY_HDR_SIZE = (TICKY_HDR_SIZE :: Int) aRR_WORDS_HDR_SIZE = (ARR_WORDS_HDR_SIZE :: Int) aRR_PTRS_HDR_SIZE = (ARR_PTRS_HDR_SIZE :: Int) \end{code} @@ -201,6 +180,7 @@ Info Table sizes. \begin{code} sTD_ITBL_SIZE = (STD_ITBL_SIZE :: Int) +rET_ITBL_SIZE = (RET_ITBL_SIZE :: Int) pROF_ITBL_SIZE = (PROF_ITBL_SIZE :: Int) gRAN_ITBL_SIZE = (GRAN_ITBL_SIZE :: Int) tICKY_ITBL_SIZE = (TICKY_ITBL_SIZE :: Int) @@ -232,6 +212,7 @@ Size of a word, in bytes \begin{code} wORD_SIZE = (SIZEOF_HSWORD :: Int) +wORD_SIZE_IN_BITS = wORD_SIZE * 8 :: Int \end{code} Size of a storage manager block (in bytes). @@ -240,3 +221,9 @@ Size of a storage manager block (in bytes). bLOCK_SIZE = (BLOCK_SIZE :: Int) bLOCK_SIZE_W = (bLOCK_SIZE `div` wORD_SIZE :: Int) \end{code} + +Number of bits to shift a bitfield left by in an info table. + +\begin{code} +bITMAP_BITS_SHIFT = (BITMAP_BITS_SHIFT :: Int) +\end{code}