LlvmCodeGen.Regs

ghc-8.6.0.20180810: The GHC API

Safe Haskell | None
Language | Haskell2010

LlvmCodeGen.Regs

Description

Deal with Cmm registers

Synopsis

- lmGlobalRegArg :: DynFlags -> GlobalReg -> LlvmVar
- lmGlobalRegVar :: DynFlags -> GlobalReg -> LlvmVar
- alwaysLive :: [GlobalReg]
- stgTBAA :: [(Unique, LMString, Maybe Unique)]
- baseN :: Unique
- stackN :: Unique
- heapN :: Unique
- rxN :: Unique
- topN :: Unique
- tbaa :: LMString
- getTBAA :: GlobalReg -> Unique

# Documentation

lmGlobalRegArg :: DynFlags -> GlobalReg -> LlvmVar Source #

Get the LlvmVar function argument storing the real register

lmGlobalRegVar :: DynFlags -> GlobalReg -> LlvmVar Source #

Get the LlvmVar function variable storing the real register

alwaysLive :: [GlobalReg] Source #

A list of STG Registers that should always be considered alive

stgTBAA :: [(Unique, LMString, Maybe Unique)] Source #

STG Type Based Alias Analysis hierarchy

baseN :: Unique Source #

Id values The `rootN` node is the root (there can be more than one) of the TBAA hierarchy and as of LLVM 4.0 should *only* be referenced by other nodes. It should never occur in any LLVM instruction statement.

stackN :: Unique Source #

Id values The `rootN` node is the root (there can be more than one) of the TBAA hierarchy and as of LLVM 4.0 should *only* be referenced by other nodes. It should never occur in any LLVM instruction statement.

heapN :: Unique Source #

Id values The `rootN` node is the root (there can be more than one) of the TBAA hierarchy and as of LLVM 4.0 should *only* be referenced by other nodes. It should never occur in any LLVM instruction statement.

rxN :: Unique Source #

Id values The `rootN` node is the root (there can be more than one) of the TBAA hierarchy and as of LLVM 4.0 should *only* be referenced by other nodes. It should never occur in any LLVM instruction statement.

topN :: Unique Source #

Id values The `rootN` node is the root (there can be more than one) of the TBAA hierarchy and as of LLVM 4.0 should *only* be referenced by other nodes. It should never occur in any LLVM instruction statement.

tbaa :: LMString Source #

The TBAA metadata identifier

getTBAA :: GlobalReg -> Unique Source #

Get the correct TBAA metadata information for this register type