RegAlloc.Linear.SPARC.FreeRegs

ghc-8.4.0.20180204: The GHC API

Safe Haskell | None
Language | Haskell2010

RegAlloc.Linear.SPARC.FreeRegs

Description

Free regs map for SPARC

Synopsis

- data FreeRegs = FreeRegs !Word32 !Word32 !Word32
- noFreeRegs :: FreeRegs
- initFreeRegs :: Platform -> FreeRegs
- getFreeRegs :: RegClass -> FreeRegs -> [RealReg]
- allocateReg :: Platform -> RealReg -> FreeRegs -> FreeRegs
- releaseReg :: Platform -> RealReg -> FreeRegs -> FreeRegs
- bitMask :: Int -> Word32
- showFreeRegs :: FreeRegs -> String

# Documentation

data FreeRegs Source #

Constructors

FreeRegs !Word32 !Word32 !Word32 |

Instances

Show FreeRegs # |
Instance details Methods showsPrec :: Int -> FreeRegs -> ShowS Source # show :: FreeRegs -> String Source # showList :: [FreeRegs] -> ShowS Source #
FR FreeRegs # |
Instance details Methods frAllocateReg :: Platform -> RealReg -> FreeRegs -> FreeRegs Source # frGetFreeRegs :: Platform -> RegClass -> FreeRegs -> [RealReg] Source # frInitFreeRegs :: Platform -> FreeRegs Source # frReleaseReg :: Platform -> RealReg -> FreeRegs -> FreeRegs Source #

noFreeRegs :: FreeRegs Source #

A reg map where no regs are free to be allocated.

initFreeRegs :: Platform -> FreeRegs Source #

The initial set of free regs.

getFreeRegs :: RegClass -> FreeRegs -> [RealReg] Source #

Get all the free registers of this class.

allocateReg :: Platform -> RealReg -> FreeRegs -> FreeRegs Source #

Grab a register.

releaseReg :: Platform -> RealReg -> FreeRegs -> FreeRegs Source #

Release a register from allocation. The register liveness information says that most regs die after a C call, but we still don't want to allocate to some of them.

bitMask :: Int -> Word32 Source #

showFreeRegs :: FreeRegs -> String Source #