X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FConstants.lhs;h=f67e00707cb1301425c9e515ce62a77449a7bc15;hb=111cee3f1ad93816cb828e38b38521d85c3bcebb;hp=3aa4d59542e6102d78505900ba901bf417739de3;hpb=9eca3c2602653b8be80f13e0114adebc1e460177;p=ghc-hetmet.git diff --git a/ghc/compiler/main/Constants.lhs b/ghc/compiler/main/Constants.lhs index 3aa4d59..f67e007 100644 --- a/ghc/compiler/main/Constants.lhs +++ b/ghc/compiler/main/Constants.lhs @@ -5,24 +5,15 @@ \begin{code} module Constants ( - uNFOLDING_USE_THRESHOLD, - uNFOLDING_CREATION_THRESHOLD, - iNTERFACE_UNFOLD_THRESHOLD, - lIBERATE_CASE_THRESHOLD, - uNFOLDING_CHEAP_OP_COST, - uNFOLDING_DEAR_OP_COST, - uNFOLDING_NOREP_LIT_COST, - uNFOLDING_CON_DISCOUNT_WEIGHT, - uNFOLDING_KEENESS_FACTOR, - 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, - tARGET_MIN_INT, tARGET_MAX_INT, - mIN_UPD_SIZE, mIN_SIZE_NonUpdHeapObject, @@ -30,7 +21,9 @@ module Constants ( pROF_HDR_SIZE, gRAN_HDR_SIZE, tICKY_HDR_SIZE, - aRR_HDR_SIZE, + aRR_WORDS_HDR_SIZE, + aRR_PTRS_HDR_SIZE, + rESERVED_C_STACK_BYTES, sTD_ITBL_SIZE, pROF_ITBL_SIZE, @@ -41,12 +34,15 @@ module Constants ( uF_SIZE, sCC_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, @@ -92,20 +88,12 @@ mAX_TUPLE_SIZE = (37 :: Int) mAX_CONTEXT_REDUCTION_DEPTH = (20 :: Int) \end{code} -\begin{code} -uNFOLDING_USE_THRESHOLD = ( 8 :: Int) -uNFOLDING_CREATION_THRESHOLD = (30 :: Int) -- Discounts can be big -iNTERFACE_UNFOLD_THRESHOLD = (30 :: Int) -lIBERATE_CASE_THRESHOLD = (10 :: Int) - -uNFOLDING_CHEAP_OP_COST = ( 1 :: Int) -uNFOLDING_DEAR_OP_COST = ( 4 :: Int) -uNFOLDING_NOREP_LIT_COST = ( 20 :: Int) -- Strings can be pretty big -uNFOLDING_CON_DISCOUNT_WEIGHT = ( 3 :: Int) -uNFOLDING_KEENESS_FACTOR = ( 2.0 :: Float) -\end{code} \begin{code} +-- specialised fun/thunk/constr closure types +mAX_SPEC_THUNK_SIZE = (MAX_SPEC_THUNK_SIZE :: Int) +mAX_SPEC_FUN_SIZE = (MAX_SPEC_FUN_SIZE :: Int) +mAX_SPEC_CONSTR_SIZE = (MAX_SPEC_CONSTR_SIZE :: Int) -- pre-compiled thunk types mAX_SPEC_SELECTEE_SIZE = (MAX_SPEC_SELECTEE_SIZE :: Int) @@ -116,12 +104,6 @@ mIN_UPD_SIZE = (MIN_UPD_SIZE::Int) mIN_SIZE_NonUpdHeapObject = (MIN_NONUPD_SIZE::Int) \end{code} -\begin{code} -tARGET_MIN_INT, tARGET_MAX_INT :: Integer -tARGET_MIN_INT = -536870912 -tARGET_MAX_INT = 536870912 -\end{code} - Constants for semi-tagging; the tags associated with the data constructors will start at 0 and go up. @@ -161,6 +143,9 @@ uF_SIZE = (NOSCC_UF_SIZE::Int) -- Same again, with profiling sCC_UF_SIZE = (SCC_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) @@ -168,8 +153,12 @@ uF_UPDATEE = (UF_UPDATEE::Int) uF_CCS = (UF_CCS::Int) \end{code} +Seq frame sizes. + \begin{code} -sEQ_FRAME_SIZE = (SEQ_FRAME_SIZE::Int) +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} @@ -181,17 +170,22 @@ mAX_Long_REG = (MAX_LONG_REG :: Int) mAX_Real_Vanilla_REG = (MAX_REAL_VANILLA_REG :: Int) mAX_Real_Float_REG = (MAX_REAL_FLOAT_REG :: Int) mAX_Real_Double_REG = (MAX_REAL_DOUBLE_REG :: Int) +#ifdef MAX_REAL_LONG_REG mAX_Real_Long_REG = (MAX_REAL_LONG_REG :: Int) +#else +mAX_Real_Long_REG = (0::Int) +#endif \end{code} Closure header sizes. \begin{code} -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_HDR_SIZE = (ARR_HDR_SIZE :: Int) +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} Info Table sizes. @@ -215,5 +209,13 @@ The version of the interface file format we're using: \begin{code} +interfaceFileFormatVersion :: Int interfaceFileFormatVersion = HscIfaceFileVersion \end{code} + +This tells the native code generator the size of the spill +area is has available. + +\begin{code} +rESERVED_C_STACK_BYTES = (RESERVED_C_STACK_BYTES :: Int) +\end{code}