-- optimisation opts
opt_NoMethodSharing,
opt_NoStateHack,
+ opt_SpecInlineJoinPoints,
opt_CprOff,
opt_SimplNoPreInlining,
opt_SimplExcessPrecision,
opt_UF_UseThreshold,
opt_UF_FunAppDiscount,
opt_UF_KeenessFactor,
- opt_UF_UpdateInPlace,
opt_UF_DearOp,
-- Related to linking
opt_PIC,
opt_Static,
- opt_HardwireLibPaths,
-- misc opts
opt_IgnoreDotGhci,
staticFlags = unsafePerformIO $ do
ready <- readIORef v_opt_C_ready
if (not ready)
- then panic "a static opt was looked at too early!"
+ then panic "Static flags have not been initialised!\n Please call GHC.newSession or GHC.parseStaticFlags early enough."
else readIORef v_opt_C
-- -static is the default
opt_Flatten = lookUp FSLIT("-fflatten")
-- optimisation opts
+opt_SpecInlineJoinPoints = lookUp FSLIT("-fspec-inline-join-points")
opt_NoStateHack = lookUp FSLIT("-fno-state-hack")
opt_NoMethodSharing = lookUp FSLIT("-fno-method-sharing")
opt_CprOff = lookUp FSLIT("-fcpr-off")
opt_UF_UseThreshold = lookup_def_int "-funfolding-use-threshold" (8::Int) -- Discounts can be big
opt_UF_FunAppDiscount = lookup_def_int "-funfolding-fun-discount" (6::Int) -- It's great to inline a fn
opt_UF_KeenessFactor = lookup_def_float "-funfolding-keeness-factor" (1.5::Float)
-opt_UF_UpdateInPlace = lookUp FSLIT("-funfolding-update-in-place")
opt_UF_DearOp = ( 4 :: Int)
opt_PIC = lookUp FSLIT("-fPIC")
#endif
opt_Static = lookUp FSLIT("-static")
-opt_HardwireLibPaths = lookUp FSLIT("-fhardwire-lib-paths")
opt_Unregisterised = lookUp FSLIT("-funregisterised")
-- Derived, not a real option. Determines whether we will be compiling
"fauto-sccs-on-individual-cafs",
"fscc-profiling",
"fdicts-strict",
+ "fspec-inline-join-points",
"firrefutable-tuples",
"fparallel",
"fflatten",
"fruntime-types",
"fno-pre-inlining",
"fexcess-precision",
- "funfolding-update-in-place",
"static",
"fhardwire-lib-paths",
"funregisterised",