miasm
Reverse engineering framework
data_flow Namespace Reference

Classes

class  Arch
 
class  IRATest
 
class  Regs
 

Functions

def gen_irblock (label, exprs_list)
 

Variables

 loc_db = LocationDB()
 
 a = ExprId("a", 32)
 
 b = ExprId("b", 32)
 
 c = ExprId("c", 32)
 
 d = ExprId("d", 32)
 
 r = ExprId("r", 32)
 
 a_init = ExprId("a_init", 32)
 
 b_init = ExprId("b_init", 32)
 
 c_init = ExprId("c_init", 32)
 
 d_init = ExprId("d_init", 32)
 
 r_init = ExprId("r_init", 32)
 
 pc = ExprId("pc", 32)
 
 sp = ExprId("sp", 32)
 
 CST1 = ExprInt(0x11, 32)
 
 CST2 = ExprInt(0x12, 32)
 
 CST3 = ExprInt(0x13, 32)
 
 LBL0 = loc_db.add_location("lbl0", 0)
 
 LBL1 = loc_db.add_location("lbl1", 1)
 
 LBL2 = loc_db.add_location("lbl2", 2)
 
 LBL3 = loc_db.add_location("lbl3", 3)
 
 LBL4 = loc_db.add_location("lbl4", 4)
 
 LBL5 = loc_db.add_location("lbl5", 5)
 
 LBL6 = loc_db.add_location("lbl6", 6)
 
 IRDst = ExprId('IRDst', 32)
 
 dummy = ExprId('dummy', 32)
 
 IRA = IRATest(loc_db)
 
 deadrm = DeadRemoval(IRA)
 
 G1_IRA = IRA.new_ircfg()
 
def G1_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST2)]])
 
def G1_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, b)]])
 
def G1_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])
 
 G1_EXP_IRA = IRA.new_ircfg()
 
def G1_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(b, CST2)]])
 
def G1_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, b)]])
 
def G1_EXP_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])
 
 G2_IRA = IRA.new_ircfg()
 
def G2_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(r, CST1)]])
 
def G2_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])
 
def G2_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, r)]])
 
 G2_EXP_IRA = IRA.new_ircfg()
 
def G2_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(r, CST1)]])
 
def G2_EXP_IRB1 = gen_irblock(LBL1, [[]])
 
def G2_EXP_IRB2 = gen_irblock(LBL2, [[]])
 
 G3_IRA = IRA.new_ircfg()
 
def G3_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])
 
def G3_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])
 
def G3_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])
 
 G3_EXP_IRA = IRA.new_ircfg()
 
def G3_EXP_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])
 
def G3_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])
 
def G3_EXP_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])
 
 G4_IRA = IRA.new_ircfg()
 
def G4_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])
 
def G4_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])
 
def G4_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)]])
 
def G4_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, CST3)], [ExprAssign(r, a)]])
 
 G4_EXP_IRA = IRA.new_ircfg()
 
def G4_EXP_IRB0 = gen_irblock(LBL0, [[]])
 
def G4_EXP_IRB1 = gen_irblock(LBL1, [[]])
 
def G4_EXP_IRB2 = gen_irblock(LBL2, [[]])
 
def G4_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, CST3)], [ExprAssign(r, a)]])
 
 G5_IRA = IRA.new_ircfg()
 
def G5_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])
 
def G5_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])
 
def G5_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)]])
 
def G5_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, a+CST3)]])
 
def G5_IRB4 = gen_irblock(LBL4, [[ExprAssign(a, a+CST1)]])
 
def G5_IRB5 = gen_irblock(LBL5, [[ExprAssign(a, r)]])
 
 G5_EXP_IRA = IRA.new_ircfg()
 
def G5_EXP_IRB0 = gen_irblock(LBL0, [[]])
 
def G5_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])
 
def G5_EXP_IRB2 = gen_irblock(LBL2, [[]])
 
def G5_EXP_IRB3 = gen_irblock(LBL3, [[]])
 
def G5_EXP_IRB4 = gen_irblock(LBL4, [[]])
 
def G5_EXP_IRB5 = gen_irblock(LBL5, [[]])
 
 G6_IRA = IRA.new_ircfg()
 
def G6_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])
 
def G6_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])
 
def G6_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, b)]])
 
def G6_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST2)]])
 
 G6_EXP_IRA = IRA.new_ircfg()
 
