foxdec-0.1.0.0: Formally Verified x86-64 Decompilation
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.CFG

Synopsis

Documentation

data CFG Source #

A control flow graph with blocks and edges. A blockID (represented as an Int) is a unique identifier of a basic block. We store basic blocks twice: once as addresses, and once as instructions.

Constructors

CFG 

Fields

Instances

Instances details
Generic CFG Source # 
Instance details

Defined in Data.CFG

Associated Types

type Rep CFG :: Type -> Type #

Methods

from :: CFG -> Rep CFG x #

to :: Rep CFG x -> CFG #

Show CFG Source # 
Instance details

Defined in Data.CFG

Methods

showsPrec :: Int -> CFG -> ShowS #

show :: CFG -> String #

showList :: [CFG] -> ShowS #

Serialize CFG Source # 
Instance details

Defined in Data.CFG

Methods

put :: Putter CFG #

get :: Get CFG #

NFData CFG Source # 
Instance details

Defined in Data.CFG

Methods

rnf :: CFG -> () #

IntGraph CFG Source # 
Instance details

Defined in WithAbstractPredicates.ControlFlow

Eq CFG Source # 
Instance details

Defined in Data.CFG

Methods

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

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

type Rep CFG Source # 
Instance details

Defined in Data.CFG

is_end_node Source #

Arguments

:: CFG

The CFG

-> Int

The blockID

-> Bool 

Returns true if the given blockID is a leaf-node in the given CFG.

post :: CFG -> Int -> IntSet Source #

The set of next blocks from the given block in a CFG

fetch_block Source #

Arguments

:: CFG

The CFG

-> Int

The blockID

-> [Instruction] 

Fetching an instruction list given a block ID