Constructors
StgToCmmConfigstgToCmmProfile :: !ProfileCurrent profile
stgToCmmThisModule :: ModuleThe module being compiled. This field kept lazy for Cmm/Parser.y which preloads it with a panic
stgToCmmTmpDir :: !TempDirTemp Dir for files used in compilation
stgToCmmContext :: !SDocContextContext for StgToCmm phase
stgToCmmEmitDebugInfo :: !BoolWhether we wish to output debug information
stgToCmmBinBlobThresh :: !Maybe WordThreshold at which Binary literals (e.g. strings) are either dumped to a file and a CmmFileEmbed literal is emitted (over threshold), or become a CmmString Literal (under or at threshold). CmmFileEmbed is only supported with the NCG, thus a Just means two things: We have a threshold, and will be using the NCG. Conversely, a Nothing implies we are not using NCG and disables CmmFileEmbed. See Note [Embedding large binary blobs] in GHC.CmmToAsm.Ppr, and
cgTopBindingin GHC.StgToCmm.stgToCmmMaxInlAllocSize :: !IntMax size, in bytes, of inline array allocations.
stgToCmmDoTicky :: !BoolTicky profiling enabled (cf
-ticky)stgToCmmTickyAllocd :: !BoolTrue indicates ticky prof traces allocs of each named thing in addition to allocs _by_ that thing
stgToCmmTickyLNE :: !BoolTrue indicates ticky uses name-specific counters for join-points (let-no-escape)
stgToCmmTickyDynThunk :: !BoolTrue indicates ticky uses name-specific counters for dynamic thunks
stgToCmmTickyTag :: !BoolTrue indicates ticky will count number of avoided tag checks by tag inference.
stgToCmmLoopification :: !BoolLoopification enabled (cf
-floopification)stgToCmmAlignCheck :: !BoolInsert alignment check (cf
-falignment-sanitisation)stgToCmmOptHpc :: !Boolperform code generation for code coverage
stgToCmmFastPAPCalls :: !BoolstgToCmmSCCProfiling :: !BoolCheck if cost-centre profiling is enabled
stgToCmmEagerBlackHole :: !BoolstgToCmmOrigThunkInfo :: !BoolPush
stg_orig_thunk_infoframes during thunk update.stgToCmmInfoTableMap :: !Booltrue means generate C Stub for IPE map, See Note [Mapping Info Tables to Source Positions]
stgToCmmInfoTableMapWithFallback :: !BoolInclude info tables with fallback source locations in the info table map
stgToCmmInfoTableMapWithStack :: !BoolInclude info tables for STACK closures in the info table map
stgToCmmOmitYields :: !Booltrue means omit heap checks when no allocation is performed
stgToCmmOmitIfPragmas :: !Booltrue means don't generate interface programs (implied by -O0)
stgToCmmPIC :: !Booltrue if
-fPICstgToCmmPIE :: !Booltrue if
-fPIEstgToCmmExtDynRefs :: !Booltrue if
-fexternal-dynamic-refs, meaning generate code for linking against dynamic librariesstgToCmmDoBoundsCheck :: !Booldecides whether to check array bounds in StgToCmm.Prim or not
stgToCmmDoTagCheck :: !BoolVerify tag inference predictions.
stgToCmmAllowBigArith :: !BoolAllowed to emit larger than native size arithmetic (only LLVM and C backends)
stgToCmmAllowBigQuot :: !BoolAllowed to emit larger than native size division operations
stgToCmmAllowQuotRemInstr :: !BoolAllowed to generate QuotRem instructions
stgToCmmAllowQuotRem2 :: !BoolAllowed to generate QuotRem
stgToCmmAllowExtendedAddSubInstrs :: !BoolAllowed to generate AddWordC, SubWordC, Add2, etc.
stgToCmmAllowIntMul2Instr :: !BoolAllowed to generate IntMul2 instruction
stgToCmmAllowWordMul2Instr :: !BoolAllowed to generate WordMul2 instruction
stgToCmmAllowFMAInstr :: FMASign -> BoolAllowed to generate FMA instruction
stgToCmmTickyAP :: !BoolDisable use of precomputed standard thunks.
stgToCmmSaveFCallTargetToLocal :: !BoolSave a foreign call target to a Cmm local, see Note [Saving foreign call target to local] for details
stgToCmmVecInstrsErr :: Maybe StringError (if any) to raise when vector instructions are used, see
StgToCmm.Prim.checkVecCompatibilitystgToCmmAvx :: !Boolcheck for Advanced Vector Extensions
stgToCmmAvx2 :: !Boolcheck for Advanced Vector Extensions 2
stgToCmmAvx512f :: !Boolcheck for Advanced Vector 512-bit Extensions