def G6_EXP_IRB0 = gen_irblock(LBL0, [[]])
 
def G6_EXP_IRB1 = gen_irblock(LBL1, [[]])
 
def G6_EXP_IRB2 = gen_irblock(LBL2, [[]])
 
def G6_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST2)]])
 
 G7_IRA = IRA.new_ircfg()
 
def G7_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(r, CST1)]])
 
def G7_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])
 
def G7_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)]])
 
def G7_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, r)]])
 
 G7_EXP_IRA = IRA.new_ircfg()
 
def G7_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(r, CST1)]])
 
def G7_EXP_IRB1 = gen_irblock(LBL1, [[]])
 
def G7_EXP_IRB2 = gen_irblock(LBL2, [[]])
 
def G7_EXP_IRB3 = gen_irblock(LBL3, [[]])
 
 G8_IRA = IRA.new_ircfg()
 
def G8_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST1)]])
 
def G8_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])
 
def G8_IRB2 = gen_irblock(LBL2, [[ExprAssign(b, b+CST2)]])
 
def G8_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, b)]])
 
 G8_EXP_IRA = IRA.new_ircfg()
 
def G8_EXP_IRB0 = gen_irblock(LBL0, [[], []])
 
def G8_EXP_IRB1 = gen_irblock(LBL1, [[]])
 
def G8_EXP_IRB2 = gen_irblock(LBL2, [[]])
 
def G8_EXP_IRB3 = gen_irblock(LBL3, [[]])
 
 G9_IRA = IRA.new_ircfg()
 
def G9_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST1)]])
 
def G9_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)], [ExprAssign(b, b+CST1)]])
 
def G9_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)], [ExprAssign(b, b+CST2)]])
 
def G9_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, b)]])
 
def G9_IRB4 = gen_irblock(LBL4, [[ExprAssign(r, a)], [ExprAssign(r, b)]])
 
 G9_EXP_IRA = IRA.new_ircfg()
 
def G9_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(b, CST1)]])
 
def G9_EXP_IRB1 = gen_irblock(LBL1, [[], [ExprAssign(b, b+CST1)]])
 
def G9_EXP_IRB2 = gen_irblock(LBL2, [[], [ExprAssign(b, b+CST2)]])
 
def G9_EXP_IRB3 = gen_irblock(LBL3, [[]])
 
def G9_EXP_IRB4 = gen_irblock(LBL4, [[], [ExprAssign(r, b)]])
 
 G10_IRA = IRA.new_ircfg()
 
def G10_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])
 
def G10_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])
 
def G10_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, b)]])
 
def G10_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST1)]])
 
 G10_EXP_IRA = IRA.new_ircfg()
 
def G10_EXP_IRB0 = gen_irblock(LBL0, [[]])
 
def G10_EXP_IRB1 = gen_irblock(LBL1, [[]])
 
def G10_EXP_IRB2 = gen_irblock(LBL2, [[]])
 
def G10_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST1)]])
 
 G11_IRA = IRA.new_ircfg()
 
def G11_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, b)]])
 
def G11_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])
 
def G11_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])
 
def G11_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, a+CST1)]])
 
def G11_IRB4 = gen_irblock(LBL4, [[ExprAssign(b, b+CST1)]])
 
 G11_EXP_IRA = IRA.new_ircfg()
 
def G11_EXP_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, b)]])
 
def G11_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])
 
def G11_EXP_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])
 
 G12_IRA = IRA.new_ircfg()
 
def G12_IRB0 = gen_irblock(LBL0, [[ExprAssign(r, CST1)], [ExprAssign(a, CST2)]])
 
def G12_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])
 
def G12_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)], [ExprAssign(b, CST3)]])
 
def G12_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST3)]])
 
def G12_IRB4 = gen_irblock(LBL4, [[ExprAssign(r, CST2)]])
 
def G12_IRB5 = gen_irblock(LBL5, [[ExprAssign(r, b)]])
 
 G12_EXP_IRA = IRA.new_ircfg()
 
def G12_EXP_IRB0 = gen_irblock(LBL0, [[], []])
 
def G12_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])
 
def G12_EXP_IRB2 = gen_irblock(LBL2, [[], [ExprAssign(b, CST3)]])
 
def G12_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST3)]])
 
def G12_EXP_IRB4 = gen_irblock(LBL4, [[]])
 
def G12_EXP_IRB5 = gen_irblock(LBL5, [[ExprAssign(r, b)]])
 
 G13_IRA = IRA.new_ircfg()
 
