2 #ifndef IR_GEN_IRNODE_H
3 #define IR_GEN_IRNODE_H
9 #define is_ASM(node) is_ASM_(node)
10 #define get_ASM_input_constraints(node) get_ASM_input_constraints_(node)
11 #define set_ASM_input_constraints(node, input_constraints) set_ASM_input_constraints_(node, input_constraints)
12 #define get_ASM_output_constraints(node) get_ASM_output_constraints_(node)
13 #define set_ASM_output_constraints(node, output_constraints) set_ASM_output_constraints_(node, output_constraints)
14 #define get_ASM_clobbers(node) get_ASM_clobbers_(node)
15 #define set_ASM_clobbers(node, clobbers) set_ASM_clobbers_(node, clobbers)
16 #define get_ASM_text(node) get_ASM_text_(node)
17 #define set_ASM_text(node, text) set_ASM_text_(node, text)
18 #define get_ASM_mem(node) get_ASM_mem_(node)
19 #define set_ASM_mem(node, mem) set_ASM_mem_(node, mem)
20 #define get_ASM_n_inputs(node) get_ASM_n_inputs_(node)
21 #define get_ASM_input(node, pos) get_ASM_input_(node, pos)
22 #define set_ASM_input(node, pos, input) set_ASM_input_(node, pos, input)
23 #define get_ASM_input_arr(node) get_ASM_input_arr_(node)
25 #define is_Add(node) is_Add_(node)
26 #define get_Add_left(node) get_Add_left_(node)
27 #define set_Add_left(node, left) set_Add_left_(node, left)
28 #define get_Add_right(node) get_Add_right_(node)
29 #define set_Add_right(node, right) set_Add_right_(node, right)
31 #define is_Address(node) is_Address_(node)
32 #define get_Address_entity(node) get_Address_entity_(node)
33 #define set_Address_entity(node, entity) set_Address_entity_(node, entity)
35 #define is_Align(node) is_Align_(node)
36 #define get_Align_type(node) get_Align_type_(node)
37 #define set_Align_type(node, type) set_Align_type_(node, type)
39 #define is_Alloc(node) is_Alloc_(node)
40 #define get_Alloc_alignment(node) get_Alloc_alignment_(node)
41 #define set_Alloc_alignment(node, alignment) set_Alloc_alignment_(node, alignment)
42 #define get_Alloc_mem(node) get_Alloc_mem_(node)
43 #define set_Alloc_mem(node, mem) set_Alloc_mem_(node, mem)
44 #define get_Alloc_size(node) get_Alloc_size_(node)
45 #define set_Alloc_size(node, size) set_Alloc_size_(node, size)
47 #define is_Anchor(node) is_Anchor_(node)
48 #define get_Anchor_end_block(node) get_Anchor_end_block_(node)
49 #define set_Anchor_end_block(node, end_block) set_Anchor_end_block_(node, end_block)
50 #define get_Anchor_start_block(node) get_Anchor_start_block_(node)
51 #define set_Anchor_start_block(node, start_block) set_Anchor_start_block_(node, start_block)
52 #define get_Anchor_end(node) get_Anchor_end_(node)
53 #define set_Anchor_end(node, end) set_Anchor_end_(node, end)
54 #define get_Anchor_start(node) get_Anchor_start_(node)
55 #define set_Anchor_start(node, start) set_Anchor_start_(node, start)
56 #define get_Anchor_frame(node) get_Anchor_frame_(node)
57 #define set_Anchor_frame(node, frame) set_Anchor_frame_(node, frame)
58 #define get_Anchor_initial_mem(node) get_Anchor_initial_mem_(node)
59 #define set_Anchor_initial_mem(node, initial_mem) set_Anchor_initial_mem_(node, initial_mem)
60 #define get_Anchor_args(node) get_Anchor_args_(node)
61 #define set_Anchor_args(node, args) set_Anchor_args_(node, args)
62 #define get_Anchor_no_mem(node) get_Anchor_no_mem_(node)
63 #define set_Anchor_no_mem(node, no_mem) set_Anchor_no_mem_(node, no_mem)
65 #define is_And(node) is_And_(node)
66 #define get_And_left(node) get_And_left_(node)
67 #define set_And_left(node, left) set_And_left_(node, left)
68 #define get_And_right(node) get_And_right_(node)
69 #define set_And_right(node, right) set_And_right_(node, right)
71 #define is_Bad(node) is_Bad_(node)
73 #define is_Bitcast(node) is_Bitcast_(node)
74 #define get_Bitcast_op(node) get_Bitcast_op_(node)
75 #define set_Bitcast_op(node, op) set_Bitcast_op_(node, op)
77 #define is_Block(node) is_Block_(node)
78 #define get_Block_entity(node) get_Block_entity_(node)
79 #define set_Block_entity(node, entity) set_Block_entity_(node, entity)
80 #define get_Block_n_cfgpreds(node) get_Block_n_cfgpreds_(node)
81 #define get_Block_cfgpred(node, pos) get_Block_cfgpred_(node, pos)
82 #define set_Block_cfgpred(node, pos, cfgpred) set_Block_cfgpred_(node, pos, cfgpred)
83 #define get_Block_cfgpred_arr(node) get_Block_cfgpred_arr_(node)
85 #define is_Builtin(node) is_Builtin_(node)
86 #define get_Builtin_kind(node) get_Builtin_kind_(node)
87 #define set_Builtin_kind(node, kind) set_Builtin_kind_(node, kind)
88 #define get_Builtin_type(node) get_Builtin_type_(node)
89 #define set_Builtin_type(node, type) set_Builtin_type_(node, type)
90 #define get_Builtin_mem(node) get_Builtin_mem_(node)
91 #define set_Builtin_mem(node, mem) set_Builtin_mem_(node, mem)
92 #define get_Builtin_n_params(node) get_Builtin_n_params_(node)
93 #define get_Builtin_param(node, pos) get_Builtin_param_(node, pos)
94 #define set_Builtin_param(node, pos, param) set_Builtin_param_(node, pos, param)
95 #define get_Builtin_param_arr(node) get_Builtin_param_arr_(node)
97 #define is_Call(node) is_Call_(node)
98 #define get_Call_type(node) get_Call_type_(node)
99 #define set_Call_type(node, type) set_Call_type_(node, type)
100 #define get_Call_mem(node) get_Call_mem_(node)
101 #define set_Call_mem(node, mem) set_Call_mem_(node, mem)
102 #define get_Call_ptr(node) get_Call_ptr_(node)
103 #define set_Call_ptr(node, ptr) set_Call_ptr_(node, ptr)
104 #define get_Call_n_params(node) get_Call_n_params_(node)
105 #define get_Call_param(node, pos) get_Call_param_(node, pos)
106 #define set_Call_param(node, pos, param) set_Call_param_(node, pos, param)
107 #define get_Call_param_arr(node) get_Call_param_arr_(node)
109 #define is_Cmp(node) is_Cmp_(node)
110 #define get_Cmp_relation(node) get_Cmp_relation_(node)
111 #define set_Cmp_relation(node, relation) set_Cmp_relation_(node, relation)
112 #define get_Cmp_left(node) get_Cmp_left_(node)
113 #define set_Cmp_left(node, left) set_Cmp_left_(node, left)
114 #define get_Cmp_right(node) get_Cmp_right_(node)
115 #define set_Cmp_right(node, right) set_Cmp_right_(node, right)
117 #define is_Cond(node) is_Cond_(node)
118 #define get_Cond_jmp_pred(node) get_Cond_jmp_pred_(node)
119 #define set_Cond_jmp_pred(node, jmp_pred) set_Cond_jmp_pred_(node, jmp_pred)
120 #define get_Cond_selector(node) get_Cond_selector_(node)
121 #define set_Cond_selector(node, selector) set_Cond_selector_(node, selector)
123 #define is_Confirm(node) is_Confirm_(node)
124 #define get_Confirm_relation(node) get_Confirm_relation_(node)
125 #define set_Confirm_relation(node, relation) set_Confirm_relation_(node, relation)
126 #define get_Confirm_value(node) get_Confirm_value_(node)
127 #define set_Confirm_value(node, value) set_Confirm_value_(node, value)
128 #define get_Confirm_bound(node) get_Confirm_bound_(node)
129 #define set_Confirm_bound(node, bound) set_Confirm_bound_(node, bound)
131 #define is_Const(node) is_Const_(node)
132 #define get_Const_tarval(node) get_Const_tarval_(node)
133 #define set_Const_tarval(node, tarval) set_Const_tarval_(node, tarval)
135 #define is_Conv(node) is_Conv_(node)
136 #define get_Conv_op(node) get_Conv_op_(node)
137 #define set_Conv_op(node, op) set_Conv_op_(node, op)
139 #define is_CopyB(node) is_CopyB_(node)
140 #define get_CopyB_type(node) get_CopyB_type_(node)
141 #define set_CopyB_type(node, type) set_CopyB_type_(node, type)
142 #define get_CopyB_volatility(node) get_CopyB_volatility_(node)
143 #define set_CopyB_volatility(node, volatility) set_CopyB_volatility_(node, volatility)
144 #define get_CopyB_mem(node) get_CopyB_mem_(node)
145 #define set_CopyB_mem(node, mem) set_CopyB_mem_(node, mem)
146 #define get_CopyB_dst(node) get_CopyB_dst_(node)
147 #define set_CopyB_dst(node, dst) set_CopyB_dst_(node, dst)
148 #define get_CopyB_src(node) get_CopyB_src_(node)
149 #define set_CopyB_src(node, src) set_CopyB_src_(node, src)
151 #define is_Deleted(node) is_Deleted_(node)
153 #define is_Div(node) is_Div_(node)
154 #define get_Div_resmode(node) get_Div_resmode_(node)
155 #define set_Div_resmode(node, resmode) set_Div_resmode_(node, resmode)
156 #define get_Div_no_remainder(node) get_Div_no_remainder_(node)
157 #define set_Div_no_remainder(node, no_remainder) set_Div_no_remainder_(node, no_remainder)
158 #define get_Div_mem(node) get_Div_mem_(node)
159 #define set_Div_mem(node, mem) set_Div_mem_(node, mem)
160 #define get_Div_left(node) get_Div_left_(node)
161 #define set_Div_left(node, left) set_Div_left_(node, left)
162 #define get_Div_right(node) get_Div_right_(node)
163 #define set_Div_right(node, right) set_Div_right_(node, right)
165 #define is_Dummy(node) is_Dummy_(node)
167 #define is_End(node) is_End_(node)
168 #define get_End_n_keepalives(node) get_End_n_keepalives_(node)
169 #define get_End_keepalive(node, pos) get_End_keepalive_(node, pos)
170 #define set_End_keepalive(node, pos, keepalive) set_End_keepalive_(node, pos, keepalive)
171 #define get_End_keepalive_arr(node) get_End_keepalive_arr_(node)
173 #define is_Eor(node) is_Eor_(node)
174 #define get_Eor_left(node) get_Eor_left_(node)
175 #define set_Eor_left(node, left) set_Eor_left_(node, left)
176 #define get_Eor_right(node) get_Eor_right_(node)
177 #define set_Eor_right(node, right) set_Eor_right_(node, right)
179 #define is_Free(node) is_Free_(node)
180 #define get_Free_mem(node) get_Free_mem_(node)
181 #define set_Free_mem(node, mem) set_Free_mem_(node, mem)
182 #define get_Free_ptr(node) get_Free_ptr_(node)
183 #define set_Free_ptr(node, ptr) set_Free_ptr_(node, ptr)
185 #define is_IJmp(node) is_IJmp_(node)
186 #define get_IJmp_target(node) get_IJmp_target_(node)
187 #define set_IJmp_target(node, target) set_IJmp_target_(node, target)
189 #define is_Id(node) is_Id_(node)
190 #define get_Id_pred(node) get_Id_pred_(node)
191 #define set_Id_pred(node, pred) set_Id_pred_(node, pred)
193 #define is_Jmp(node) is_Jmp_(node)
195 #define is_Load(node) is_Load_(node)
196 #define get_Load_mode(node) get_Load_mode_(node)
197 #define set_Load_mode(node, mode) set_Load_mode_(node, mode)
198 #define get_Load_type(node) get_Load_type_(node)
199 #define set_Load_type(node, type) set_Load_type_(node, type)
200 #define get_Load_volatility(node) get_Load_volatility_(node)
201 #define set_Load_volatility(node, volatility) set_Load_volatility_(node, volatility)
202 #define get_Load_unaligned(node) get_Load_unaligned_(node)
203 #define set_Load_unaligned(node, unaligned) set_Load_unaligned_(node, unaligned)
204 #define get_Load_mem(node) get_Load_mem_(node)
205 #define set_Load_mem(node, mem) set_Load_mem_(node, mem)
206 #define get_Load_ptr(node) get_Load_ptr_(node)
207 #define set_Load_ptr(node, ptr) set_Load_ptr_(node, ptr)
209 #define is_Member(node) is_Member_(node)
210 #define get_Member_entity(node) get_Member_entity_(node)
211 #define set_Member_entity(node, entity) set_Member_entity_(node, entity)
212 #define get_Member_ptr(node) get_Member_ptr_(node)
213 #define set_Member_ptr(node, ptr) set_Member_ptr_(node, ptr)
215 #define is_Minus(node) is_Minus_(node)
216 #define get_Minus_op(node) get_Minus_op_(node)
217 #define set_Minus_op(node, op) set_Minus_op_(node, op)
219 #define is_Mod(node) is_Mod_(node)
220 #define get_Mod_resmode(node) get_Mod_resmode_(node)
221 #define set_Mod_resmode(node, resmode) set_Mod_resmode_(node, resmode)
222 #define get_Mod_mem(node) get_Mod_mem_(node)
223 #define set_Mod_mem(node, mem) set_Mod_mem_(node, mem)
224 #define get_Mod_left(node) get_Mod_left_(node)
225 #define set_Mod_left(node, left) set_Mod_left_(node, left)
226 #define get_Mod_right(node) get_Mod_right_(node)
227 #define set_Mod_right(node, right) set_Mod_right_(node, right)
229 #define is_Mul(node) is_Mul_(node)
230 #define get_Mul_left(node) get_Mul_left_(node)
231 #define set_Mul_left(node, left) set_Mul_left_(node, left)
232 #define get_Mul_right(node) get_Mul_right_(node)
233 #define set_Mul_right(node, right) set_Mul_right_(node, right)
235 #define is_Mulh(node) is_Mulh_(node)
236 #define get_Mulh_left(node) get_Mulh_left_(node)
237 #define set_Mulh_left(node, left) set_Mulh_left_(node, left)
238 #define get_Mulh_right(node) get_Mulh_right_(node)
239 #define set_Mulh_right(node, right) set_Mulh_right_(node, right)
241 #define is_Mux(node) is_Mux_(node)
242 #define get_Mux_sel(node) get_Mux_sel_(node)
243 #define set_Mux_sel(node, sel) set_Mux_sel_(node, sel)
244 #define get_Mux_false(node) get_Mux_false_(node)
245 #define set_Mux_false(node, false_) set_Mux_false_(node, false_)
246 #define get_Mux_true(node) get_Mux_true_(node)
247 #define set_Mux_true(node, true_) set_Mux_true_(node, true_)
249 #define is_NoMem(node) is_NoMem_(node)
251 #define is_Not(node) is_Not_(node)
252 #define get_Not_op(node) get_Not_op_(node)
253 #define set_Not_op(node, op) set_Not_op_(node, op)
255 #define is_Offset(node) is_Offset_(node)
256 #define get_Offset_entity(node) get_Offset_entity_(node)
257 #define set_Offset_entity(node, entity) set_Offset_entity_(node, entity)
259 #define is_Or(node) is_Or_(node)
260 #define get_Or_left(node) get_Or_left_(node)
261 #define set_Or_left(node, left) set_Or_left_(node, left)
262 #define get_Or_right(node) get_Or_right_(node)
263 #define set_Or_right(node, right) set_Or_right_(node, right)
265 #define is_Phi(node) is_Phi_(node)
266 #define get_Phi_loop(node) get_Phi_loop_(node)
267 #define set_Phi_loop(node, loop) set_Phi_loop_(node, loop)
268 #define get_Phi_n_preds(node) get_Phi_n_preds_(node)
269 #define get_Phi_pred(node, pos) get_Phi_pred_(node, pos)
270 #define set_Phi_pred(node, pos, pred) set_Phi_pred_(node, pos, pred)
271 #define get_Phi_pred_arr(node) get_Phi_pred_arr_(node)
273 #define is_Pin(node) is_Pin_(node)
274 #define get_Pin_op(node) get_Pin_op_(node)
275 #define set_Pin_op(node, op) set_Pin_op_(node, op)
277 #define is_Proj(node) is_Proj_(node)
278 #define get_Proj_num(node) get_Proj_num_(node)
279 #define set_Proj_num(node, num) set_Proj_num_(node, num)
280 #define get_Proj_pred(node) get_Proj_pred_(node)
281 #define set_Proj_pred(node, pred) set_Proj_pred_(node, pred)
283 #define is_Raise(node) is_Raise_(node)
284 #define get_Raise_mem(node) get_Raise_mem_(node)
285 #define set_Raise_mem(node, mem) set_Raise_mem_(node, mem)
286 #define get_Raise_exo_ptr(node) get_Raise_exo_ptr_(node)
287 #define set_Raise_exo_ptr(node, exo_ptr) set_Raise_exo_ptr_(node, exo_ptr)
289 #define is_Return(node) is_Return_(node)
290 #define get_Return_mem(node) get_Return_mem_(node)
291 #define set_Return_mem(node, mem) set_Return_mem_(node, mem)
292 #define get_Return_n_ress(node) get_Return_n_ress_(node)
293 #define get_Return_res(node, pos) get_Return_res_(node, pos)
294 #define set_Return_res(node, pos, res) set_Return_res_(node, pos, res)
295 #define get_Return_res_arr(node) get_Return_res_arr_(node)
297 #define is_Sel(node) is_Sel_(node)
298 #define get_Sel_type(node) get_Sel_type_(node)
299 #define set_Sel_type(node, type) set_Sel_type_(node, type)
300 #define get_Sel_ptr(node) get_Sel_ptr_(node)
301 #define set_Sel_ptr(node, ptr) set_Sel_ptr_(node, ptr)
302 #define get_Sel_index(node) get_Sel_index_(node)
303 #define set_Sel_index(node, index) set_Sel_index_(node, index)
305 #define is_Shl(node) is_Shl_(node)
306 #define get_Shl_left(node) get_Shl_left_(node)
307 #define set_Shl_left(node, left) set_Shl_left_(node, left)
308 #define get_Shl_right(node) get_Shl_right_(node)
309 #define set_Shl_right(node, right) set_Shl_right_(node, right)
311 #define is_Shr(node) is_Shr_(node)
312 #define get_Shr_left(node) get_Shr_left_(node)
313 #define set_Shr_left(node, left) set_Shr_left_(node, left)
314 #define get_Shr_right(node) get_Shr_right_(node)
315 #define set_Shr_right(node, right) set_Shr_right_(node, right)
317 #define is_Shrs(node) is_Shrs_(node)
318 #define get_Shrs_left(node) get_Shrs_left_(node)
319 #define set_Shrs_left(node, left) set_Shrs_left_(node, left)
320 #define get_Shrs_right(node) get_Shrs_right_(node)
321 #define set_Shrs_right(node, right) set_Shrs_right_(node, right)
323 #define is_Size(node) is_Size_(node)
324 #define get_Size_type(node) get_Size_type_(node)
325 #define set_Size_type(node, type) set_Size_type_(node, type)
327 #define is_Start(node) is_Start_(node)
329 #define is_Store(node) is_Store_(node)
330 #define get_Store_type(node) get_Store_type_(node)
331 #define set_Store_type(node, type) set_Store_type_(node, type)
332 #define get_Store_volatility(node) get_Store_volatility_(node)
333 #define set_Store_volatility(node, volatility) set_Store_volatility_(node, volatility)
334 #define get_Store_unaligned(node) get_Store_unaligned_(node)
335 #define set_Store_unaligned(node, unaligned) set_Store_unaligned_(node, unaligned)
336 #define get_Store_mem(node) get_Store_mem_(node)
337 #define set_Store_mem(node, mem) set_Store_mem_(node, mem)
338 #define get_Store_ptr(node) get_Store_ptr_(node)
339 #define set_Store_ptr(node, ptr) set_Store_ptr_(node, ptr)
340 #define get_Store_value(node) get_Store_value_(node)
341 #define set_Store_value(node, value) set_Store_value_(node, value)
343 #define is_Sub(node) is_Sub_(node)
344 #define get_Sub_left(node) get_Sub_left_(node)
345 #define set_Sub_left(node, left) set_Sub_left_(node, left)
346 #define get_Sub_right(node) get_Sub_right_(node)
347 #define set_Sub_right(node, right) set_Sub_right_(node, right)
349 #define is_Switch(node) is_Switch_(node)
350 #define get_Switch_n_outs(node) get_Switch_n_outs_(node)
351 #define set_Switch_n_outs(node, n_outs) set_Switch_n_outs_(node, n_outs)
352 #define get_Switch_table(node) get_Switch_table_(node)
353 #define set_Switch_table(node, table) set_Switch_table_(node, table)
354 #define get_Switch_selector(node) get_Switch_selector_(node)
355 #define set_Switch_selector(node, selector) set_Switch_selector_(node, selector)
357 #define is_Sync(node) is_Sync_(node)
358 #define get_Sync_n_preds(node) get_Sync_n_preds_(node)
359 #define get_Sync_pred(node, pos) get_Sync_pred_(node, pos)
360 #define set_Sync_pred(node, pos, pred) set_Sync_pred_(node, pos, pred)
361 #define get_Sync_pred_arr(node) get_Sync_pred_arr_(node)
363 #define is_Tuple(node) is_Tuple_(node)
364 #define get_Tuple_n_preds(node) get_Tuple_n_preds_(node)
365 #define get_Tuple_pred(node, pos) get_Tuple_pred_(node, pos)
366 #define set_Tuple_pred(node, pos, pred) set_Tuple_pred_(node, pos, pred)
367 #define get_Tuple_pred_arr(node) get_Tuple_pred_arr_(node)
369 #define is_Unknown(node) is_Unknown_(node)
372 #define is_entconst(node) is_entconst_(node)
373 #define get_entconst_entity(node) get_entconst_entity_(node)
374 #define set_entconst_entity(node, entity) set_entconst_entity_(node, entity)
375 #define is_typeconst(node) is_typeconst_(node)
376 #define get_typeconst_type(node) get_typeconst_type_(node)
377 #define set_typeconst_type(node, type) set_typeconst_type_(node, type)
378 static inline int is_ASM_(
const ir_node *node)
394 static inline int get_ASM_n_inputs_(
ir_node const *node)
400 static inline ir_node *get_ASM_input_(
ir_node const *node,
int pos)
406 static inline void set_ASM_input_(
ir_node *node,
int pos,
ir_node *input)
415 return get_irn_in(node) + (
n_ASM_max + 1);
418 static inline int is_Add_(
const ir_node *node)
446 static inline int is_Address_(
const ir_node *node)
450 static inline int is_Align_(
const ir_node *node)
454 static inline int is_Alloc_(
const ir_node *node)
482 static inline int is_Anchor_(
const ir_node *node)
492 static inline void set_Anchor_end_block_(
ir_node *node,
ir_node *end_block)
498 static inline ir_node *get_Anchor_start_block_(
const ir_node *node)
504 static inline void set_Anchor_start_block_(
ir_node *node,
ir_node *start_block)
528 static inline void set_Anchor_start_(
ir_node *node,
ir_node *start)
540 static inline void set_Anchor_frame_(
ir_node *node,
ir_node *frame)
546 static inline ir_node *get_Anchor_initial_mem_(
const ir_node *node)
552 static inline void set_Anchor_initial_mem_(
ir_node *node,
ir_node *initial_mem)
576 static inline void set_Anchor_no_mem_(
ir_node *node,
ir_node *no_mem)
582 static inline int is_And_(
const ir_node *node)
610 static inline int is_Bad_(
const ir_node *node)
614 static inline int is_Bitcast_(
const ir_node *node)
630 static inline int is_Block_(
const ir_node *node)
634 static inline int get_Block_n_cfgpreds_(
ir_node const *node)
640 static inline ir_node *get_Block_cfgpred_(
ir_node const *node,
int pos)
646 static inline void set_Block_cfgpred_(
ir_node *node,
int pos,
ir_node *cfgpred)
655 return get_irn_in(node);
658 static inline int is_Builtin_(
const ir_node *node)
674 static inline int get_Builtin_n_params_(
ir_node const *node)
680 static inline ir_node *get_Builtin_param_(
ir_node const *node,
int pos)
686 static inline void set_Builtin_param_(
ir_node *node,
int pos,
ir_node *param)
698 static inline int is_Call_(
const ir_node *node)
726 static inline int get_Call_n_params_(
ir_node const *node)
732 static inline ir_node *get_Call_param_(
ir_node const *node,
int pos)
738 static inline void set_Call_param_(
ir_node *node,
int pos,
ir_node *param)
750 static inline int is_Cmp_(
const ir_node *node)
778 static inline int is_Cond_(
const ir_node *node)
788 static inline void set_Cond_selector_(
ir_node *node,
ir_node *selector)
794 static inline int is_Confirm_(
const ir_node *node)
804 static inline void set_Confirm_value_(
ir_node *node,
ir_node *value)
816 static inline void set_Confirm_bound_(
ir_node *node,
ir_node *bound)
822 static inline int is_Const_(
const ir_node *node)
826 static inline int is_Conv_(
const ir_node *node)
842 static inline int is_CopyB_(
const ir_node *node)
882 static inline int is_Deleted_(
const ir_node *node)
886 static inline int is_Div_(
const ir_node *node)
926 static inline int is_Dummy_(
const ir_node *node)
930 static inline int is_End_(
const ir_node *node)
934 static inline int get_End_n_keepalives_(
ir_node const *node)
940 static inline ir_node *get_End_keepalive_(
ir_node const *node,
int pos)
946 static inline void set_End_keepalive_(
ir_node *node,
int pos,
ir_node *keepalive)
955 return get_irn_in(node);
958 static inline int is_Eor_(
const ir_node *node)
986 static inline int is_Free_(
const ir_node *node)
1014 static inline int is_IJmp_(
const ir_node *node)
1024 static inline void set_IJmp_target_(
ir_node *node,
ir_node *target)
1030 static inline int is_Id_(
const ir_node *node)
1036 assert(
is_Id(node));
1042 assert(
is_Id(node));
1046 static inline int is_Jmp_(
const ir_node *node)
1050 static inline int is_Load_(
const ir_node *node)
1078 static inline int is_Member_(
const ir_node *node)
1094 static inline int is_Minus_(
const ir_node *node)
1110 static inline int is_Mod_(
const ir_node *node)
1150 static inline int is_Mul_(
const ir_node *node)
1178 static inline int is_Mulh_(
const ir_node *node)
1200 static inline void set_Mulh_right_(
ir_node *node,
ir_node *right)
1206 static inline int is_Mux_(
const ir_node *node)
1228 static inline void set_Mux_false_(
ir_node *node,
ir_node *false_)
1246 static inline int is_NoMem_(
const ir_node *node)
1250 static inline int is_Not_(
const ir_node *node)
1266 static inline int is_Offset_(
const ir_node *node)
1270 static inline int is_Or_(
const ir_node *node)
1276 assert(
is_Or(node));
1282 assert(
is_Or(node));
1288 assert(
is_Or(node));
1294 assert(
is_Or(node));
1298 static inline int is_Phi_(
const ir_node *node)
1302 static inline int get_Phi_n_preds_(
ir_node const *node)
1308 static inline ir_node *get_Phi_pred_(
ir_node const *node,
int pos)
1314 static inline void set_Phi_pred_(
ir_node *node,
int pos,
ir_node *pred)
1323 return get_irn_in(node);
1326 static inline int is_Pin_(
const ir_node *node)
1342 static inline int is_Proj_(
const ir_node *node)
1358 static inline int is_Raise_(
const ir_node *node)
1380 static inline void set_Raise_exo_ptr_(
ir_node *node,
ir_node *exo_ptr)
1386 static inline int is_Return_(
const ir_node *node)
1402 static inline int get_Return_n_ress_(
ir_node const *node)
1408 static inline ir_node *get_Return_res_(
ir_node const *node,
int pos)
1414 static inline void set_Return_res_(
ir_node *node,
int pos,
ir_node *res)
1426 static inline int is_Sel_(
const ir_node *node)
1454 static inline int is_Shl_(
const ir_node *node)
1482 static inline int is_Shr_(
const ir_node *node)
1510 static inline int is_Shrs_(
const ir_node *node)
1532 static inline void set_Shrs_right_(
ir_node *node,
ir_node *right)
1538 static inline int is_Size_(
const ir_node *node)
1542 static inline int is_Start_(
const ir_node *node)
1546 static inline int is_Store_(
const ir_node *node)
1580 static inline void set_Store_value_(
ir_node *node,
ir_node *value)
1586 static inline int is_Sub_(
const ir_node *node)
1614 static inline int is_Switch_(
const ir_node *node)
1624 static inline void set_Switch_selector_(
ir_node *node,
ir_node *selector)
1630 static inline int is_Sync_(
const ir_node *node)
1634 static inline int get_Sync_n_preds_(
ir_node const *node)
1640 static inline ir_node *get_Sync_pred_(
ir_node const *node,
int pos)
1646 static inline void set_Sync_pred_(
ir_node *node,
int pos,
ir_node *pred)
1655 return get_irn_in(node);
1658 static inline int is_Tuple_(
const ir_node *node)
1662 static inline int get_Tuple_n_preds_(
ir_node const *node)
1668 static inline ir_node *get_Tuple_pred_(
ir_node const *node,
int pos)
1674 static inline void set_Tuple_pred_(
ir_node *node,
int pos,
ir_node *pred)
1683 return get_irn_in(node);
1686 static inline int is_Unknown_(
const ir_node *node)
1690 static inline int is_entconst_(
const ir_node *node)
1696 static inline int is_typeconst_(
const ir_node *node)
1705 return node->attr.assem.input_constraints;
1711 node->attr.assem.input_constraints = input_constraints;
1717 return node->attr.assem.output_constraints;
1723 node->attr.assem.output_constraints = output_constraints;
1726 static inline ident** get_ASM_clobbers_(
const ir_node *node)
1729 return node->attr.assem.clobbers;
1732 static inline void set_ASM_clobbers_(
ir_node *node,
ident** clobbers)
1735 node->attr.assem.clobbers = clobbers;
1738 static inline ident* get_ASM_text_(
const ir_node *node)
1741 return node->attr.assem.text;
1744 static inline void set_ASM_text_(
ir_node *node,
ident* text)
1747 node->attr.assem.text = text;
1753 return node->attr.entc.entity;
1759 node->attr.entc.entity = entity;
1765 return node->attr.typec.type;
1771 node->attr.typec.type = type;
1774 static inline unsigned get_Alloc_alignment_(
const ir_node *node)
1777 return node->attr.alloc.alignment;
1780 static inline void set_Alloc_alignment_(
ir_node *node,
unsigned alignment)
1783 node->attr.alloc.alignment = alignment;
1789 return node->attr.block.entity;
1795 node->attr.block.entity = entity;
1801 return node->attr.builtin.kind;
1807 node->attr.builtin.kind = kind;
1813 return node->attr.builtin.type;
1816 static inline void set_Builtin_type_(
ir_node *node,
ir_type* type)
1819 node->attr.builtin.type = type;
1825 return node->attr.call.type;
1831 node->attr.call.type = type;
1837 return node->attr.cmp.relation;
1843 node->attr.cmp.relation = relation;
1849 return node->attr.cond.jmp_pred;
1855 node->attr.cond.jmp_pred = jmp_pred;
1861 return node->attr.confirm.relation;
1867 node->attr.confirm.relation = relation;
1873 return node->attr.con.tarval;
1879 node->attr.con.tarval = tarval;
1885 return node->attr.copyb.type;
1891 node->attr.copyb.type = type;
1894 static inline ir_volatility get_CopyB_volatility_(
const ir_node *node)
1897 return node->attr.copyb.volatility;
1900 static inline void set_CopyB_volatility_(
ir_node *node, ir_volatility volatility)
1903 node->attr.copyb.volatility = volatility;
1909 return node->attr.div.resmode;
1912 static inline void set_Div_resmode_(
ir_node *node,
ir_mode* resmode)
1915 node->attr.div.resmode = resmode;
1918 static inline int get_Div_no_remainder_(
const ir_node *node)
1921 return node->attr.div.no_remainder;
1924 static inline void set_Div_no_remainder_(
ir_node *node,
int no_remainder)
1927 node->attr.div.no_remainder = no_remainder;
1933 return node->attr.load.mode;
1939 node->attr.load.mode = mode;
1945 return node->attr.load.type;
1951 node->attr.load.type = type;
1954 static inline ir_volatility get_Load_volatility_(
const ir_node *node)
1957 return node->attr.load.volatility;
1960 static inline void set_Load_volatility_(
ir_node *node, ir_volatility volatility)
1963 node->attr.load.volatility = volatility;
1966 static inline ir_align get_Load_unaligned_(
const ir_node *node)
1969 return node->attr.load.unaligned;
1972 static inline void set_Load_unaligned_(
ir_node *node, ir_align unaligned)
1975 node->attr.load.unaligned = unaligned;
1981 return node->attr.member.entity;
1987 node->attr.member.entity = entity;
1993 return node->attr.mod.resmode;
1996 static inline void set_Mod_resmode_(
ir_node *node,
ir_mode* resmode)
1999 node->attr.mod.resmode = resmode;
2005 return node->attr.entc.entity;
2011 node->attr.entc.entity = entity;
2014 static inline int get_Phi_loop_(
const ir_node *node)
2017 return node->attr.phi.loop;
2020 static inline void set_Phi_loop_(
ir_node *node,
int loop)
2023 node->attr.phi.loop = loop;
2026 static inline unsigned get_Proj_num_(
const ir_node *node)
2029 return node->attr.proj.num;
2032 static inline void set_Proj_num_(
ir_node *node,
unsigned num)
2035 node->attr.proj.num = num;
2041 return node->attr.sel.type;
2047 node->attr.sel.type = type;
2053 return node->attr.typec.type;
2059 node->attr.typec.type = type;
2065 return node->attr.store.type;
2071 node->attr.store.type = type;
2074 static inline ir_volatility get_Store_volatility_(
const ir_node *node)
2077 return node->attr.store.volatility;
2080 static inline void set_Store_volatility_(
ir_node *node, ir_volatility volatility)
2083 node->attr.store.volatility = volatility;
2086 static inline ir_align get_Store_unaligned_(
const ir_node *node)
2089 return node->attr.store.unaligned;
2092 static inline void set_Store_unaligned_(
ir_node *node, ir_align unaligned)
2095 node->attr.store.unaligned = unaligned;
2098 static inline unsigned get_Switch_n_outs_(
const ir_node *node)
2101 return node->attr.switcha.n_outs;
2104 static inline void set_Switch_n_outs_(
ir_node *node,
unsigned n_outs)
2107 node->attr.switcha.n_outs = n_outs;
2113 return node->attr.switcha.table;
2119 node->attr.switcha.table = table;
2125 return node->attr.entc.entity;
2131 node->attr.entc.entity = entity;
2137 return node->attr.typec.type;
2140 static inline void set_typeconst_type_(
ir_node *node,
ir_type* type)
2143 node->attr.typec.type = type;
2145 void ir_init_opcodes(
void);
2146 void ir_finish_opcodes(
void);
int is_Offset(const ir_node *node)
Test if node is a Offset.
ir_op * op_Shl
Shl opcode.
ir_op * op_Unknown
Unknown opcode.
int is_Div(const ir_node *node)
Test if node is a Div.
ir_op * op_Sync
Sync opcode.
ir_op * op_Sel
Sel opcode.
ir_op * op_Start
Start opcode.
int get_Tuple_n_preds(ir_node const *node)
Get the number of Tuple preds.
struct ir_type ir_type
Type.
ir_op * op_Size
Size opcode.
ir_op * op_Tuple
Tuple opcode.
ir_op * op_NoMem
NoMem opcode.
the only NoMem node of this ir_graph
block the start node belongs to
ir_op * op_Proj
Proj opcode.
ir_op * op_Eor
Eor opcode.
ir_op * op_Bitcast
Bitcast opcode.
ir_builtin_kind
Supported libFirm builtins.
ir_op * op_Anchor
Anchor opcode.
int is_Phi(const ir_node *node)
Test if node is a Phi.
size of the block in bytes
int get_End_n_keepalives(ir_node const *node)
Get the number of End keepalives.
ir_op * op_Sub
Sub opcode.
ir_op * op_Phi
Phi opcode.
int get_Call_n_params(ir_node const *node)
Get the number of Call params.
int get_irn_arity(const ir_node *node)
Returns the number of predecessors without the block predecessor.
ir_op * op_IJmp
IJmp opcode.
int is_Address(const ir_node *node)
Test if node is a Address.
value to express a constraint for
int is_Not(const ir_node *node)
Test if node is a Not.
ir_op * op_Add
Add opcode.
int is_Pin(const ir_node *node)
Test if node is a Pin.
the tuple value from which a part is extracted
ir_op * op_Jmp
Jmp opcode.
start node of this ir_graph
void set_irn_n(ir_node *node, int n, ir_node *in)
Replaces the n-th predecessor of a node with a new one.
int is_Id(const ir_node *node)
Test if node is a Id.
ir_op * op_Call
Call opcode.
ir_op * op_Shrs
Shrs opcode.
int is_Free(const ir_node *node)
Test if node is a Free.
int is_typeconst(const ir_node *node)
Test if node is a typeconst.
ir_op * op_Return
Return opcode.
int is_Builtin(const ir_node *node)
Test if node is a Builtin.
int is_Add(const ir_node *node)
Test if node is a Add.
ir_op * op_Switch
Switch opcode.
ir_op * op_Free
Free opcode.
int is_Store(const ir_node *node)
Test if node is a Store.
int is_Size(const ir_node *node)
Test if node is a Size.
int get_Return_n_ress(ir_node const *node)
Get the number of Return ress.
ir_op * op_CopyB
CopyB opcode.
ir_op * op_Div
Div opcode.
end node of this ir_graph
int is_Confirm(const ir_node *node)
Test if node is a Confirm.
int is_Raise(const ir_node *node)
Test if node is a Raise.
int is_Switch(const ir_node *node)
Test if node is a Switch.
ir_op * op_Builtin
Builtin opcode.
int is_Sync(const ir_node *node)
Test if node is a Sync.
ir_op * op_Cmp
Cmp opcode.
ir_op * op_Not
Not opcode.
ir_op * op_Load
Load opcode.
cond_jmp_predicate
A type to express conditional jump predictions.
int is_Shr(const ir_node *node)
Test if node is a Shr.
ir_op * op_End
End opcode.
ir_op * op_Block
Block opcode.
int is_Sel(const ir_node *node)
Test if node is a Sel.
int is_Mulh(const ir_node *node)
Test if node is a Mulh.
int is_Mul(const ir_node *node)
Test if node is a Mul.
ir_op * op_Bad
Bad opcode.
int is_Conv(const ir_node *node)
Test if node is a Conv.
ir_op * op_Confirm
Confirm opcode.
argument proj of the start node
int is_Mux(const ir_node *node)
Test if node is a Mux.
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.
A input/output constraint attribute.
ir_op * op_ASM
ASM opcode.
int is_Block(const ir_node *node)
Test if node is a Block.
pointer to object to select from
int is_Call(const ir_node *node)
Test if node is a Call.
ir_op * get_irn_op(const ir_node *node)
Returns the opcode struct of the node.
ir_op * op_Pin
Pin opcode.
ir_op * op_Mul
Mul opcode.
int is_CopyB(const ir_node *node)
Test if node is a CopyB.
initial memory of this ir_graph
int is_Shrs(const ir_node *node)
Test if node is a Shrs.
ir_op * op_Mux
Mux opcode.
block the end node belongs to
int is_IJmp(const ir_node *node)
Test if node is a IJmp.
struct ir_entity ir_entity
Entity.
ir_op * op_Const
Const opcode.
int get_Phi_n_preds(ir_node const *node)
Get the number of Phi preds.
ir_op * op_Cond
Cond opcode.
ir_op * op_Deleted
Deleted opcode.
int is_entconst(const ir_node *node)
Test if node is a entconst.
int is_Minus(const ir_node *node)
Test if node is a Minus.
int is_Const(const ir_node *node)
Test if node is a Const.
pointer to the object to free
struct ir_tarval ir_tarval
Target Machine Value.
int is_And(const ir_node *node)
Test if node is a And.
ir_op * op_Offset
Offset opcode.
ir_op * op_And
And opcode.
int is_End(const ir_node *node)
Test if node is a End.
target address of the jump
ir_op * op_Raise
Raise opcode.
ir_relation
Relations for comparing numbers.
ir_op * op_Align
Align opcode.
ir_op * op_Minus
Minus opcode.
ir_op * op_Store
Store opcode.
int is_ASM(const ir_node *node)
Test if node is a ASM.
int is_Mod(const ir_node *node)
Test if node is a Mod.
int is_Shl(const ir_node *node)
Test if node is a Shl.
ir_op * op_Shr
Shr opcode.
int is_Load(const ir_node *node)
Test if node is a Load.
struct ir_mode ir_mode
SSA Value mode.
struct ir_node ir_node
Procedure Graph Node.
ir_op * op_Member
Member opcode.
int is_Align(const ir_node *node)
Test if node is a Align.
ir_op * op_Conv
Conv opcode.
ir_op * op_Dummy
Dummy opcode.
selected if sel input is false
int get_Builtin_n_params(ir_node const *node)
Get the number of Builtin params.
the value which is returned unchanged
int is_Cond(const ir_node *node)
Test if node is a Cond.
int is_Return(const ir_node *node)
Test if node is a Return.
int is_Eor(const ir_node *node)
Test if node is a Eor.
int is_Anchor(const ir_node *node)
Test if node is a Anchor.
const char ident
Identifier.
int is_Tuple(const ir_node *node)
Test if node is a Tuple.
pointer to array to select from
ir_op * op_Alloc
Alloc opcode.
int is_Proj(const ir_node *node)
Test if node is a Proj.
int is_Sub(const ir_node *node)
Test if node is a Sub.
pointer to exception object to be thrown
ir_node * get_irn_n(const ir_node *node, int n)
Returns the n-th predecessor of a node.
selected if sel input is true
int is_Alloc(const ir_node *node)
Test if node is a Alloc.
int is_Cmp(const ir_node *node)
Test if node is a Cmp.
ir_op * op_Mod
Mod opcode.
value making the output selection
ir_op * op_Address
Address opcode.
int is_Member(const ir_node *node)
Test if node is a Member.
int is_Or(const ir_node *node)
Test if node is a Or.
int get_ASM_n_inputs(ir_node const *node)
Get the number of ASM inputs.
ir_op * op_Mulh
Mulh opcode.
int get_Sync_n_preds(ir_node const *node)
Get the number of Sync preds.
int is_Bitcast(const ir_node *node)
Test if node is a Bitcast.
int get_Block_n_cfgpreds(ir_node const *node)
Get the number of Block cfgpreds.