X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FConstants.lhs;h=9c32fa1a3642907b779499f33b423ba153001c38;hb=a0928e35b5991b08e01cf8b26128eb54a6eb25ee;hp=f52c4838714e4826693628ae98ef8c10c75638b7;hpb=b5d665b2a708a85b8aa6b66a4edaaed0011ddec7;p=ghc-hetmet.git diff --git a/ghc/compiler/main/Constants.lhs b/ghc/compiler/main/Constants.lhs index f52c483..9c32fa1 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, @@ -34,16 +34,10 @@ module Constants ( mAX_FAMILY_SIZE_FOR_VEC_RETURNS, uF_SIZE, - sCC_UF_SIZE, + pROF_UF_SIZE, gRAN_UF_SIZE, -- HWL uF_RET, - uF_SU, uF_UPDATEE, - uF_CCS, - - sEQ_FRAME_SIZE, - sCC_SEQ_FRAME_SIZE, - gRAN_SEQ_FRAME_SIZE, -- HWL mAX_Vanilla_REG, mAX_Float_REG, @@ -69,8 +63,9 @@ module Constants ( wORD_SIZE, bLOCK_SIZE, - bLOCK_SIZE_W + bLOCK_SIZE_W, + bITMAP_BITS_SHIFT, ) where -- This magical #include brings in all the everybody-knows-these magic @@ -82,6 +77,8 @@ module Constants ( #include "../includes/config.h" #include "../includes/MachRegs.h" #include "../includes/Constants.h" +#include "../includes/MachDeps.h" +#include "../includes/DerivedConstants.h" -- import Util \end{code} @@ -89,7 +86,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} @@ -147,27 +145,17 @@ 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 = (NOSCC_UF_SIZE::Int) +uF_SIZE = (STD_UF_SIZE::Int) -- Same again, with profiling -sCC_UF_SIZE = (SCC_UF_SIZE::Int) +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_SU = (UF_SU::Int) uF_UPDATEE = (UF_UPDATEE::Int) -uF_CCS = (UF_CCS::Int) -\end{code} - -Seq frame sizes. - -\begin{code} -sEQ_FRAME_SIZE = (NOSCC_SEQ_FRAME_SIZE::Int) -sCC_SEQ_FRAME_SIZE = (SCC_SEQ_FRAME_SIZE::Int) -gRAN_SEQ_FRAME_SIZE = (GRAN_SEQ_FRAME_SIZE::Int) \end{code} \begin{code} @@ -192,7 +180,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 +188,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) @@ -209,9 +197,9 @@ tICKY_ITBL_SIZE = (TICKY_ITBL_SIZE :: Int) Size of a double in StgWords. \begin{code} -dOUBLE_SIZE = (DOUBLE_SIZE :: Int) -wORD64_SIZE = (WORD64_SIZE :: Int) -iNT64_SIZE = (INT64_SIZE :: Int) +dOUBLE_SIZE = (SIZEOF_DOUBLE `quot` SIZEOF_HSWORD :: Int) +wORD64_SIZE = (8 `quot` SIZEOF_HSWORD :: Int) +iNT64_SIZE = wORD64_SIZE \end{code} This tells the native code generator the size of the spill @@ -231,7 +219,7 @@ rESERVED_STACK_WORDS = (RESERVED_STACK_WORDS :: Int) Size of a word, in bytes \begin{code} -wORD_SIZE = (WORD_SIZE :: Int) +wORD_SIZE = (SIZEOF_HSWORD :: Int) \end{code} Size of a storage manager block (in bytes). @@ -240,3 +228,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}