def G13_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST2)]])
 
def G13_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, b)]])
 
def G13_IRB2
 
def G13_IRB3 = gen_irblock(LBL3, [[]])
 
def G13_IRB4 = gen_irblock(LBL4, [[ExprAssign(b, CST2)]])
 
 G13_EXP_IRA = IRA.new_ircfg()
 
def G13_EXP_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST2)]])
 
def G13_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, b)]])
 
def G13_EXP_IRB2
 
def G13_EXP_IRB3 = gen_irblock(LBL3, [[]])
 
def G13_EXP_IRB4 = gen_irblock(LBL4, [[ExprAssign(b, CST2)]])
 
 G14_IRA = IRA.new_ircfg()
 
def G14_IRB0
 
def G14_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+c)]])
 
 G14_EXP_IRA = IRA.new_ircfg()
 
def G14_EXP_IRB0
 
def G14_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+c)]])
 
 G15_IRA = IRA.new_ircfg()
 
def G15_IRB0
 
def G15_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a)]])
 
 G15_EXP_IRA = IRA.new_ircfg()
 
def G15_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(a, CST1)]])
 
def G15_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a)]])
 
 G16_IRA = IRA.new_ircfg()
 
def G16_IRB0
 
def G16_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+b)], [ExprAssign(r, c+r)]])
 
def G16_IRB2 = gen_irblock(LBL2, [[]])
 
 G16_EXP_IRA = IRA.new_ircfg()
 
def G16_EXP_IRB0
 
def G16_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+b)], [ExprAssign(r, c+r)]])
 
 G17_IRA = IRA.new_ircfg()
 
def G17_IRB0
 
 G17_EXP_IRA = IRA.new_ircfg()
 
def G17_EXP_IRB0
 
 g_ira
 
 g_exp_ira
 
 reaching_defs = ReachingDefinitions(g_ira)
 
 defuse = DiGraphDefUse(reaching_defs, deref_mem=True)
 
 exp_irb = g_exp_ira.blocks[lbl]
 

Detailed Description

 Test cases for dead code elimination

Function Documentation

◆ gen_irblock()

def data_flow.gen_irblock (   label,
  exprs_list 
)

Variable Documentation

◆ a

data_flow.a = ExprId("a", 32)

◆ a_init

data_flow.a_init = ExprId("a_init", 32)

◆ b

data_flow.b = ExprId("b", 32)

◆ b_init

data_flow.b_init = ExprId("b_init", 32)

◆ c

data_flow.c = ExprId("c", 32)

◆ c_init

data_flow.c_init = ExprId("c_init", 32)

◆ CST1

data_flow.CST1 = ExprInt(0x11, 32)

◆ CST2

data_flow.CST2 = ExprInt(0x12, 32)

◆ CST3

data_flow.CST3 = ExprInt(0x13, 32)

◆ d

data_flow.d = ExprId("d", 32)

◆ d_init

data_flow.d_init = ExprId("d_init", 32)

◆ deadrm

data_flow.deadrm = DeadRemoval(IRA)

◆ defuse

data_flow.defuse = DiGraphDefUse(reaching_defs, deref_mem=True)

◆ dummy

data_flow.dummy = ExprId('dummy', 32)

◆ exp_irb

data_flow.exp_irb = g_exp_ira.blocks[lbl]

◆ G10_EXP_IRA

data_flow.G10_EXP_IRA = IRA.new_ircfg()

◆ G10_EXP_IRB0

def data_flow.G10_EXP_IRB0 = gen_irblock(LBL0, [[]])

◆ G10_EXP_IRB1

def data_flow.G10_EXP_IRB1 = gen_irblock(LBL1, [[]])

◆ G10_EXP_IRB2

def data_flow.G10_EXP_IRB2 = gen_irblock(LBL2, [[]])

◆ G10_EXP_IRB3

def data_flow.G10_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST1)]])

◆ G10_IRA

data_flow.G10_IRA = IRA.new_ircfg()

◆ G10_IRB0

def data_flow.G10_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])

◆ G10_IRB1

def data_flow.G10_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])

◆ G10_IRB2

def data_flow.G10_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, b)]])

◆ G10_IRB3

def data_flow.G10_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST1)]])

◆ G11_EXP_IRA

data_flow.G11_EXP_IRA = IRA.new_ircfg()

