GHC.CmmToAsm.Config

ghc-9.0.0.20200925: The GHC API

Safe Haskell | None
Language | Haskell2010

GHC.CmmToAsm.Config

Description

Native code generator configuration

Synopsis

- data NCGConfig = NCGConfig {
  - ncgPlatform :: !Platform
  - ncgProcAlignment :: !(Maybe Int)
  - ncgDebugLevel :: !Int
  - ncgExternalDynamicRefs :: !Bool
  - ncgPIC :: !Bool
  - ncgInlineThresholdMemcpy :: !Word
  - ncgInlineThresholdMemset :: !Word
  - ncgSplitSections :: !Bool
  - ncgSpillPreallocSize :: !Int
  - ncgRegsIterative :: !Bool
  - ncgAsmLinting :: !Bool
  - ncgDoConstantFolding :: !Bool
  - ncgSseVersion :: Maybe SseVersion
  - ncgBmiVersion :: Maybe BmiVersion
  - ncgDumpRegAllocStages :: !Bool
  - ncgDumpAsmStats :: !Bool
  - ncgDumpAsmConflicts :: !Bool
  }
- ncgWordWidth :: NCGConfig -> Width
- platformWordWidth :: Platform -> Width

# Documentation

data NCGConfig Source #

Native code generator configuration

Constructors

NCGConfig |
Fields ncgPlatform :: !Platform Target platform ncgProcAlignment :: !(Maybe Int) Mandatory proc alignment ncgDebugLevel :: !Int Debug level ncgExternalDynamicRefs :: !Bool Generate code to link against dynamic libraries ncgPIC :: !Bool Enable Position-Independent Code ncgInlineThresholdMemcpy :: !Word If inlining `memcpy` produces less than this threshold (in pseudo-instruction unit), do it ncgInlineThresholdMemset :: !Word Ditto for `memset` ncgSplitSections :: !Bool Split sections ncgSpillPreallocSize :: !Int Size in bytes of the pre-allocated spill space on the C stack ncgRegsIterative :: !Bool ncgAsmLinting :: !Bool Perform ASM linting pass ncgDoConstantFolding :: !Bool Perform CMM constant folding ncgSseVersion :: Maybe SseVersion (x86) SSE instructions ncgBmiVersion :: Maybe BmiVersion (x86) BMI instructions ncgDumpRegAllocStages :: !Bool ncgDumpAsmStats :: !Bool ncgDumpAsmConflicts :: !Bool

ncgWordWidth :: NCGConfig -> Width Source #

Return Word size

platformWordWidth :: Platform -> Width Source #

Return Word size