decaf-0.1.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

SSA

Documentation

data Locality Source #

Constructors

Global 
Local 

data Var Source #

Constructors

Var 

Fields

Instances

Instances details
Generic Var Source # 
Instance details

Defined in SSA

Associated Types

type Rep Var :: Type -> Type #

Methods

from :: Var -> Rep Var x #

to :: Rep Var x -> Var #

Show Var Source # 
Instance details

Defined in SSA

Methods

showsPrec :: Int -> Var -> ShowS #

show :: Var -> String #

showList :: [Var] -> ShowS #

type Rep Var Source # 
Instance details

Defined in SSA

type VarList = [Var] Source #

data VarOrImm Source #

Instances

Instances details
Show VarOrImm Source # 
Instance details

Defined in SSA

data SSA Source #

Constructors

Assignment 

Fields

MethodCall 

Fields

Return 

Fields

Alloca 

Fields

Load 

Fields

Store 

Fields

Arith 

Fields

Rel 

Fields

Cond 

Fields

Eq 

Fields

Neg 

Fields

Not 

Fields

Phi 

Fields

AllocaStr 

Fields

BrUncon 

Fields

BrCon 

Fields

Instances

Instances details
Generic SSA Source # 
Instance details

Defined in SSA

Associated Types

type Rep SSA :: Type -> Type #

Methods

from :: SSA -> Rep SSA x #

to :: Rep SSA x -> SSA #

Show SSA Source # 
Instance details

Defined in SSA

Methods

showsPrec :: Int -> SSA -> ShowS #

show :: SSA -> String #

showList :: [SSA] -> ShowS #

type Rep SSA Source # 
Instance details

Defined in SSA

type Rep SSA = D1 ('MetaData "SSA" "SSA" "decaf-0.1.0.0-GF5ZfPyXbr16gB58O7mLnT" 'False) ((((C1 ('MetaCons "Assignment" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: S1 ('MetaSel ('Just "src") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm)) :+: C1 ('MetaCons "MethodCall" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: (S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Name) :*: S1 ('MetaSel ('Just "arguments") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Var])))) :+: (C1 ('MetaCons "Return" 'PrefixI 'True) (S1 ('MetaSel ('Just "ret") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe VarOrImm))) :+: C1 ('MetaCons "Alloca" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: (S1 ('MetaSel ('Just "tpe") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type) :*: S1 ('MetaSel ('Just "sz") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int64)))))) :+: ((C1 ('MetaCons "Load" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: S1 ('MetaSel ('Just "ptr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm)) :+: C1 ('MetaCons "Store" 'PrefixI 'True) (S1 ('MetaSel ('Just "ptr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm) :*: S1 ('MetaSel ('Just "src") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm))) :+: (C1 ('MetaCons "Arith" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: S1 ('MetaSel ('Just "arithOp") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ArithOp)) :*: (S1 ('MetaSel ('Just "opl") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm) :*: S1 ('MetaSel ('Just "opr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm))) :+: C1 ('MetaCons "Rel" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: S1 ('MetaSel ('Just "relOp") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 RelOp)) :*: (S1 ('MetaSel ('Just "opl") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm) :*: S1 ('MetaSel ('Just "opr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm)))))) :+: (((C1 ('MetaCons "Cond" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: S1 ('MetaSel ('Just "condOp") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CondOp)) :*: (S1 ('MetaSel ('Just "opl") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm) :*: S1 ('MetaSel ('Just "opr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm))) :+: C1 ('MetaCons "Eq" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: S1 ('MetaSel ('Just "eqOp") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 EqOp)) :*: (S1 ('MetaSel ('Just "opl") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm) :*: S1 ('MetaSel ('Just "opr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm)))) :+: (C1 ('MetaCons "Neg" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: (S1 ('MetaSel ('Just "negOp") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NegOp) :*: S1 ('MetaSel ('Just "oprand") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm))) :+: C1 ('MetaCons "Not" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: (S1 ('MetaSel ('Just "notOp") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NotOp) :*: S1 ('MetaSel ('Just "oprand") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm))))) :+: ((C1 ('MetaCons "Phi" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: S1 ('MetaSel ('Just "predecessors") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Var, BBID)])) :+: C1 ('MetaCons "AllocaStr" 'PrefixI 'True) (S1 ('MetaSel ('Just "dst") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Var) :*: (S1 ('MetaSel ('Just "content") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "tpe") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Type)))) :+: (C1 ('MetaCons "BrUncon" 'PrefixI 'True) (S1 ('MetaSel ('Just "target") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Label)) :+: C1 ('MetaCons "BrCon" 'PrefixI 'True) (S1 ('MetaSel ('Just "pred") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VarOrImm) :*: (S1 ('MetaSel ('Just "targetT") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Label) :*: S1 ('MetaSel ('Just "targetF") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Label)))))))