| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
GHC.CmmToAsm.Reg.Regs
Synopsis
- newtype Regs = Regs {}
- noRegs :: Regs
- addRegMaxFmt :: Regs -> RegWithFormat -> Regs
- addRegsMaxFmt :: Regs -> [RegWithFormat] -> Regs
- mkRegsMaxFmt :: [RegWithFormat] -> Regs
- minusCoveredRegs :: Regs -> Regs -> Regs
- minusRegs :: Regs -> Regs -> Regs
- unionRegsMaxFmt :: Regs -> Regs -> Regs
- unionManyRegsMaxFmt :: [Regs] -> Regs
- intersectRegsMaxFmt :: Regs -> Regs -> Regs
- shrinkingRegs :: Regs -> Regs -> Regs
- mapRegs :: (Reg -> Reg) -> Regs -> Regs
- elemRegs :: Reg -> Regs -> Bool
- lookupReg :: Reg -> Regs -> Maybe Format
Documentation
A set of registers, with their respective formats, mostly for use in register liveness analysis. See Note [Register formats in liveness analysis] in GHC.CmmToAsm.Reg.Liveness.
Constructors
| Regs | |
Fields | |
addRegMaxFmt :: Regs -> RegWithFormat -> Regs Source #
addRegsMaxFmt :: Regs -> [RegWithFormat] -> Regs Source #
mkRegsMaxFmt :: [RegWithFormat] -> Regs Source #
minusCoveredRegs :: Regs -> Regs -> Regs Source #
Remove 2nd argument registers from the 1st argument, but only if the format in the second argument is at least as large as the format in the first argument.
minusRegs :: Regs -> Regs -> Regs Source #
Remove 2nd argument registers from the 1st argument, regardless of format.
See also minusCoveredRegs, which looks at the formats.
unionManyRegsMaxFmt :: [Regs] -> Regs Source #
shrinkingRegs :: Regs -> Regs -> Regs Source #
Computes the set of registers in both arguments whose size is smaller in the second argument than in the first.