ghc-9.0.0.20201227: The GHC API
Safe HaskellNone
LanguageHaskell2010

GHC.Types.Cpr

Description

Types for the Constructed Product Result lattice. GHC.Core.Opt.CprAnal and GHC.Core.Opt.WorkWrap.Utils are its primary customers via idCprInfo.

Synopsis

Documentation

data CprResult Source #

The constructed product result lattice.

                   NoCPR
                     |
                ConCPR ConTag
                     |
                   BotCPR

Instances

Instances details
Eq CprResult # 
Instance details

Defined in GHC.Types.Cpr

Show CprResult # 
Instance details

Defined in GHC.Types.Cpr

Outputable CprResult # 
Instance details

Defined in GHC.Types.Cpr

Binary CprResult # 
Instance details

Defined in GHC.Types.Cpr

data CprType Source #

The abstract domain \(A_t\) from the original 'CPR for Haskell' paper.

Constructors

CprType 

Fields

Instances

Instances details
Eq CprType # 
Instance details

Defined in GHC.Types.Cpr

Methods

(==) :: CprType -> CprType -> Bool #

(/=) :: CprType -> CprType -> Bool #

Outputable CprType # 
Instance details

Defined in GHC.Types.Cpr

Binary CprType # 
Instance details

Defined in GHC.Types.Cpr

newtype CprSig Source #

The arity of the wrapped CprType is the arity at which it is safe to unleash. See Note [Understanding DmdType and StrictSig] in GHC.Types.Demand

Constructors

CprSig 

Fields

Instances

Instances details
Eq CprSig # 
Instance details

Defined in GHC.Types.Cpr

Methods

(==) :: CprSig -> CprSig -> Bool #

(/=) :: CprSig -> CprSig -> Bool #

Outputable CprSig #

Only print the CPR result

Instance details

Defined in GHC.Types.Cpr

Binary CprSig # 
Instance details

Defined in GHC.Types.Cpr

mkCprSigForArity :: Arity -> CprType -> CprSig Source #

Turns a CprType computed for the particular Arity into a CprSig unleashable at that arity. See Note [Understanding DmdType and StrictSig] in GHC.Types.Demand