◆ G11_EXP_IRB0

def data_flow.G11_EXP_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, b)]])

◆ G11_EXP_IRB1

def data_flow.G11_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])

◆ G11_EXP_IRB2

def data_flow.G11_EXP_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])

◆ G11_IRA

data_flow.G11_IRA = IRA.new_ircfg()

◆ G11_IRB0

def data_flow.G11_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, b)]])

◆ G11_IRB1

def data_flow.G11_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])

◆ G11_IRB2

def data_flow.G11_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])

◆ G11_IRB3

def data_flow.G11_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, a+CST1)]])

◆ G11_IRB4

def data_flow.G11_IRB4 = gen_irblock(LBL4, [[ExprAssign(b, b+CST1)]])

◆ G12_EXP_IRA

data_flow.G12_EXP_IRA = IRA.new_ircfg()

◆ G12_EXP_IRB0

def data_flow.G12_EXP_IRB0 = gen_irblock(LBL0, [[], []])

◆ G12_EXP_IRB1

def data_flow.G12_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])

◆ G12_EXP_IRB2

def data_flow.G12_EXP_IRB2 = gen_irblock(LBL2, [[], [ExprAssign(b, CST3)]])

◆ G12_EXP_IRB3

def data_flow.G12_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST3)]])

◆ G12_EXP_IRB4

def data_flow.G12_EXP_IRB4 = gen_irblock(LBL4, [[]])

◆ G12_EXP_IRB5

def data_flow.G12_EXP_IRB5 = gen_irblock(LBL5, [[ExprAssign(r, b)]])

◆ G12_IRA

data_flow.G12_IRA = IRA.new_ircfg()

◆ G12_IRB0

def data_flow.G12_IRB0 = gen_irblock(LBL0, [[ExprAssign(r, CST1)], [ExprAssign(a, CST2)]])

◆ G12_IRB1

def data_flow.G12_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])

◆ G12_IRB2

def data_flow.G12_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)], [ExprAssign(b, CST3)]])

◆ G12_IRB3

def data_flow.G12_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST3)]])

◆ G12_IRB4

def data_flow.G12_IRB4 = gen_irblock(LBL4, [[ExprAssign(r, CST2)]])

◆ G12_IRB5

def data_flow.G12_IRB5 = gen_irblock(LBL5, [[ExprAssign(r, b)]])

◆ G13_EXP_IRA

data_flow.G13_EXP_IRA = IRA.new_ircfg()

◆ G13_EXP_IRB0

def data_flow.G13_EXP_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST2)]])

◆ G13_EXP_IRB1

def data_flow.G13_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, b)]])

◆ G13_EXP_IRB2

def data_flow.G13_EXP_IRB2
Initial value:
1 = gen_irblock(LBL2, [[ExprAssign(d, CST2)], [ExprAssign(a, b+CST1),
2  ExprAssign(c, a+b)]])

◆ G13_EXP_IRB3

def data_flow.G13_EXP_IRB3 = gen_irblock(LBL3, [[]])

◆ G13_EXP_IRB4

def data_flow.G13_EXP_IRB4 = gen_irblock(LBL4, [[ExprAssign(b, CST2)]])

◆ G13_IRA

data_flow.G13_IRA = IRA.new_ircfg()

◆ G13_IRB0

def data_flow.G13_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST2)]])

◆ G13_IRB1

def data_flow.G13_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, b)]])

◆ G13_IRB2

def data_flow.G13_IRB2
Initial value:
1 = gen_irblock(LBL2, [[ExprAssign(d, CST2)], [ExprAssign(a, b+CST1),
2  ExprAssign(c, a+b)]])

◆ G13_IRB3

def data_flow.G13_IRB3 = gen_irblock(LBL3, [[]])

◆ G13_IRB4

def data_flow.G13_IRB4 = gen_irblock(LBL4, [[ExprAssign(b, CST2)]])

◆ G14_EXP_IRA

data_flow.G14_EXP_IRA = IRA.new_ircfg()

◆ G14_EXP_IRB0

def data_flow.G14_EXP_IRB0
Initial value:
1 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(c, a)],
2  [ExprAssign(a, CST2)]])

◆ G14_EXP_IRB1

def data_flow.G14_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+c)]])

◆ G14_IRA

data_flow.G14_IRA = IRA.new_ircfg()

◆ G14_IRB0

