* Function 'main'
* Block 1, tree 1
(cs_STORE
[IR stm 1: 't22 = sort(in,10);']
(cs_ADDR [IR exp 44: 't22' C type: int ] & 't22')
(cs_CALL [IR exp 47: 'sort(in,10)' C type: int ]
(cs_GLOBALSYM [IR exp 45: 'sort' C type: int (*)(int *,int ) ])
(cs_PASSARG [IR exp 14: '10' C type:
int ] arg no 2
(cs_PASSARG [IR exp 46: 'in' C type: int *
] arg no 1
(cs_NOARG)
(cs_GLOBALSYM [IR exp 46: 'in' C type: int
* ]))
(cs_INTCONST [IR exp 14:
'10' C type: int ]))))
* Block 1, tree 2
(cs_STORE
[IR stm 2: 'i_4 = 0;']
(cs_ADDR
[IR exp 48: 'i_4' C type: int ] &
'i_4')
(cs_INTCONST [IR exp 15:
'0' C type: int ]))
* Block 1, tree 3
(cs_STORE
[IR stm 3: 't25 = (char *)in;']
(cs_ADDR [IR exp 49: 't25' C type: char * ] & 't25')
(cs_CAST [IR exp 51: '(char *)in' C type:
char * ]
(cs_GLOBALSYM [IR exp
50: 'in' C type: int * ])))
* Block 2, tree 1
(cs_LABEL [IR stm 4:
'LL2:'])
* Block 2, tree
2
(cs_STORE [IR stm 5: 't26 = 4 * i_4;']
(cs_ADDR [IR exp 52: 't26' C type: int ] & 't26')
(cs_MULT [IR exp 54: '4 * i_4' C type:
int ]
(cs_INTCONST [IR exp 16: '4' C type: int ])
(cs_LOAD [IR exp 53: 'i_4' C type: int
]
(cs_ADDR [IR exp 53:
'i_4' C type: int ] &
'i_4'))))
* Block 2, tree
3
(cs_STORE [IR stm 6: 't27 = t25 + t26;']
(cs_ADDR [IR exp 55: 't27' C type: char * ]
& 't27')
(cs_PLUS [IR exp 58:
't25 + t26' C type: char * ]
(cs_LOAD [IR exp 56: 't25' C type: char * ]
(cs_ADDR [IR exp 56: 't25' C type: char * ]
& 't25'))
(cs_LOAD [IR exp
57: 't26' C type: int ]
(cs_ADDR [IR exp 57: 't26' C type: int ] & 't26'))))
* Block 2, tree 4
(cs_STORE
[IR stm 7: 't28 = (int *)t27;']
(cs_ADDR [IR exp 59: 't28' C type: int * ] & 't28')
(cs_CAST [IR exp 61: '(int *)t27' C type: int
* ]
(cs_LOAD [IR exp 60: 't27' C
type: char * ]
(cs_ADDR [IR exp
60: 't27' C type: char * ] & 't27'))))
* Block 2, tree 5
(cs_STORE
[IR stm 8: 't29 = putd(*t28);']
(cs_ADDR [IR exp 62: 't29' C type: int ] & 't29')
(cs_CALL [IR exp 66: 'putd(*t28)' C type: int ]
(cs_GLOBALSYM [IR exp 63: 'putd' C type: int (*)(int ) ])
(cs_PASSARG [IR exp 65: '*t28' C type:
int ] arg no 1
(cs_NOARG)
(cs_LOAD [IR exp 65: '*t28' C type: int ]
(cs_LOAD [IR exp 64: 't28' C type: int * ]
(cs_ADDR [IR exp 64: 't28' C type: int *
] & 't28'))))))
* Block
2, tree 6
(cs_STORE [IR stm 9: 't30 = putchar('\x0a');']
(cs_ADDR [IR exp 67: 't30' C type: int ] & 't30')
(cs_CALL [IR exp 69: 'putchar('\x0a')' C
type: int ]
(cs_GLOBALSYM [IR exp 68: 'putchar' C type:
int (*)() ])
(cs_PASSARG [IR exp
17: ''\x0a'' C type: char ] arg no
1
(cs_NOARG)
(cs_INTCONST [IR exp 17: ''\x0a'' C type:
char ]))))
* Block 2, tree 7
(cs_STORE
[IR stm 10: 't31 = 1 + i_4;']
(cs_ADDR [IR exp 70: 't31' C type: int ] & 't31')
(cs_PLUS [IR exp 72: '1 + i_4' C type: int ]
(cs_INTCONST [IR exp 18: '1' C type: int ])
(cs_LOAD [IR exp
71: 'i_4' C type: int ]
(cs_ADDR [IR exp 71: 'i_4' C type: int ] & 'i_4'))))
* Block 2, tree 8
(cs_STORE
[IR stm 11: 'i_4 = t31;']
(cs_ADDR
[IR exp 73: 'i_4' C type: int ] &
'i_4')
(cs_LOAD [IR exp 74: 't31'
C type: int ]
(cs_ADDR [IR exp 74: 't31' C type: int ] & 't31')))
* Block 2, tree 9
(cs_STORE
[IR stm 12: 't32 = t31 < 10;']
(cs_ADDR [IR exp 75: 't32' C type: int ] & 't32')
(cs_LESS [IR exp 77: 't31 < 10' C type: int ]
(cs_LOAD [IR exp 76: 't31' C type: int
]
(cs_ADDR [IR exp 76:
't31' C type: int ] & 't31'))
(cs_INTCONST [IR exp 19: '10' C type:
int ])))
* Block 2, tree 10
(cs_CJUMP
[IR stm 13: 'if (t32) goto LL2;']
(cs_LOAD [IR exp 78: 't32' C type: int ]
(cs_ADDR [IR exp
78: 't32' C type: int ] &
't32')))
* Block 3, tree
1
(cs_RETURN [IR stm 14: 'return 0;']
(cs_INTCONST [IR exp 20: '0' C type: int ]))
* Function 'putd'
* Block 1, tree 1
(cs_STORE [IR stm 15: 't34 =
n_8 < 0;']
(cs_ADDR [IR exp 79:
't34' C type: int ] & 't34')
(cs_LESS [IR exp 81: 'n_8 < 0' C type:
int ]
(cs_READARG [IR exp 80: 'n_8' C type: int ] arg no 1)
(cs_INTCONST [IR exp 21: '0' C type: int ])))
* Block 1, tree 2
(cs_STORE [IR stm 16: 't35 =
!t34;']
(cs_ADDR [IR exp 82: 't35'
C type: int ] & 't35')
(cs_LOGNOT [IR exp 84: '!t34' C type:
int ]
(cs_LOAD [IR exp 83: 't34' C type: int ]
(cs_ADDR [IR exp
83: 't34' C type: int ] &
't34'))))
* Block 1, tree
3
(cs_CJUMP [IR stm 17: 'if (t35) goto LL4;']
(cs_LOAD [IR exp 85: 't35' C type: int ]
(cs_ADDR [IR exp 85: 't35' C type: int
] & 't35')))
*
Block 2, tree 1
(cs_STORE [IR stm 18: 't36 =
putchar('\x2d');']
(cs_ADDR [IR
exp 86: 't36' C type: int ] & 't36')
(cs_CALL [IR exp 88: 'putchar('\x2d')' C
type: int ]
(cs_GLOBALSYM [IR exp 87: 'putchar' C type:
int (*)() ])
(cs_PASSARG [IR exp
22: ''\x2d'' C type: char ] arg no
1
(cs_NOARG)
(cs_INTCONST [IR exp 22: ''\x2d'' C type:
char ]))))
* Block 2, tree 2
(cs_STORE
[IR stm 19: 't37 = -n_8;']
(cs_ADDR [IR exp 89: 't37' C type: int ] & 't37')
(cs_UMINUS [IR exp 91: '-n_8' C type: int ]
(cs_READARG [IR exp 90: 'n_8' C type: int ] arg no 1)))
* Block 2, tree 3
(cs_WRITEARG [IR stm 20: 'n_8 =
t37;'] arg no 1
(cs_LOAD [IR exp
93: 't37' C type: int ]
(cs_ADDR [IR exp 93: 't37' C type: int ] & 't37')))
* Block 3, tree 1
(cs_LABEL
[IR stm 21: 'LL4:'])
* Block
3, tree 2
(cs_STORE [IR stm 22: 't1 = n_8 / 10;']
(cs_ADDR [IR exp 94: 't1' C type: int ] & 't1')
(cs_DIV [IR exp 96: 'n_8 / 10' C type:
int ]
(cs_READARG [IR exp 95: 'n_8' C type: int ] arg no 1)
(cs_INTCONST [IR exp 23: '10' C type: int ])))
* Block 3, tree 3
(cs_STORE [IR stm 23: 't39 =
!t1;']
(cs_ADDR [IR exp 97: 't39'
C type: int ] & 't39')
(cs_LOGNOT [IR exp 99: '!t1' C type: int ]
(cs_LOAD [IR exp 98: 't1' C type: int
]
(cs_ADDR [IR exp 98:
't1' C type: int ] & 't1'))))
* Block 3, tree 4
(cs_CJUMP
[IR stm 24: 'if (t39) goto LL5;']
(cs_LOAD [IR exp 100: 't39' C type: int ]
(cs_ADDR [IR exp
100: 't39' C type: int ] &
't39')))
* Block 4, tree
1
(cs_STORE [IR stm 25: 't41 = putd(t1);']
(cs_ADDR [IR exp 101: 't41' C type: int ] & 't41')
(cs_CALL [IR exp 104: 'putd(t1)' C type: int ]
(cs_GLOBALSYM [IR exp 102: 'putd' C type: int (*)(int ) ])
(cs_PASSARG [IR exp 103: 't1' C type:
int ] arg no 1
(cs_NOARG)
(cs_LOAD [IR exp 103: 't1' C type: int ]
(cs_ADDR [IR
exp 103: 't1' C type: int ] &
't1')))))
* Block 5, tree 1
(cs_LABEL
[IR stm 26: 'LL5:'])
* Block
5, tree 2
(cs_STORE [IR stm 27: 't42 = n_8 % 10;']
(cs_ADDR [IR exp 105: 't42' C type: int ] & 't42')
(cs_MOD [IR exp 107: 'n_8 % 10' C type:
int ]
(cs_READARG [IR exp 106: 'n_8' C type: int ] arg no 1)
(cs_INTCONST [IR exp 24: '10' C type: int ])))
* Block 5, tree 3
(cs_STORE [IR stm 28: 't43 =
(int )'\x30';']
(cs_ADDR [IR exp
108: 't43' C type: int ] &
't43')
(cs_CAST [IR exp 26: '(int
)'\x30'' C type: int ]
(cs_INTCONST [IR exp 25: ''\x30'' C type:
char ])))
* Block 5, tree 4
(cs_STORE
[IR stm 29: 't44 = t42 + t43;']
(cs_ADDR [IR exp 109: 't44' C type: int ] & 't44')
(cs_PLUS [IR exp 112: 't42 + t43' C type: int ]
(cs_LOAD [IR exp 110: 't42' C type: int
]
(cs_ADDR [IR exp 110:
't42' C type: int ] & 't42'))
(cs_LOAD [IR exp 111: 't43' C type: int ]
(cs_ADDR [IR exp 111: 't43' C type: int
] & 't43'))))
*
Block 5, tree 5
(cs_STORE [IR stm 30: 't45 =
putchar(t44);']
(cs_ADDR [IR exp
113: 't45' C type: int ] &
't45')
(cs_CALL [IR exp 116:
'putchar(t44)' C type: int ]
(cs_GLOBALSYM [IR exp 114: 'putchar' C type:
int (*)() ])
(cs_PASSARG [IR exp
115: 't44' C type: int ] arg no 1
(cs_NOARG)
(cs_LOAD [IR exp 115: 't44' C type: int ]
(cs_ADDR [IR exp 115: 't44' C type: int
] & 't44')))))
*
Block 5, tree 6
(cs_VOIDRETURN [IR stm 31: 'return;'])
* Function 'sort'
* Block 1, tree 1
(cs_STORE
[IR stm 32: 't46 = &xx;']
(cs_ADDR [IR exp 117: 't46' C type: int ** ] & 't46')
(cs_ADDR [IR exp 118: 'xx' C type: int * ]
& 'xx'))
* Block 1, tree
2
(cs_STORE [IR stm 33: '*t46 = a_14;']
(cs_LOAD [IR exp 120: 't46' C type: int **
]
(cs_ADDR [IR exp 120: 't46' C
type: int ** ] & 't46'))
(cs_READARG [IR exp 122: 'a_14' C type: int * ] arg no 1))
* Block 1, tree 3
(cs_STORE
[IR stm 34: 't47 = -1 + n_15;']
(cs_ADDR [IR exp 123: 't47' C type: int ] & 't47')
(cs_PLUS [IR exp 125: '-1 + n_15' C type: int ]
(cs_INTCONST [IR exp 27: '-1' C type: int ])
(cs_READARG [IR
exp 124: 'n_15' C type: int ] arg no
2)))
* Block 1, tree 4
(cs_STORE
[IR stm 35: 't48 = quick(*t46,0,t47);']
(cs_ADDR [IR exp 126: 't48' C type: int ] & 't48')
(cs_CALL [IR exp 131: 'quick(*t46,0,t47)' C type: int ]
(cs_GLOBALSYM [IR exp 127: 'quick' C type: int (*)(int *,int ,int )
])
(cs_PASSARG [IR exp 130: 't47'
C type: int ] arg no 3
(cs_PASSARG [IR exp 28: '0' C type:
int ] arg no 2
(cs_PASSARG [IR exp 129: '*t46' C type:
int * ] arg no 1
(cs_NOARG)
(cs_LOAD [IR
exp 129: '*t46' C type: int * ]
(cs_LOAD [IR exp 128: 't46' C
type: int ** ]
(cs_ADDR [IR
exp 128: 't46' C type: int ** ] & 't46'))))
(cs_INTCONST [IR exp 28: '0' C type: int ]))
(cs_LOAD [IR exp 130: 't47' C type: int
]
(cs_ADDR [IR exp 130:
't47' C type: int ] & 't47')))))
* Block 1, tree 5
(cs_VOIDRETURN
[IR stm 36: 'return;'])
*
Function 'quick'
* Block 1,
tree 1
(cs_STORE [IR stm 37: 't49 = lb_20 >= ub_21;']
(cs_ADDR [IR exp 132: 't49' C type: int ] & 't49')
(cs_GEQ [IR exp 135: 'lb_20 >= ub_21' C type:
int ]
(cs_READARG [IR exp 133: 'lb_20' C type: int ] arg no 2)
(cs_READARG [IR exp 134: 'ub_21' C type: int ] arg no 3)))
* Block 1, tree 2
(cs_STORE
[IR stm 38: 't50 = !t49;']
(cs_ADDR [IR exp 136: 't50' C type: int ] & 't50')
(cs_LOGNOT [IR exp 138: '!t49' C type: int ]
(cs_LOAD [IR exp 137: 't49' C type: int
]
(cs_ADDR [IR exp 137:
't49' C type: int ] &
't49'))))
* Block 1, tree
3
(cs_CJUMP [IR stm 39: 'if (t50) goto LL6;']
(cs_LOAD [IR exp 139: 't50' C type: int ]
(cs_ADDR [IR exp 139: 't50' C type: int
] & 't50')))
*
Block 2, tree 1
(cs_VOIDRETURN [IR stm 40: 'return;'])
* Block 3, tree 1
(cs_LABEL
[IR stm 41: 'LL6:'])
* Block
3, tree 2
(cs_STORE [IR stm 42: 't51 =
partition(a_19,lb_20,ub_21);']
(cs_ADDR [IR exp 140: 't51' C type: int ] & 't51')
(cs_CALL [IR exp 145: 'partition(a_19,lb_20,ub_21)' C type:
int ]
(cs_GLOBALSYM [IR exp 141: 'partition' C type: int (*)(int *,int
,int ) ])
(cs_PASSARG [IR exp
144: 'ub_21' C type: int ] arg no
3
(cs_PASSARG [IR exp 143:
'lb_20' C type: int ] arg no 2
(cs_PASSARG [IR exp 142: 'a_19' C type:
int * ] arg no 1
(cs_NOARG)
(cs_READARG
[IR exp 142: 'a_19' C type: int * ] arg no 1))
(cs_READARG [IR exp 143: 'lb_20' C type: int ] arg no 2))
(cs_READARG [IR exp 144:
'ub_21' C type: int ] arg no
3))))
* Block 3, tree
3
(cs_STORE [IR stm 43: 't52 = -1 + t51;']
(cs_ADDR [IR exp 146: 't52' C type: int ] & 't52')
(cs_PLUS [IR exp 148: '-1 + t51' C type:
int ]
(cs_INTCONST [IR exp 29: '-1' C type: int ])
(cs_LOAD [IR exp 147: 't51' C type: int
]
(cs_ADDR [IR exp 147:
't51' C type: int ] &
't51'))))
* Block 3, tree
4
(cs_STORE [IR stm 44: 't53 = quick(a_19,lb_20,t52);']
(cs_ADDR [IR exp 149: 't53' C type: int ] & 't53')
(cs_CALL [IR exp 154: 'quick(a_19,lb_20,t52)'
C type: int ]
(cs_GLOBALSYM [IR exp 150: 'quick' C type:
int (*)(int *,int ,int ) ])
(cs_PASSARG [IR exp 153: 't52' C type: int ] arg no 3
(cs_PASSARG [IR exp 152: 'lb_20' C type: int ] arg no 2
(cs_PASSARG
[IR exp 151: 'a_19' C type: int * ] arg no 1
(cs_NOARG)
(cs_READARG [IR exp 151: 'a_19' C type: int * ] arg no 1))
(cs_READARG [IR exp 152: 'lb_20' C type:
int ] arg no 2))
(cs_LOAD [IR exp 153: 't52' C type:
int ]
(cs_ADDR [IR exp 153: 't52' C type: int ] & 't52')))))
* Block 3, tree 5
(cs_STORE
[IR stm 45: 't54 = 1 + t51;']
(cs_ADDR [IR exp 155: 't54' C type: int ] & 't54')
(cs_PLUS [IR exp 157: '1 + t51' C type: int ]
(cs_INTCONST [IR exp 30: '1' C type: int ])
(cs_LOAD [IR exp
156: 't51' C type: int ]
(cs_ADDR [IR exp 156: 't51' C type:
int ] & 't51'))))
* Block 3, tree 6
(cs_STORE
[IR stm 46: 't55 = quick(a_19,t54,ub_21);']
(cs_ADDR [IR exp 158: 't55' C type: int ] & 't55')
(cs_CALL [IR exp 163: 'quick(a_19,t54,ub_21)' C type: int ]
(cs_GLOBALSYM [IR exp 159: 'quick' C type: int (*)(int *,int ,int )
])
(cs_PASSARG [IR exp 162:
'ub_21' C type: int ] arg no 3
(cs_PASSARG [IR exp 161: 't54' C type:
int ] arg no 2
(cs_PASSARG [IR exp 160: 'a_19' C type:
int * ] arg no 1
(cs_NOARG)
(cs_READARG
[IR exp 160: 'a_19' C type: int * ] arg no 1))
(cs_LOAD [IR exp 161: 't54' C type: int ]
(cs_ADDR [IR exp 161: 't54' C type: int
] & 't54')))
(cs_READARG [IR exp 162: 'ub_21' C type: int ] arg no 3))))
* Block 3, tree 7
(cs_VOIDRETURN [IR stm 47:
'return;'])
* Function
'partition'
* Block 1, tree
1
(cs_STORE [IR stm 48: 't92 = 1 + j_28;']
(cs_ADDR [IR exp 164: 't92' C type: int ] & 't92')
(cs_PLUS [IR exp 166: '1 + j_28' C type:
int ]
(cs_INTCONST [IR exp 31: '1' C type: int ])
(cs_READARG [IR exp 165: 'j_28' C type: int ] arg no 3)))
* Block 1, tree 2
(cs_WRITEARG [IR stm 49: 'j_28
= t92;'] arg no 3
(cs_LOAD [IR exp
168: 't92' C type: int ]
(cs_ADDR [IR exp 168: 't92' C type: int ] & 't92')))
* Block 1, tree 3
(cs_STORE
[IR stm 50: 't2 = (char *)a_26;']
(cs_ADDR [IR exp 169: 't2' C type: char * ] & 't2')
(cs_CAST [IR exp 171: '(char *)a_26' C type:
char * ]
(cs_READARG [IR exp 170:
'a_26' C type: int * ] arg no 1)))
* Block 1, tree 4
(cs_STORE [IR stm 51: 't3 = 4 *
i_27;']
(cs_ADDR [IR exp 172: 't3'
C type: int ] & 't3')
(cs_MULT [IR exp 174: '4 * i_27' C type:
int ]
(cs_INTCONST [IR exp 32: '4' C type: int ])
(cs_READARG [IR exp 173: 'i_27' C type: int ] arg no 2)))
* Block 1, tree 5
(cs_STORE [IR stm 52: 't95 = t2
+ t3;']
(cs_ADDR [IR exp 175:
't95' C type: char * ] & 't95')
(cs_PLUS [IR exp 178: 't2 + t3' C type: char * ]
(cs_LOAD [IR exp 176: 't2' C type: char *
]
(cs_ADDR [IR exp 176: 't2' C
type: char * ] & 't2'))
(cs_LOAD [IR exp 177: 't3' C type: int
]
(cs_ADDR [IR exp 177:
't3' C type: int ] & 't3'))))
* Block 1, tree 6
(cs_STORE
[IR stm 53: 't96 = (int *)t95;']
(cs_ADDR [IR exp 179: 't96' C type: int * ] & 't96')
(cs_CAST [IR exp 181: '(int *)t95' C type:
int * ]
(cs_LOAD [IR exp 180:
't95' C type: char * ]
(cs_ADDR
[IR exp 180: 't95' C type: char * ] & 't95'))))
* Block 1, tree 7
(cs_STORE
[IR stm 54: 'v_30 = *t96;']
(cs_ADDR [IR exp 182: 'v_30' C type: int ] & 'v_30')
(cs_LOAD [IR exp 184: '*t96' C type: int ]
(cs_LOAD [IR exp
183: 't96' C type: int * ]
(cs_ADDR [IR exp 183: 't96' C type: int * ] & 't96'))))
* Block 2, tree 1
(cs_LABEL
[IR stm 55: 'LL16:'])
*
Block 2, tree 2
(cs_STORE [IR stm 56: 't97 = i_27 <
j_28;']
(cs_ADDR [IR exp 185:
't97' C type: int ] & 't97')
(cs_LESS [IR exp 188: 'i_27 < j_28' C
type: int ]
(cs_READARG [IR exp 186: 'i_27' C type:
int ] arg no 2)
(cs_READARG [IR exp 187: 'j_28' C type: int ] arg no 3)))
* Block 2, tree 3
(cs_STORE
[IR stm 57: 't98 = !t97;']
(cs_ADDR [IR exp 189: 't98' C type: int ] & 't98')
(cs_LOGNOT [IR exp 191: '!t97' C type: int ]
(cs_LOAD [IR exp 190: 't97' C type: int
]
(cs_ADDR [IR exp 190:
't97' C type: int ] &
't97'))))
* Block 2, tree
4
(cs_CJUMP [IR stm 58: 'if (t98) goto LL7;']
(cs_LOAD [IR exp 192: 't98' C type: int ]
(cs_ADDR [IR exp 192: 't98' C type: int
] & 't98')))
*
Block 3, tree 1
(cs_STORE [IR stm 59: 't99 = 1 + i_27;']
(cs_ADDR [IR exp 193: 't99' C type: int ] & 't99')
(cs_PLUS [IR exp 195: '1 + i_27' C type:
int ]
(cs_INTCONST [IR exp 33: '1' C type: int ])
(cs_READARG [IR exp 194: 'i_27' C type: int ] arg no 2)))
* Block 3, tree 2
(cs_WRITEARG [IR stm 60: 'i_27
= t99;'] arg no 2
(cs_LOAD [IR exp
197: 't99' C type: int ]
(cs_ADDR [IR exp 197: 't99' C type: int ] & 't99')))
* Block 4, tree 1
(cs_LABEL
[IR stm 61: 'LL11:'])
*
Block 4, tree 2
(cs_STORE [IR stm 62: 't101 = 4 *
i_27;']
(cs_ADDR [IR exp 198:
't101' C type: int ] &
't101')
(cs_MULT [IR exp 200: '4 *
i_27' C type: int ]
(cs_INTCONST [IR exp 34: '4' C type:
int ])
(cs_READARG [IR exp 199: 'i_27' C type: int ] arg no 2)))
* Block 4, tree 3
(cs_STORE
[IR stm 63: 't102 = t2 + t101;']
(cs_ADDR [IR exp 201: 't102' C type: char * ] & 't102')
(cs_PLUS [IR exp 204: 't2 + t101' C type:
char * ]
(cs_LOAD [IR exp 202:
't2' C type: char * ]
(cs_ADDR
[IR exp 202: 't2' C type: char * ] & 't2'))
(cs_LOAD [IR exp 203: 't101' C type: int ]
(cs_ADDR [IR exp 203: 't101' C type: int ] & 't101'))))
* Block 4, tree 4
(cs_STORE [IR stm 64: 't103 =
(int *)t102;']
(cs_ADDR [IR exp
205: 't103' C type: int * ] & 't103')
(cs_CAST [IR exp 207: '(int *)t102' C type: int * ]
(cs_LOAD [IR exp 206: 't102' C type: char *
]
(cs_ADDR [IR exp 206: 't102' C
type: char * ] & 't102'))))
* Block 4, tree 5
(cs_STORE [IR stm 65: 't104 =
*t103 < v_30;']
(cs_ADDR [IR
exp 208: 't104' C type: int ] &
't104')
(cs_LESS [IR exp 212:
'*t103 < v_30' C type: int ]
(cs_LOAD [IR exp 210: '*t103' C type:
int ]
(cs_LOAD [IR exp 209: 't103' C type: int * ]
(cs_ADDR [IR exp 209: 't103' C type: int *
] & 't103')))
(cs_LOAD [IR
exp 211: 'v_30' C type: int ]
(cs_ADDR [IR exp 211: 'v_30' C type: int ] & 'v_30'))))
* Block 4, tree 6
(cs_STORE
[IR stm 66: 't105 = !t104;']
(cs_ADDR [IR exp 213: 't105' C type: int ] & 't105')
(cs_LOGNOT [IR exp 215: '!t104' C type: int ]
(cs_LOAD [IR exp 214: 't104' C type: int ]
(cs_ADDR [IR exp
214: 't104' C type: int ] &
't104'))))
* Block 4, tree
7
(cs_CJUMP [IR stm 67: 'if (t105) goto LL9;']
(cs_LOAD [IR exp 216: 't105' C type: int ]
(cs_ADDR [IR exp 216: 't105' C type: int ] & 't105')))
* Block 5, tree 1
(cs_STORE [IR stm 68: 't106 = 1
+ i_27;']
(cs_ADDR [IR exp 217:
't106' C type: int ] &
't106')
(cs_PLUS [IR exp 219: '1 +
i_27' C type: int ]
(cs_INTCONST [IR exp 35: '1' C type:
int ])
(cs_READARG [IR exp 218: 'i_27' C type: int ] arg no 2)))
* Block 5, tree 2
(cs_WRITEARG
[IR stm 69: 'i_27 = t106;'] arg no 2
(cs_LOAD [IR exp 221: 't106' C type: int ]
(cs_ADDR [IR exp
221: 't106' C type: int ] &
't106')))
* Block 5, tree
3
(cs_JUMP [IR stm 70: 'goto LL11;'])
* Block 6, tree 1
(cs_LABEL
[IR stm 71: 'LL9:'])
* Block
6, tree 2
(cs_STORE [IR stm 72: 't107 = -1 + j_28;']
(cs_ADDR [IR exp 222: 't107' C type: int ] & 't107')
(cs_PLUS [IR exp 224: '-1 + j_28' C type:
int ]
(cs_INTCONST [IR exp 36: '-1' C type: int ])
(cs_READARG [IR exp 223: 'j_28' C type: int ] arg no 3)))
* Block 6, tree 3
(cs_WRITEARG [IR stm 73: 'j_28
= t107;'] arg no 3
(cs_LOAD [IR
exp 226: 't107' C type: int ]
(cs_ADDR [IR exp 226: 't107' C type:
int ] & 't107')))
* Block 7, tree 1
(cs_LABEL
[IR stm 74: 'LL14:'])
* Block
7, tree 2
(cs_STORE [IR stm 75: 't109 = 4 * j_28;']
(cs_ADDR [IR exp 227: 't109' C type: int ] & 't109')
(cs_MULT [IR exp 229: '4 * j_28' C type:
int ]
(cs_INTCONST [IR exp 37: '4' C type: int ])
(cs_READARG [IR exp 228: 'j_28' C type: int ] arg no 3)))
* Block 7, tree 3
(cs_STORE [IR stm 76: 't110 =
t2 + t109;']
(cs_ADDR [IR exp 230:
't110' C type: char * ] & 't110')
(cs_PLUS [IR exp 233: 't2 + t109' C type: char * ]
(cs_LOAD [IR exp 231: 't2' C type: char *
]
(cs_ADDR [IR exp 231: 't2' C
type: char * ] & 't2'))
(cs_LOAD [IR exp 232: 't109' C type: int ]
(cs_ADDR [IR exp
232: 't109' C type: int ] &
't109'))))
* Block 7, tree
4
(cs_STORE [IR stm 77: 't111 = (int *)t110;']
(cs_ADDR [IR exp 234: 't111' C type: int * ]
& 't111')
(cs_CAST [IR exp
236: '(int *)t110' C type: int * ]
(cs_LOAD [IR exp 235: 't110' C type: char * ]
(cs_ADDR [IR exp 235: 't110' C type: char *
] & 't110'))))
* Block
7, tree 5
(cs_STORE [IR stm 78: 't112 = *t111 >
v_30;']
(cs_ADDR [IR exp 237:
't112' C type: int ] &
't112')
(cs_GREATER [IR exp 241:
'*t111 > v_30' C type: int ]
(cs_LOAD [IR exp 239: '*t111' C type:
int ]
(cs_LOAD [IR exp 238: 't111' C type: int * ]
(cs_ADDR [IR exp 238: 't111' C type: int *
] & 't111')))
(cs_LOAD [IR
exp 240: 'v_30' C type: int ]
(cs_ADDR [IR exp 240: 'v_30' C type:
int ] & 'v_30'))))
* Block 7, tree 6
(cs_STORE
[IR stm 79: 't113 = !t112;']
(cs_ADDR [IR exp 242: 't113' C type: int ] & 't113')
(cs_LOGNOT [IR exp 244: '!t112' C type: int ]
(cs_LOAD [IR exp 243: 't112' C type: int ]
(cs_ADDR [IR exp
243: 't112' C type: int ] &
't112'))))
* Block 7, tree
7
(cs_CJUMP [IR stm 80: 'if (t113) goto LL12;']
(cs_LOAD [IR exp 245: 't113' C type: int ]
(cs_ADDR [IR exp 245: 't113' C type: int ] & 't113')))
* Block 8, tree 1
(cs_STORE [IR stm 81: 't114 =
-1 + j_28;']
(cs_ADDR [IR exp 246:
't114' C type: int ] &
't114')
(cs_PLUS [IR exp 248: '-1
+ j_28' C type: int ]
(cs_INTCONST [IR exp 38: '-1' C type:
int ])
(cs_READARG [IR exp 247: 'j_28' C type: int ] arg no 3)))
* Block 8, tree 2
(cs_WRITEARG
[IR stm 82: 'j_28 = t114;'] arg no 3
(cs_LOAD [IR exp 250: 't114' C type: int ]
(cs_ADDR [IR exp
250: 't114' C type: int ] &
't114')))
* Block 8, tree
3
(cs_JUMP [IR stm 83: 'goto LL14;'])
* Block 9, tree 1
(cs_LABEL
[IR stm 84: 'LL12:'])
*
Block 9, tree 2
(cs_STORE [IR stm 85: 't115 = i_27 <
j_28;']
(cs_ADDR [IR exp 251:
't115' C type: int ] &
't115')
(cs_LESS [IR exp 254:
'i_27 < j_28' C type: int ]
(cs_READARG [IR exp 252: 'i_27' C type:
int ] arg no 2)
(cs_READARG [IR exp 253: 'j_28' C type:
int ] arg no 3)))
* Block 9, tree 3
(cs_STORE
[IR stm 86: 't116 = !t115;']
(cs_ADDR [IR exp 255: 't116' C type: int ] & 't116')
(cs_LOGNOT [IR exp 257: '!t115' C type: int ]
(cs_LOAD [IR exp 256: 't115' C type: int ]
(cs_ADDR [IR exp
256: 't115' C type: int ] &
't115'))))
* Block 9, tree
4
(cs_CJUMP [IR stm 87: 'if (t116) goto LL16;']
(cs_LOAD [IR exp 258: 't116' C type: int ]
(cs_ADDR [IR exp 258: 't116' C type: int ] & 't116')))
* Block 10, tree 1
(cs_STORE [IR stm 88: 't118 =
4 * i_27;']
(cs_ADDR [IR exp 259:
't118' C type: int ] &
't118')
(cs_MULT [IR exp 261: '4 *
i_27' C type: int ]
(cs_INTCONST [IR exp 39: '4' C type:
int ])
(cs_READARG [IR exp 260: 'i_27' C type: int ] arg no 2)))
* Block 10, tree 2
(cs_STORE
[IR stm 89: 't119 = t2 + t118;']
(cs_ADDR [IR exp 262: 't119' C type: char * ] & 't119')
(cs_PLUS [IR exp 265: 't2 + t118' C type:
char * ]
(cs_LOAD [IR exp 263:
't2' C type: char * ]
(cs_ADDR
[IR exp 263: 't2' C type: char * ] & 't2'))
(cs_LOAD [IR exp 264: 't118' C type: int ]
(cs_ADDR [IR exp 264: 't118' C type: int ] & 't118'))))
* Block 10, tree 3
(cs_STORE [IR stm 90: 't120 =
(int *)t119;']
(cs_ADDR [IR exp
266: 't120' C type: int * ] & 't120')
(cs_CAST [IR exp 268: '(int *)t119' C type: int * ]
(cs_LOAD [IR exp 267: 't119' C type: char *
]
(cs_ADDR [IR exp 267: 't119' C
type: char * ] & 't119'))))
* Block 10, tree 4
(cs_STORE [IR stm 91: 't121 =
(char *)a_26;']
(cs_ADDR [IR exp
269: 't121' C type: char * ] & 't121')
(cs_CAST [IR exp 271: '(char *)a_26' C type: char * ]
(cs_READARG [IR exp 270: 'a_26' C type: int
* ] arg no 1)))
* Block 10,
tree 5
(cs_STORE [IR stm 92: 't122 = 4 * j_28;']
(cs_ADDR [IR exp 272: 't122' C type: int ] & 't122')
(cs_MULT [IR exp 274: '4 * j_28' C type:
int ]
(cs_INTCONST [IR exp 40: '4' C type: int ])
(cs_READARG [IR exp 273: 'j_28' C type: int ] arg no 3)))
* Block 10, tree 6
(cs_STORE [IR stm 93: 't123 =
t121 + t122;']
(cs_ADDR [IR exp
275: 't123' C type: char * ] & 't123')
(cs_PLUS [IR exp 278: 't121 + t122' C type: char * ]
(cs_LOAD [IR exp 276: 't121' C type: char *
]
(cs_ADDR [IR exp 276: 't121' C
type: char * ] & 't121'))
(cs_LOAD [IR exp 277: 't122' C type: int ]
(cs_ADDR [IR exp
277: 't122' C type: int ] &
't122'))))
* Block 10, tree
7
(cs_STORE [IR stm 94: 't124 = (int *)t123;']
(cs_ADDR [IR exp 279: 't124' C type: int * ]
& 't124')
(cs_CAST [IR exp
281: '(int *)t123' C type: int * ]
(cs_LOAD [IR exp 280: 't123' C type: char * ]
(cs_ADDR [IR exp 280: 't123' C type: char *
] & 't123'))))
* Block
10, tree 8
(cs_STORE [IR stm 95: 't125 =
exchange(t120,t124);']
(cs_ADDR
[IR exp 282: 't125' C type: int ] &
't125')
(cs_CALL [IR exp 286:
'exchange(t120,t124)' C type: int
]
(cs_GLOBALSYM [IR exp
283: 'exchange' C type: int (*)(int *,int *) ])
(cs_PASSARG [IR exp 285: 't124' C type: int * ] arg no 2
(cs_PASSARG [IR exp 284: 't120' C type: int
* ] arg no 1
(cs_NOARG)
(cs_LOAD [IR exp 284: 't120' C type: int *
]
(cs_ADDR [IR exp 284: 't120'
C type: int * ] & 't120')))
(cs_LOAD [IR exp 285: 't124' C type: int * ]
(cs_ADDR [IR exp 285: 't124' C type: int *
] & 't124')))))
* Block
10, tree 9
(cs_JUMP [IR stm 96: 'goto LL16;'])
* Block 11, tree 1
(cs_LABEL
[IR stm 97: 'LL7:'])
* Block
11, tree 2
(cs_STORE [IR stm 98: 't128 = t2 + t3;']
(cs_ADDR [IR exp 287: 't128' C type: char * ]
& 't128')
(cs_PLUS [IR exp
290: 't2 + t3' C type: char * ]
(cs_LOAD [IR exp 288: 't2' C type: char * ]
(cs_ADDR [IR exp 288: 't2' C type: char * ]
& 't2'))
(cs_LOAD [IR exp
289: 't3' C type: int ]
(cs_ADDR [IR exp 289: 't3' C type: int ] & 't3'))))
* Block 11, tree 3
(cs_STORE
[IR stm 99: 't129 = (int *)t128;']
(cs_ADDR [IR exp 291: 't129' C type: int * ] & 't129')
(cs_CAST [IR exp 293: '(int *)t128' C type:
int * ]
(cs_LOAD [IR exp 292:
't128' C type: char * ]
(cs_ADDR
[IR exp 292: 't128' C type: char * ] & 't128'))))
* Block 11, tree 4
(cs_STORE
[IR stm 100: 't131 = 4 * j_28;']
(cs_ADDR [IR exp 294: 't131' C type: int ] & 't131')
(cs_MULT [IR exp 296: '4 * j_28' C type: int ]
(cs_INTCONST [IR exp 41: '4' C type: int ])
(cs_READARG [IR
exp 295: 'j_28' C type: int ] arg no
3)))
* Block 11, tree
5
(cs_STORE [IR stm 101: 't132 = t2 + t131;']
(cs_ADDR [IR exp 297: 't132' C type: char * ]
& 't132')
(cs_PLUS [IR exp
300: 't2 + t131' C type: char * ]
(cs_LOAD [IR exp 298: 't2' C type: char * ]
(cs_ADDR [IR exp 298: 't2' C type: char * ]
& 't2'))
(cs_LOAD [IR exp
299: 't131' C type: int ]
(cs_ADDR [IR exp 299: 't131' C type:
int ] & 't131'))))
* Block 11, tree 6
(cs_STORE
[IR stm 102: 't133 = (int *)t132;']
(cs_ADDR [IR exp 301: 't133' C type: int * ] & 't133')
(cs_CAST [IR exp 303: '(int *)t132' C type:
int * ]
(cs_LOAD [IR exp 302:
't132' C type: char * ]
(cs_ADDR
[IR exp 302: 't132' C type: char * ] & 't132'))))
* Block 11, tree 7
(cs_STORE
[IR stm 103: 't134 = exchange(t129,t133);']
(cs_ADDR [IR exp 304: 't134' C type: int ] & 't134')
(cs_CALL [IR exp 308: 'exchange(t129,t133)' C type: int ]
(cs_GLOBALSYM [IR exp 305: 'exchange' C type: int (*)(int *,int *)
])
(cs_PASSARG [IR exp 307:
't133' C type: int * ] arg no 2
(cs_PASSARG
[IR exp 306: 't129' C type: int * ] arg no 1
(cs_NOARG)
(cs_LOAD [IR exp 306: 't129' C type: int * ]
(cs_ADDR [IR exp 306: 't129' C type: int
* ] & 't129')))
(cs_LOAD [IR
exp 307: 't133' C type: int * ]
(cs_ADDR [IR exp 307: 't133' C type: int * ] & 't133')))))
* Block 11, tree 8
(cs_RETURN
[IR stm 104: 'return j_28;']
(cs_READARG [IR exp 309: 'j_28' C type: int ] arg no 3))
* Function 'exchange'
* Block 1, tree 1
(cs_STORE
[IR stm 105: 't135 = (char *)x_36;']
(cs_ADDR [IR exp 310: 't135' C type: char * ] & 't135')
(cs_CAST [IR exp 312: '(char *)x_36' C type:
char * ]
(cs_READARG [IR exp 311:
'x_36' C type: int * ] arg no 1)))
* Block 1, tree 2
(cs_STORE [IR stm 106: 't4 =
&xx;']
(cs_ADDR [IR exp 313:
't4' C type: int ** ] & 't4')
(cs_ADDR [IR exp 314: 'xx' C type: int * ] & 'xx'))
* Block 1, tree 3
(cs_STORE
[IR stm 107: 't137 = (char *)*t4;']
(cs_ADDR [IR exp 316: 't137' C type: char * ] & 't137')
(cs_CAST [IR exp 319: '(char *)*t4' C type:
char * ]
(cs_LOAD [IR exp 318:
'*t4' C type: int * ]
(cs_LOAD
[IR exp 317: 't4' C type: int ** ]
(cs_ADDR [IR exp 317: 't4' C type: int ** ] & 't4')))))
* Block 1, tree 4
(cs_STORE
[IR stm 108: 't138 = t135 - t137;']
(cs_ADDR [IR exp 320: 't138' C type: int ] & 't138')
(cs_MINUS [IR exp 323: 't135 - t137' C type: int ]
(cs_LOAD [IR exp 321: 't135' C type: char * ]
(cs_ADDR [IR exp 321: 't135' C type: char *
] & 't135'))
(cs_LOAD [IR exp
322: 't137' C type: char * ]
(cs_ADDR [IR exp 322: 't137' C type: char * ] & 't137'))))
* Block 1, tree 5
(cs_STORE
[IR stm 109: 't139 = t138 / 4;']
(cs_ADDR [IR exp 324: 't139' C type: int ] & 't139')
(cs_DIV [IR exp 326: 't138 / 4' C type: int ]
(cs_LOAD [IR exp 325: 't138' C type: int ]
(cs_ADDR [IR exp
325: 't138' C type: int ] &
't138'))
(cs_INTCONST [IR exp 42:
'4' C type: int ])))
* Block 1, tree 6
(cs_STORE
[IR stm 110: 't140 = (char *)y_37;']
(cs_ADDR [IR exp 327: 't140' C type: char * ] & 't140')
(cs_CAST [IR exp 329: '(char *)y_37' C type:
char * ]
(cs_READARG [IR exp 328:
'y_37' C type: int * ] arg no 2)))
* Block 1, tree 7
(cs_STORE [IR stm 111: 't142 =
(char *)*t4;']
(cs_ADDR [IR exp
330: 't142' C type: char * ] & 't142')
(cs_CAST [IR exp 333: '(char *)*t4' C type: char * ]
(cs_LOAD [IR exp 332: '*t4' C type: int *
]
(cs_LOAD [IR exp 331: 't4' C
type: int ** ]
(cs_ADDR [IR exp
331: 't4' C type: int ** ] & 't4')))))
* Block 1, tree 8
(cs_STORE
[IR stm 112: 't143 = t140 - t142;']
(cs_ADDR [IR exp 334: 't143' C type: int ] & 't143')
(cs_MINUS [IR exp 337: 't140 - t142' C type: int ]
(cs_LOAD [IR exp 335: 't140' C type: char * ]
(cs_ADDR [IR exp 335: 't140' C type: char *
] & 't140'))
(cs_LOAD [IR exp
336: 't142' C type: char * ]
(cs_ADDR [IR exp 336: 't142' C type: char * ] & 't142'))))
* Block 1, tree 9
(cs_STORE
[IR stm 113: 't144 = t143 / 4;']
(cs_ADDR [IR exp 338: 't144' C type: int ] & 't144')
(cs_DIV [IR exp 340: 't143 / 4' C type: int ]
(cs_LOAD [IR exp 339: 't143' C type: int ]
(cs_ADDR [IR exp
339: 't143' C type: int ] &
't143'))
(cs_INTCONST [IR exp 43:
'4' C type: int ])))
* Block 1, tree 10
(cs_STORE
[IR stm 114: 't145 = printf(lance_static_t92,t139,t144);']
(cs_ADDR [IR exp 341: 't145' C type: int ] & 't145')
(cs_CALL [IR exp 346:
'printf(lance_static_t92,t139,t144)' C type: int ]
(cs_GLOBALSYM [IR
exp 342: 'printf' C type: int (*)() ])
(cs_PASSARG [IR exp 345: 't144' C type: int ] arg no 3
(cs_PASSARG [IR exp 344: 't139' C type: int ] arg no 2
(cs_PASSARG [IR exp 343: 'lance_static_t92'
C type: static char * ] arg no 1
(cs_NOARG)
(cs_GLOBALSYM [IR exp 343: 'lance_static_t92' C type: static char *
]))
(cs_LOAD [IR exp 344:
't139' C type: int ]
(cs_ADDR [IR exp 344: 't139' C type:
int ] & 't139')))
(cs_LOAD [IR exp 345: 't144' C type:
int ]
(cs_ADDR [IR exp 345: 't144' C type: int ] & 't144')))))
* Block 1, tree 11
(cs_STORE
[IR stm 115: 't_39 = *x_36;']
(cs_ADDR [IR exp 347: 't_39' C type: int ] & 't_39')
(cs_LOAD
[IR exp 349: '*x_36' C type: int
]
(cs_READARG [IR exp 348:
'x_36' C type: int * ] arg no 1)))
* Block 1, tree 12
(cs_STORE [IR stm 116: '*x_36
= *y_37;']
(cs_READARG [IR exp
353: 'x_36' C type: int * ] arg no 1)
(cs_LOAD [IR exp 356: '*y_37' C type: int ]
(cs_READARG [IR exp 355: 'y_37' C type: int * ] arg no 2)))
* Block 1, tree 13
(cs_STORE
[IR stm 117: '*y_37 = t_39;']
(cs_READARG [IR exp 350: 'y_37' C type: int * ] arg no 2)
(cs_LOAD [IR exp 352: 't_39' C type: int ]
(cs_ADDR [IR exp 352: 't_39' C type: int ] & 't_39')))
* Block 1, tree 14
(cs_VOIDRETURN [IR stm 118:
'return;'])