HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Moduleghc-9.14.1GHC2021

GHC.Cmm.Expr

  • 11 types
  • 2 classes
  • 38 values
  • Packageghc-9.14.1
  • Exports53
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceExpr.hs

Returns an alignment in bytes of a CmmExpr when it's a statically known integer constant, otherwise returns an alignment of 1 byte. The caller is responsible for using with a sensible CmmExpr argument.

datadata CmmReg
#
Instances10Eq, Ord, Show, Outputable, DefinerOfRegs, UserOfRegs, …
datadata LocalReg
#

Constructors

Instances9Eq, Ord, Show, Outputable, Uniquable, DefinerOfRegs, …
datadata GlobalReg
#

An abstract global register for the STG machine.

See also GlobalRegUse, which denotes a usage of a register at a particular type (e.g. using a 32-bit wide register to store an 8-bit wide value), as per Note [GlobalReg vs GlobalRegUse].

Constructors

  • VanillaReg !Int
  • FloatReg !Int
  • DoubleReg !Int
  • LongReg !Int
  • XmmReg !Int
  • YmmReg !Int
  • ZmmReg !Int
  • Sp

    Stack ptr; points to last occupied stack location.

  • SpLim

    Stack limit

  • Hp

    Heap ptr; points to last occupied heap location.

  • HpLim

    Heap limit register

  • CCCS

    Current cost-centre stack

  • CurrentTSO

    pointer to current thread's TSO

  • CurrentNursery

    pointer to allocation area

  • HpAlloc

    allocation count for heap check failure

  • EagerBlackholeInfo

    address of stg_EAGER_BLACKHOLE_info

  • GCEnter1

    address of stg_gc_enter_1

  • GCFun

    address of stg_gc_fun

  • BaseReg

    Base offset for the register table, used for accessing registers which do not have real registers assigned to them. This register will only appear after we have expanded GlobalReg into memory accesses (where necessary) in the native code generator.

  • MachSp

    The register used by the platform for the C stack pointer. This is a break in the STG abstraction used exclusively to setup stack unwinding information.

  • UnwindReturnReg

    A dummy register used to indicate to the stack unwinder where a routine would return to.

  • PicBaseReg

    Base Register for PIC (position-independent code) calculations.

    Only used inside the native code generator. Its exact meaning differs from platform to platform (see module PositionIndependentCode).

Instances7Eq, Ord, Show, Outputable, DefinerOfRegs, UserOfRegs, …
datadata GlobalRegUse
#

A use of a global register at a particular type.

While a GlobalReg identifies a global register in the STG machine, a GlobalRegUse also contains information about the type we are storing in the register.

See Note [GlobalReg vs GlobalRegUse] for more information.

Constructors

Instances8Eq, Ord, Show, Outputable, DefinerOfRegs, UserOfRegs, …
classclass Ord r => DefinerOfRegs r a where
#
Instances7DefinerOfRegs, …
classclass Ord r => UserOfRegs r a where
#
Instances9UserOfRegs, …
datadata Area
#

A stack area is either the stack slot where a variable is spilled or the stack space where function arguments and results are passed.

Constructors

Instances4Eq, Ord, Show, Outputable
  • Eq AreaDefined in ghc-9.14.1 · GHC.Cmm.Expr
  • Ord AreaDefined in ghc-9.14.1 · GHC.Cmm.Expr
  • Show AreaDefined in ghc-9.14.1 · GHC.Cmm.Expr
  • Outputable AreaDefined in ghc-9.14.1 · GHC.Cmm.Expr