def data_flow.G14_IRB0
Initial value:
1 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(c, a)],
2  [ExprAssign(a, CST2)]])

◆ G14_IRB1

def data_flow.G14_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+c)]])

◆ G15_EXP_IRA

data_flow.G15_EXP_IRA = IRA.new_ircfg()

◆ G15_EXP_IRB0

def data_flow.G15_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(a, CST1)]])

◆ G15_EXP_IRB1

def data_flow.G15_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a)]])

◆ G15_IRA

data_flow.G15_IRA = IRA.new_ircfg()

◆ G15_IRB0

def data_flow.G15_IRB0
Initial value:
1 = gen_irblock(LBL0, [[ExprAssign(a, CST2)], [ExprAssign(a, CST1),
2  ExprAssign(b, a+CST2),
3  ExprAssign(c, CST1)]])

◆ G15_IRB1

def data_flow.G15_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a)]])

◆ G16_EXP_IRA

data_flow.G16_EXP_IRA = IRA.new_ircfg()

◆ G16_EXP_IRB0

def data_flow.G16_EXP_IRB0
Initial value:
1 = gen_irblock(LBL0, [[ExprAssign(c, CST3)], [ExprAssign(a, c + CST1),
2  ExprAssign(b, c + CST2)]])

◆ G16_EXP_IRB1

def data_flow.G16_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+b)], [ExprAssign(r, c+r)]])

◆ G16_IRA

data_flow.G16_IRA = IRA.new_ircfg()

◆ G16_IRB0

def data_flow.G16_IRB0
Initial value:
1 = gen_irblock(LBL0, [[ExprAssign(a, CST1), ExprAssign(b, CST2),
2  ExprAssign(c, CST3)], [ExprAssign(a, c+CST1),
3  ExprAssign(b, c+CST2)]])

◆ G16_IRB1

def data_flow.G16_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, a+b)], [ExprAssign(r, c+r)]])

◆ G16_IRB2

def data_flow.G16_IRB2 = gen_irblock(LBL2, [[]])

◆ G17_EXP_IRA

data_flow.G17_EXP_IRA = IRA.new_ircfg()

◆ G17_EXP_IRB0

def data_flow.G17_EXP_IRB0

◆ G17_IRA

data_flow.G17_IRA = IRA.new_ircfg()

◆ G17_IRB0

def data_flow.G17_IRB0

◆ G1_EXP_IRA

data_flow.G1_EXP_IRA = IRA.new_ircfg()

◆ G1_EXP_IRB0

def data_flow.G1_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(b, CST2)]])

◆ G1_EXP_IRB1

def data_flow.G1_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, b)]])

◆ G1_EXP_IRB2

def data_flow.G1_EXP_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])

◆ G1_IRA

data_flow.G1_IRA = IRA.new_ircfg()

◆ G1_IRB0

def data_flow.G1_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST2)]])

◆ G1_IRB1

def data_flow.G1_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, b)]])

◆ G1_IRB2

def data_flow.G1_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])

◆ G2_EXP_IRA

data_flow.G2_EXP_IRA = IRA.new_ircfg()

◆ G2_EXP_IRB0

def data_flow.G2_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(r, CST1)]])

◆ G2_EXP_IRB1

def data_flow.G2_EXP_IRB1 = gen_irblock(LBL1, [[]])

◆ G2_EXP_IRB2

def data_flow.G2_EXP_IRB2 = gen_irblock(LBL2, [[]])

◆ G2_IRA

data_flow.G2_IRA = IRA.new_ircfg()

◆ G2_IRB0

def data_flow.G2_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(r, CST1)]])

◆ G2_IRB1

def data_flow.G2_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])

◆ G2_IRB2

def data_flow.G2_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, r)]])

◆ G3_EXP_IRA

data_flow.G3_EXP_IRA = IRA.new_ircfg()

◆ G3_EXP_IRB0

def data_flow.G3_EXP_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])

◆ G3_EXP_IRB1

def data_flow.G3_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])

◆ G3_EXP_IRB2

def data_flow.G3_EXP_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])

◆ G3_IRA

data_flow.G3_IRA = IRA.new_ircfg()

◆ G3_IRB0

def data_flow.G3_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])

◆ G3_IRB1

def data_flow.G3_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])

◆ G3_IRB2

def data_flow.G3_IRB2 = gen_irblock(LBL2, [[ExprAssign(r, a)]])

◆ G4_EXP_IRA

