*** This SHOULD BE the only module that is CPP'd with "stgdefs.h" stuff.
\begin{code}
-#include "HsVersions.h"
-
module Constants (
uNFOLDING_USE_THRESHOLD,
uNFOLDING_CREATION_THRESHOLD,
--- uNFOLDING_OVERRIDE_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_SPEC_ALL_PTRS,
mAX_SPEC_ALL_NONPTRS,
mAX_Float_REG,
mAX_Double_REG,
- mIN_BIG_TUPLE_SIZE,
-
mIN_MP_INT_SIZE,
mP_STRUCT_SIZE,
-- we want; if we just hope a -I... will get the right one, we could
-- be in trouble.
+#include "HsVersions.h"
#include "../../includes/GhcConstants.h"
-CHK_Ubiq() -- debugging consistency check
-
import Util
\end{code}
All pretty arbitrary:
\begin{code}
-uNFOLDING_USE_THRESHOLD = ( 8 :: Int)
-uNFOLDING_CREATION_THRESHOLD = (30 :: Int)
+uNFOLDING_USE_THRESHOLD = ( 3 :: Int)
+uNFOLDING_CREATION_THRESHOLD = (30 :: Int) -- Discounts can be big
iNTERFACE_UNFOLD_THRESHOLD = (30 :: Int)
lIBERATE_CASE_THRESHOLD = (10 :: Int)
--- uNFOLDING_OVERRIDE_THRESHOLD = ( 8 :: 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 = ( 1 :: Int)
+uNFOLDING_KEENESS_FACTOR = ( 2.0 :: Float)
\end{code}
\begin{code}
mIN_SIZE_NonUpdStaticHeapObject = (0::Int)
\end{code}
-A completely random number:
-\begin{code}
-mIN_BIG_TUPLE_SIZE = (16::Int)
-\end{code}
-
Sizes of gmp objects:
\begin{code}
mIN_MP_INT_SIZE = (MIN_MP_INT_SIZE :: Int)