data_flow.G4_EXP_IRA = IRA.new_ircfg()

◆ G4_EXP_IRB0

def data_flow.G4_EXP_IRB0 = gen_irblock(LBL0, [[]])

◆ G4_EXP_IRB1

def data_flow.G4_EXP_IRB1 = gen_irblock(LBL1, [[]])

◆ G4_EXP_IRB2

def data_flow.G4_EXP_IRB2 = gen_irblock(LBL2, [[]])

◆ G4_EXP_IRB3

def data_flow.G4_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, CST3)], [ExprAssign(r, a)]])

◆ G4_IRA

data_flow.G4_IRA = IRA.new_ircfg()

◆ G4_IRB0

def data_flow.G4_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])

◆ G4_IRB1

def data_flow.G4_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])

◆ G4_IRB2

def data_flow.G4_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)]])

◆ G4_IRB3

def data_flow.G4_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, CST3)], [ExprAssign(r, a)]])

◆ G5_EXP_IRA

data_flow.G5_EXP_IRA = IRA.new_ircfg()

◆ G5_EXP_IRB0

def data_flow.G5_EXP_IRB0 = gen_irblock(LBL0, [[]])

◆ G5_EXP_IRB1

def data_flow.G5_EXP_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])

◆ G5_EXP_IRB2

def data_flow.G5_EXP_IRB2 = gen_irblock(LBL2, [[]])

◆ G5_EXP_IRB3

def data_flow.G5_EXP_IRB3 = gen_irblock(LBL3, [[]])

◆ G5_EXP_IRB4

def data_flow.G5_EXP_IRB4 = gen_irblock(LBL4, [[]])

◆ G5_EXP_IRB5

def data_flow.G5_EXP_IRB5 = gen_irblock(LBL5, [[]])

◆ G5_IRA

data_flow.G5_IRA = IRA.new_ircfg()

◆ G5_IRB0

def data_flow.G5_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])

◆ G5_IRB1

def data_flow.G5_IRB1 = gen_irblock(LBL1, [[ExprAssign(r, CST2)]])

◆ G5_IRB2

def data_flow.G5_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)]])

◆ G5_IRB3

def data_flow.G5_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, a+CST3)]])

◆ G5_IRB4

def data_flow.G5_IRB4 = gen_irblock(LBL4, [[ExprAssign(a, a+CST1)]])

◆ G5_IRB5

def data_flow.G5_IRB5 = gen_irblock(LBL5, [[ExprAssign(a, r)]])

◆ G6_EXP_IRA

data_flow.G6_EXP_IRA = IRA.new_ircfg()

◆ G6_EXP_IRB0

def data_flow.G6_EXP_IRB0 = gen_irblock(LBL0, [[]])

◆ G6_EXP_IRB1

def data_flow.G6_EXP_IRB1 = gen_irblock(LBL1, [[]])

◆ G6_EXP_IRB2

def data_flow.G6_EXP_IRB2 = gen_irblock(LBL2, [[]])

◆ G6_EXP_IRB3

def data_flow.G6_EXP_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST2)]])

◆ G6_IRA

data_flow.G6_IRA = IRA.new_ircfg()

◆ G6_IRB0

def data_flow.G6_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)]])

◆ G6_IRB1

def data_flow.G6_IRB1 = gen_irblock(LBL1, [[ExprAssign(b, a)]])

◆ G6_IRB2

def data_flow.G6_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, b)]])

◆ G6_IRB3

def data_flow.G6_IRB3 = gen_irblock(LBL3, [[ExprAssign(r, CST2)]])

◆ G7_EXP_IRA

data_flow.G7_EXP_IRA = IRA.new_ircfg()

◆ G7_EXP_IRB0

def data_flow.G7_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(r, CST1)]])

◆ G7_EXP_IRB1

def data_flow.G7_EXP_IRB1 = gen_irblock(LBL1, [[]])

◆ G7_EXP_IRB2

def data_flow.G7_EXP_IRB2 = gen_irblock(LBL2, [[]])

◆ G7_EXP_IRB3

def data_flow.G7_EXP_IRB3 = gen_irblock(LBL3, [[]])

◆ G7_IRA

data_flow.G7_IRA = IRA.new_ircfg()

◆ G7_IRB0

def data_flow.G7_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(r, CST1)]])

◆ G7_IRB1

def data_flow.G7_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])

◆ G7_IRB2

def data_flow.G7_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)]])

◆ G7_IRB3

def data_flow.G7_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, r)]])

◆ G8_EXP_IRA

data_flow.G8_EXP_IRA = IRA.new_ircfg()

◆ G8_EXP_IRB0

def data_flow.G8_EXP_IRB0 = gen_irblock(LBL0, [[], []])

◆ G8_EXP_IRB1

def data_flow.G8_EXP_IRB1 = gen_irblock(LBL1, [[]])

◆ G8_EXP_IRB2

def data_flow.G8_EXP_IRB2 = gen_irblock(LBL2, [[]])

◆ G8_EXP_IRB3

def data_flow.G8_EXP_IRB3 = gen_irblock(LBL3, [[]])

◆ G8_IRA

data_flow.G8_IRA = IRA.new_ircfg()

◆ G8_IRB0

def data_flow.G8_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST1)]])

◆ G8_IRB1

def data_flow.G8_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)]])

◆ G8_IRB2

def data_flow.G8_IRB2 = gen_irblock(LBL2, [[ExprAssign(b, b+CST2)]])

◆ G8_IRB3

def data_flow.G8_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, b)]])

◆ G9_EXP_IRA

data_flow.G9_EXP_IRA = IRA.new_ircfg()

◆ G9_EXP_IRB0

def data_flow.G9_EXP_IRB0 = gen_irblock(LBL0, [[], [ExprAssign(b, CST1)]])

◆ G9_EXP_IRB1

def data_flow.G9_EXP_IRB1 = gen_irblock(LBL1, [[], [ExprAssign(b, b+CST1)]])

◆ G9_EXP_IRB2

def data_flow.G9_EXP_IRB2 = gen_irblock(LBL2, [[], [ExprAssign(b, b+CST2)]])

◆ G9_EXP_IRB3

def data_flow.G9_EXP_IRB3 = gen_irblock(LBL3, [[]])

◆ G9_EXP_IRB4

def data_flow.G9_EXP_IRB4 = gen_irblock(LBL4, [[], [ExprAssign(r, b)]])

◆ G9_IRA

data_flow.G9_IRA = IRA.new_ircfg()

◆ G9_IRB0

def data_flow.G9_IRB0 = gen_irblock(LBL0, [[ExprAssign(a, CST1)], [ExprAssign(b, CST1)]])

◆ G9_IRB1

def data_flow.G9_IRB1 = gen_irblock(LBL1, [[ExprAssign(a, a+CST1)], [ExprAssign(b, b+CST1)]])

◆ G9_IRB2

def data_flow.G9_IRB2 = gen_irblock(LBL2, [[ExprAssign(a, a+CST2)], [ExprAssign(b, b+CST2)]])

◆ G9_IRB3

def data_flow.G9_IRB3 = gen_irblock(LBL3, [[ExprAssign(a, b)]])

◆ G9_IRB4

def data_flow.G9_IRB4 = gen_irblock(LBL4, [[ExprAssign(r, a)], [ExprAssign(r, b)]])

◆ g_exp_ira

data_flow.g_exp_ira

◆ g_ira

data_flow.g_ira

◆ IRA

data_flow.IRA = IRATest(loc_db)

◆ IRDst

data_flow.IRDst = ExprId('IRDst', 32)

◆ LBL0

data_flow.LBL0 = loc_db.add_location("lbl0", 0)

◆ LBL1

data_flow.LBL1 = loc_db.add_location("lbl1", 1)

◆ LBL2

data_flow.LBL2 = loc_db.add_location("lbl2", 2)

◆ LBL3

data_flow.LBL3 = loc_db.add_location("lbl3", 3)

◆ LBL4

data_flow.LBL4 = loc_db.add_location("lbl4", 4)

◆ LBL5

data_flow.LBL5 = loc_db.add_location("lbl5", 5)

◆ LBL6

data_flow.LBL6 = loc_db.add_location("lbl6", 6)

◆ loc_db

data_flow.loc_db = LocationDB()

◆ pc

data_flow.pc = ExprId("pc", 32)

◆ r

data_flow.r = ExprId("r", 32)

◆ r_init

data_flow.r_init = ExprId("r_init", 32)

◆ reaching_defs

data_flow.reaching_defs = ReachingDefinitions(g_ira)

◆ sp

data_flow.sp = ExprId("sp", 32)
data_flow.gen_irblock
def gen_irblock(label, exprs_list)
Definition: data_flow.py:45