4 static ir_node *read_Add(read_env_t *env)
6 ir_node *block = read_node_ref(env);
7 ir_node *irn_left = read_node_ref(env);
8 ir_node *irn_right = read_node_ref(env);
13 static ir_node *read_Address(read_env_t *env)
20 static ir_node *read_Align(read_env_t *env)
22 ir_mode *mode = read_mode_ref(env);
23 ir_type* type = read_type_ref(env);
28 static ir_node *read_Alloc(read_env_t *env)
30 ir_node *block = read_node_ref(env);
31 ir_node *irn_mem = read_node_ref(env);
32 ir_node *irn_size = read_node_ref(env);
33 unsigned alignment = read_unsigned(env);
38 static ir_node *read_And(read_env_t *env)
40 ir_node *block = read_node_ref(env);
41 ir_node *irn_left = read_node_ref(env);
42 ir_node *irn_right = read_node_ref(env);
47 static ir_node *read_Bad(read_env_t *env)
49 ir_mode *mode = read_mode_ref(env);
54 static ir_node *read_Bitcast(read_env_t *env)
56 ir_node *block = read_node_ref(env);
57 ir_node *irn_op = read_node_ref(env);
58 ir_mode *mode = read_mode_ref(env);
63 static ir_node *read_Builtin(read_env_t *env)
65 ir_node *block = read_node_ref(env);
66 ir_node *irn_mem = read_node_ref(env);
68 ir_type* type = read_type_ref(env);
69 int pinned = read_pinned(env);
70 int arity = read_preds(env);
73 obstack_free(&env->preds_obst, in);
78 static ir_node *read_Call(read_env_t *env)
80 ir_node *block = read_node_ref(env);
81 ir_node *irn_mem = read_node_ref(env);
82 ir_node *irn_ptr = read_node_ref(env);
83 ir_type* type = read_type_ref(env);
84 int pinned = read_pinned(env);
85 bool throws = read_throws(env);
86 int arity = read_preds(env);
89 obstack_free(&env->preds_obst, in);
95 static ir_node *read_Cmp(read_env_t *env)
97 ir_node *block = read_node_ref(env);
98 ir_node *irn_left = read_node_ref(env);
99 ir_node *irn_right = read_node_ref(env);
105 static ir_node *read_Cond(read_env_t *env)
107 ir_node *block = read_node_ref(env);
108 ir_node *irn_selector = read_node_ref(env);
115 static ir_node *read_Confirm(read_env_t *env)
117 ir_node *block = read_node_ref(env);
118 ir_node *irn_value = read_node_ref(env);
119 ir_node *irn_bound = read_node_ref(env);
125 static ir_node *read_Const(read_env_t *env)
127 ir_tarval* tarval = read_tarval_ref(env);
132 static ir_node *read_Conv(read_env_t *env)
134 ir_node *block = read_node_ref(env);
135 ir_node *irn_op = read_node_ref(env);
136 ir_mode *mode = read_mode_ref(env);
141 static ir_node *read_CopyB(read_env_t *env)
143 ir_node *block = read_node_ref(env);
144 ir_node *irn_mem = read_node_ref(env);
145 ir_node *irn_dst = read_node_ref(env);
146 ir_node *irn_src = read_node_ref(env);
147 ir_type* type = read_type_ref(env);
148 ir_volatility volatility = read_volatility(env);
156 static ir_node *read_Div(read_env_t *env)
158 ir_node *block = read_node_ref(env);
159 ir_node *irn_mem = read_node_ref(env);
160 ir_node *irn_left = read_node_ref(env);
161 ir_node *irn_right = read_node_ref(env);
162 ir_mode* resmode = read_mode_ref(env);
163 int no_remainder = read_int(env);
164 int pinned = read_pinned(env);
165 bool throws = read_throws(env);
174 static ir_node *read_Dummy(read_env_t *env)
176 ir_mode *mode = read_mode_ref(env);
181 static ir_node *read_End(read_env_t *env)
183 int arity = read_preds(env);
186 obstack_free(&env->preds_obst, in);
190 static ir_node *read_Eor(read_env_t *env)
192 ir_node *block = read_node_ref(env);
193 ir_node *irn_left = read_node_ref(env);
194 ir_node *irn_right = read_node_ref(env);
199 static ir_node *read_Free(read_env_t *env)
201 ir_node *block = read_node_ref(env);
202 ir_node *irn_mem = read_node_ref(env);
203 ir_node *irn_ptr = read_node_ref(env);
208 static ir_node *read_IJmp(read_env_t *env)
210 ir_node *block = read_node_ref(env);
211 ir_node *irn_target = read_node_ref(env);
216 static ir_node *read_Jmp(read_env_t *env)
218 ir_node *block = read_node_ref(env);
223 static ir_node *read_Load(read_env_t *env)
225 ir_node *block = read_node_ref(env);
226 ir_node *irn_mem = read_node_ref(env);
227 ir_node *irn_ptr = read_node_ref(env);
228 ir_mode* mode = read_mode_ref(env);
229 ir_type* type = read_type_ref(env);
230 ir_volatility volatility = read_volatility(env);
231 ir_align unaligned = read_align(env);
232 int pinned = read_pinned(env);
233 bool throws = read_throws(env);
247 static ir_node *read_Member(read_env_t *env)
249 ir_node *block = read_node_ref(env);
250 ir_node *irn_ptr = read_node_ref(env);
251 ir_entity* entity = read_entity_ref(env);
256 static ir_node *read_Minus(read_env_t *env)
258 ir_node *block = read_node_ref(env);
259 ir_node *irn_op = read_node_ref(env);
264 static ir_node *read_Mod(read_env_t *env)
266 ir_node *block = read_node_ref(env);
267 ir_node *irn_mem = read_node_ref(env);
268 ir_node *irn_left = read_node_ref(env);
269 ir_node *irn_right = read_node_ref(env);
270 ir_mode* resmode = read_mode_ref(env);
271 int pinned = read_pinned(env);
272 bool throws = read_throws(env);
280 static ir_node *read_Mul(read_env_t *env)
282 ir_node *block = read_node_ref(env);
283 ir_node *irn_left = read_node_ref(env);
284 ir_node *irn_right = read_node_ref(env);
289 static ir_node *read_Mulh(read_env_t *env)
291 ir_node *block = read_node_ref(env);
292 ir_node *irn_left = read_node_ref(env);
293 ir_node *irn_right = read_node_ref(env);
298 static ir_node *read_Mux(read_env_t *env)
300 ir_node *block = read_node_ref(env);
301 ir_node *irn_sel = read_node_ref(env);
302 ir_node *irn_false = read_node_ref(env);
303 ir_node *irn_true = read_node_ref(env);
308 static ir_node *read_NoMem(read_env_t *env)
314 static ir_node *read_Not(read_env_t *env)
316 ir_node *block = read_node_ref(env);
317 ir_node *irn_op = read_node_ref(env);
322 static ir_node *read_Offset(read_env_t *env)
324 ir_mode *mode = read_mode_ref(env);
325 ir_entity* entity = read_entity_ref(env);
330 static ir_node *read_Or(read_env_t *env)
332 ir_node *block = read_node_ref(env);
333 ir_node *irn_left = read_node_ref(env);
334 ir_node *irn_right = read_node_ref(env);
339 static ir_node *read_Pin(read_env_t *env)
341 ir_node *block = read_node_ref(env);
342 ir_node *irn_op = read_node_ref(env);
347 static ir_node *read_Proj(read_env_t *env)
349 ir_node *irn_pred = read_node_ref(env);
350 ir_mode *mode = read_mode_ref(env);
351 unsigned num = read_unsigned(env);
356 static ir_node *read_Raise(read_env_t *env)
358 ir_node *block = read_node_ref(env);
359 ir_node *irn_mem = read_node_ref(env);
360 ir_node *irn_exo_ptr = read_node_ref(env);
365 static ir_node *read_Return(read_env_t *env)
367 ir_node *block = read_node_ref(env);
368 ir_node *irn_mem = read_node_ref(env);
369 int arity = read_preds(env);
372 obstack_free(&env->preds_obst, in);
376 static ir_node *read_Sel(read_env_t *env)
378 ir_node *block = read_node_ref(env);
379 ir_node *irn_ptr = read_node_ref(env);
380 ir_node *irn_index = read_node_ref(env);
381 ir_type* type = read_type_ref(env);
386 static ir_node *read_Shl(read_env_t *env)
388 ir_node *block = read_node_ref(env);
389 ir_node *irn_left = read_node_ref(env);
390 ir_node *irn_right = read_node_ref(env);
395 static ir_node *read_Shr(read_env_t *env)
397 ir_node *block = read_node_ref(env);
398 ir_node *irn_left = read_node_ref(env);
399 ir_node *irn_right = read_node_ref(env);
404 static ir_node *read_Shrs(read_env_t *env)
406 ir_node *block = read_node_ref(env);
407 ir_node *irn_left = read_node_ref(env);
408 ir_node *irn_right = read_node_ref(env);
413 static ir_node *read_Size(read_env_t *env)
415 ir_mode *mode = read_mode_ref(env);
416 ir_type* type = read_type_ref(env);
421 static ir_node *read_Start(read_env_t *env)
427 static ir_node *read_Store(read_env_t *env)
429 ir_node *block = read_node_ref(env);
430 ir_node *irn_mem = read_node_ref(env);
431 ir_node *irn_ptr = read_node_ref(env);
432 ir_node *irn_value = read_node_ref(env);
433 ir_type* type = read_type_ref(env);
434 ir_volatility volatility = read_volatility(env);
435 ir_align unaligned = read_align(env);
436 int pinned = read_pinned(env);
437 bool throws = read_throws(env);
451 static ir_node *read_Sub(read_env_t *env)
453 ir_node *block = read_node_ref(env);
454 ir_node *irn_left = read_node_ref(env);
455 ir_node *irn_right = read_node_ref(env);
460 static ir_node *read_Switch(read_env_t *env)
462 ir_node *block = read_node_ref(env);
463 ir_node *irn_selector = read_node_ref(env);
464 unsigned n_outs = read_unsigned(env);
470 static ir_node *read_Sync(read_env_t *env)
472 ir_node *block = read_node_ref(env);
473 int arity = read_preds(env);
476 obstack_free(&env->preds_obst, in);
480 static ir_node *read_Tuple(read_env_t *env)
482 ir_node *block = read_node_ref(env);
483 int arity = read_preds(env);
486 obstack_free(&env->preds_obst, in);
490 static ir_node *read_Unknown(read_env_t *env)
492 ir_mode *mode = read_mode_ref(env);
497 static void write_Add(write_env_t *env,
const ir_node *node)
499 write_symbol(env,
"Add");
500 write_node_nr(env, node);
506 static void write_Address(write_env_t *env,
const ir_node *node)
508 write_symbol(env,
"Address");
509 write_node_nr(env, node);
513 static void write_Align(write_env_t *env,
const ir_node *node)
515 write_symbol(env,
"Align");
516 write_node_nr(env, node);
521 static void write_Alloc(write_env_t *env,
const ir_node *node)
523 write_symbol(env,
"Alloc");
524 write_node_nr(env, node);
531 static void write_And(write_env_t *env,
const ir_node *node)
533 write_symbol(env,
"And");
534 write_node_nr(env, node);
540 static void write_Bad(write_env_t *env,
const ir_node *node)
542 write_symbol(env,
"Bad");
543 write_node_nr(env, node);
547 static void write_Bitcast(write_env_t *env,
const ir_node *node)
549 write_symbol(env,
"Bitcast");
550 write_node_nr(env, node);
556 static void write_Builtin(write_env_t *env,
const ir_node *node)
558 write_symbol(env,
"Builtin");
559 write_node_nr(env, node);
568 static void write_Call(write_env_t *env,
const ir_node *node)
570 write_symbol(env,
"Call");
571 write_node_nr(env, node);
581 static void write_Cmp(write_env_t *env,
const ir_node *node)
583 write_symbol(env,
"Cmp");
584 write_node_nr(env, node);
591 static void write_Cond(write_env_t *env,
const ir_node *node)
593 write_symbol(env,
"Cond");
594 write_node_nr(env, node);
600 static void write_Confirm(write_env_t *env,
const ir_node *node)
602 write_symbol(env,
"Confirm");
603 write_node_nr(env, node);
610 static void write_Const(write_env_t *env,
const ir_node *node)
612 write_symbol(env,
"Const");
613 write_node_nr(env, node);
617 static void write_Conv(write_env_t *env,
const ir_node *node)
619 write_symbol(env,
"Conv");
620 write_node_nr(env, node);
626 static void write_CopyB(write_env_t *env,
const ir_node *node)
628 write_symbol(env,
"CopyB");
629 write_node_nr(env, node);
638 static void write_Div(write_env_t *env,
const ir_node *node)
640 write_symbol(env,
"Div");
641 write_node_nr(env, node);
652 static void write_Dummy(write_env_t *env,
const ir_node *node)
654 write_symbol(env,
"Dummy");
655 write_node_nr(env, node);
659 static void write_End(write_env_t *env,
const ir_node *node)
661 write_symbol(env,
"End");
662 write_node_nr(env, node);
663 write_pred_refs(env, node, 0);
666 static void write_Eor(write_env_t *env,
const ir_node *node)
668 write_symbol(env,
"Eor");
669 write_node_nr(env, node);
675 static void write_Free(write_env_t *env,
const ir_node *node)
677 write_symbol(env,
"Free");
678 write_node_nr(env, node);
684 static void write_IJmp(write_env_t *env,
const ir_node *node)
686 write_symbol(env,
"IJmp");
687 write_node_nr(env, node);
692 static void write_Jmp(write_env_t *env,
const ir_node *node)
694 write_symbol(env,
"Jmp");
695 write_node_nr(env, node);
699 static void write_Load(write_env_t *env,
const ir_node *node)
701 write_symbol(env,
"Load");
702 write_node_nr(env, node);
714 static void write_Member(write_env_t *env,
const ir_node *node)
716 write_symbol(env,
"Member");
717 write_node_nr(env, node);
723 static void write_Minus(write_env_t *env,
const ir_node *node)
725 write_symbol(env,
"Minus");
726 write_node_nr(env, node);
731 static void write_Mod(write_env_t *env,
const ir_node *node)
733 write_symbol(env,
"Mod");
734 write_node_nr(env, node);
744 static void write_Mul(write_env_t *env,
const ir_node *node)
746 write_symbol(env,
"Mul");
747 write_node_nr(env, node);
753 static void write_Mulh(write_env_t *env,
const ir_node *node)
755 write_symbol(env,
"Mulh");
756 write_node_nr(env, node);
762 static void write_Mux(write_env_t *env,
const ir_node *node)
764 write_symbol(env,
"Mux");
765 write_node_nr(env, node);
772 static void write_NoMem(write_env_t *env,
const ir_node *node)
774 write_symbol(env,
"NoMem");
775 write_node_nr(env, node);
778 static void write_Not(write_env_t *env,
const ir_node *node)
780 write_symbol(env,
"Not");
781 write_node_nr(env, node);
786 static void write_Offset(write_env_t *env,
const ir_node *node)
788 write_symbol(env,
"Offset");
789 write_node_nr(env, node);
794 static void write_Or(write_env_t *env,
const ir_node *node)
796 write_symbol(env,
"Or");
797 write_node_nr(env, node);
803 static void write_Pin(write_env_t *env,
const ir_node *node)
805 write_symbol(env,
"Pin");
806 write_node_nr(env, node);
811 static void write_Proj(write_env_t *env,
const ir_node *node)
813 write_symbol(env,
"Proj");
814 write_node_nr(env, node);
820 static void write_Raise(write_env_t *env,
const ir_node *node)
822 write_symbol(env,
"Raise");
823 write_node_nr(env, node);
829 static void write_Return(write_env_t *env,
const ir_node *node)
831 write_symbol(env,
"Return");
832 write_node_nr(env, node);
838 static void write_Sel(write_env_t *env,
const ir_node *node)
840 write_symbol(env,
"Sel");
841 write_node_nr(env, node);
848 static void write_Shl(write_env_t *env,
const ir_node *node)
850 write_symbol(env,
"Shl");
851 write_node_nr(env, node);
857 static void write_Shr(write_env_t *env,
const ir_node *node)
859 write_symbol(env,
"Shr");
860 write_node_nr(env, node);
866 static void write_Shrs(write_env_t *env,
const ir_node *node)
868 write_symbol(env,
"Shrs");
869 write_node_nr(env, node);
875 static void write_Size(write_env_t *env,
const ir_node *node)
877 write_symbol(env,
"Size");
878 write_node_nr(env, node);
883 static void write_Start(write_env_t *env,
const ir_node *node)
885 write_symbol(env,
"Start");
886 write_node_nr(env, node);
889 static void write_Store(write_env_t *env,
const ir_node *node)
891 write_symbol(env,
"Store");
892 write_node_nr(env, node);
904 static void write_Sub(write_env_t *env,
const ir_node *node)
906 write_symbol(env,
"Sub");
907 write_node_nr(env, node);
913 static void write_Switch(write_env_t *env,
const ir_node *node)
915 write_symbol(env,
"Switch");
916 write_node_nr(env, node);
923 static void write_Sync(write_env_t *env,
const ir_node *node)
925 write_symbol(env,
"Sync");
926 write_node_nr(env, node);
928 write_pred_refs(env, node, 0);
931 static void write_Tuple(write_env_t *env,
const ir_node *node)
933 write_symbol(env,
"Tuple");
934 write_node_nr(env, node);
936 write_pred_refs(env, node, 0);
939 static void write_Unknown(write_env_t *env,
const ir_node *node)
941 write_symbol(env,
"Unknown");
942 write_node_nr(env, node);
947 void register_generated_node_readers(
void)
949 register_node_reader(
"Add", read_Add);
950 register_node_reader(
"Address", read_Address);
951 register_node_reader(
"Align", read_Align);
952 register_node_reader(
"Alloc", read_Alloc);
953 register_node_reader(
"And", read_And);
954 register_node_reader(
"Bad", read_Bad);
955 register_node_reader(
"Bitcast", read_Bitcast);
956 register_node_reader(
"Builtin", read_Builtin);
957 register_node_reader(
"Call", read_Call);
958 register_node_reader(
"Cmp", read_Cmp);
959 register_node_reader(
"Cond", read_Cond);
960 register_node_reader(
"Confirm", read_Confirm);
961 register_node_reader(
"Const", read_Const);
962 register_node_reader(
"Conv", read_Conv);
963 register_node_reader(
"CopyB", read_CopyB);
964 register_node_reader(
"Div", read_Div);
965 register_node_reader(
"Dummy", read_Dummy);
966 register_node_reader(
"End", read_End);
967 register_node_reader(
"Eor", read_Eor);
968 register_node_reader(
"Free", read_Free);
969 register_node_reader(
"IJmp", read_IJmp);
970 register_node_reader(
"Jmp", read_Jmp);
971 register_node_reader(
"Load", read_Load);
972 register_node_reader(
"Member", read_Member);
973 register_node_reader(
"Minus", read_Minus);
974 register_node_reader(
"Mod", read_Mod);
975 register_node_reader(
"Mul", read_Mul);
976 register_node_reader(
"Mulh", read_Mulh);
977 register_node_reader(
"Mux", read_Mux);
978 register_node_reader(
"NoMem", read_NoMem);
979 register_node_reader(
"Not", read_Not);
980 register_node_reader(
"Offset", read_Offset);
981 register_node_reader(
"Or", read_Or);
982 register_node_reader(
"Pin", read_Pin);
983 register_node_reader(
"Proj", read_Proj);
984 register_node_reader(
"Raise", read_Raise);
985 register_node_reader(
"Return", read_Return);
986 register_node_reader(
"Sel", read_Sel);
987 register_node_reader(
"Shl", read_Shl);
988 register_node_reader(
"Shr", read_Shr);
989 register_node_reader(
"Shrs", read_Shrs);
990 register_node_reader(
"Size", read_Size);
991 register_node_reader(
"Start", read_Start);
992 register_node_reader(
"Store", read_Store);
993 register_node_reader(
"Sub", read_Sub);
994 register_node_reader(
"Switch", read_Switch);
995 register_node_reader(
"Sync", read_Sync);
996 register_node_reader(
"Tuple", read_Tuple);
997 register_node_reader(
"Unknown", read_Unknown);
1000 void register_generated_node_writers(
void)
1002 register_node_writer(
op_Add, write_Add);
1003 register_node_writer(
op_Address, write_Address);
1004 register_node_writer(
op_Align, write_Align);
1005 register_node_writer(
op_Alloc, write_Alloc);
1006 register_node_writer(
op_And, write_And);
1007 register_node_writer(
op_Bad, write_Bad);
1008 register_node_writer(
op_Bitcast, write_Bitcast);
1009 register_node_writer(
op_Builtin, write_Builtin);
1010 register_node_writer(
op_Call, write_Call);
1011 register_node_writer(
op_Cmp, write_Cmp);
1012 register_node_writer(
op_Cond, write_Cond);
1013 register_node_writer(
op_Confirm, write_Confirm);
1014 register_node_writer(
op_Const, write_Const);
1015 register_node_writer(
op_Conv, write_Conv);
1016 register_node_writer(
op_CopyB, write_CopyB);
1017 register_node_writer(
op_Div, write_Div);
1018 register_node_writer(
op_Dummy, write_Dummy);
1019 register_node_writer(
op_End, write_End);
1020 register_node_writer(
op_Eor, write_Eor);
1021 register_node_writer(
op_Free, write_Free);
1022 register_node_writer(
op_IJmp, write_IJmp);
1023 register_node_writer(
op_Jmp, write_Jmp);
1024 register_node_writer(
op_Load, write_Load);
1025 register_node_writer(
op_Member, write_Member);
1026 register_node_writer(
op_Minus, write_Minus);
1027 register_node_writer(
op_Mod, write_Mod);
1028 register_node_writer(
op_Mul, write_Mul);
1029 register_node_writer(
op_Mulh, write_Mulh);
1030 register_node_writer(
op_Mux, write_Mux);
1031 register_node_writer(
op_NoMem, write_NoMem);
1032 register_node_writer(
op_Not, write_Not);
1033 register_node_writer(
op_Offset, write_Offset);
1034 register_node_writer(
op_Or, write_Or);
1035 register_node_writer(
op_Pin, write_Pin);
1036 register_node_writer(
op_Proj, write_Proj);
1037 register_node_writer(
op_Raise, write_Raise);
1038 register_node_writer(
op_Return, write_Return);
1039 register_node_writer(
op_Sel, write_Sel);
1040 register_node_writer(
op_Shl, write_Shl);
1041 register_node_writer(
op_Shr, write_Shr);
1042 register_node_writer(
op_Shrs, write_Shrs);
1043 register_node_writer(
op_Size, write_Size);
1044 register_node_writer(
op_Start, write_Start);
1045 register_node_writer(
op_Store, write_Store);
1046 register_node_writer(
op_Sub, write_Sub);
1047 register_node_writer(
op_Switch, write_Switch);
1048 register_node_writer(
op_Sync, write_Sync);
1049 register_node_writer(
op_Tuple, write_Tuple);
1050 register_node_writer(
op_Unknown, write_Unknown);
ir_type * get_Size_type(const ir_node *node)
Returns type attribute of a Size node.
ir_volatility get_Load_volatility(const ir_node *node)
Returns volatility attribute of a Load node.
cond_jmp_predicate get_Cond_jmp_pred(const ir_node *node)
Returns jmp_pred attribute of a Cond node.
void set_Mod_resmode(ir_node *node, ir_mode *resmode)
Sets resmode attribute of a Mod node.
ir_node * get_Mux_true(const ir_node *node)
Returns true input of a Mux node.
void ir_set_throws_exception(ir_node *node, int throws_exception)
Sets throws exception attribute of a fragile node throws_exception must be 0 or 1.
unsigned get_Alloc_alignment(const ir_node *node)
Returns alignment attribute of an Alloc node.
ir_node * new_r_Builtin(ir_node *block, ir_node *irn_mem, int arity, ir_node *const *in, ir_builtin_kind kind, ir_type *type)
Construct a Builtin node.
ir_node * get_Not_op(const ir_node *node)
Returns op input of a Not node.
ir_op * op_Div
Div opcode.
ir_node * get_Mod_left(const ir_node *node)
Returns left input of a Mod node.
ir_node * get_Div_right(const ir_node *node)
Returns right input of a Div node.
ir_node * get_Minus_op(const ir_node *node)
Returns op input of a Minus node.
ir_relation get_Confirm_relation(const ir_node *node)
Returns relation attribute of a Confirm node.
ir_node * get_Builtin_mem(const ir_node *node)
Returns mem input of a Builtin node.
ir_node * new_r_Raise(ir_node *block, ir_node *irn_mem, ir_node *irn_exo_ptr)
Construct a Raise node.
ir_node * get_Store_ptr(const ir_node *node)
Returns ptr input of a Store node.
ir_op * op_Shr
Shr opcode.
ir_node * new_r_NoMem(ir_graph *irg)
Construct a NoMem node.
ir_node * get_Shr_right(const ir_node *node)
Returns right input of a Shr node.
unsigned get_Proj_num(const ir_node *node)
Returns num attribute of a Proj node.
ir_op * op_Sub
Sub opcode.
ir_op * op_Cmp
Cmp opcode.
ir_op * op_Bad
Bad opcode.
ir_node * new_r_Free(ir_node *block, ir_node *irn_mem, ir_node *irn_ptr)
Construct a Free node.
ir_node * get_Raise_exo_ptr(const ir_node *node)
Returns exo_ptr input of a Raise node.
ir_node * get_Member_ptr(const ir_node *node)
Returns ptr input of a Member node.
ir_node * get_Alloc_size(const ir_node *node)
Returns size input of an Alloc node.
ir_op * op_Alloc
Alloc opcode.
ir_node * new_r_Return(ir_node *block, ir_node *irn_mem, int arity, ir_node *const *in)
Construct a Return node.
ir_node * get_Cmp_right(const ir_node *node)
Returns right input of a Cmp node.
void set_Div_no_remainder(ir_node *node, int no_remainder)
Sets no_remainder attribute of a Div node.
ir_node * get_Mul_right(const ir_node *node)
Returns right input of a Mul node.
ir_node * get_Cond_selector(const ir_node *node)
Returns selector input of a Cond node.
ir_entity * get_Address_entity(const ir_node *node)
Returns entity attribute of an Address node.
ir_node * get_Or_right(const ir_node *node)
Returns right input of an Or node.
ir_op * op_And
And opcode.
ir_op * op_Tuple
Tuple opcode.
void set_Cond_jmp_pred(ir_node *node, cond_jmp_predicate jmp_pred)
Sets jmp_pred attribute of a Cond node.
ir_node * get_Mulh_right(const ir_node *node)
Returns right input of a Mulh node.
ir_node * new_r_Mod(ir_node *block, ir_node *irn_mem, ir_node *irn_left, ir_node *irn_right, int pinned)
Construct a Mod node.
ir_node * get_Mod_mem(const ir_node *node)
Returns mem input of a Mod node.
ir_op * op_Jmp
Jmp opcode.
ir_op * op_Raise
Raise opcode.
ir_op * op_Mux
Mux opcode.
ir_node * get_Free_mem(const ir_node *node)
Returns mem input of a Free node.
ir_node * new_r_Cond(ir_node *block, ir_node *irn_selector)
Construct a Cond node.
ir_op * op_Sel
Sel opcode.
ir_op * op_Shl
Shl opcode.
ir_type * get_Store_type(const ir_node *node)
Returns type attribute of a Store node.
ir_op * op_Sync
Sync opcode.
ir_node * new_r_Tuple(ir_node *block, int arity, ir_node *const *in)
Construct a Tuple node.
ir_node * get_CopyB_dst(const ir_node *node)
Returns dst input of a CopyB node.
ir_op * op_Cond
Cond opcode.
ir_op * op_Address
Address opcode.
ir_node * new_r_Load(ir_node *block, ir_node *irn_mem, ir_node *irn_ptr, ir_mode *mode, ir_type *type, ir_cons_flags flags)
Construct a Load node.
ir_node * new_r_Proj(ir_node *irn_pred, ir_mode *mode, unsigned num)
Construct a Proj node.
Memory operation is unaligned.
ir_node * get_Call_mem(const ir_node *node)
Returns mem input of a Call node.
struct ir_type ir_type
Type.
ir_op * op_Dummy
Dummy opcode.
ir_node * new_r_Alloc(ir_node *block, ir_node *irn_mem, ir_node *irn_size, unsigned alignment)
Construct an Alloc node.
ir_node * new_r_Store(ir_node *block, ir_node *irn_mem, ir_node *irn_ptr, ir_node *irn_value, ir_type *type, ir_cons_flags flags)
Construct a Store node.
ir_node * new_r_Const(ir_graph *irg, ir_tarval *tarval)
Construct a Const node.
ir_node * get_Add_right(const ir_node *node)
Returns right input of an Add node.
ir_mode * get_Div_resmode(const ir_node *node)
Returns resmode attribute of a Div node.
struct ir_tarval ir_tarval
Target Machine Value.
ir_node * get_Bitcast_op(const ir_node *node)
Returns op input of a Bitcast node.
ir_op * op_Minus
Minus opcode.
Memory operation is volatile.
ir_node * get_Shrs_right(const ir_node *node)
Returns right input of a Shrs node.
ir_type * get_Load_type(const ir_node *node)
Returns type attribute of a Load node.
ir_node * new_r_And(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct an And node.
void set_CopyB_volatility(ir_node *node, ir_volatility volatility)
Sets volatility attribute of a CopyB node.
ir_op * op_CopyB
CopyB opcode.
ir_node * get_Confirm_bound(const ir_node *node)
Returns bound input of a Confirm node.
ir_op * op_Free
Free opcode.
ir_node * new_r_Switch(ir_node *block, ir_node *irn_selector, unsigned n_outs, ir_switch_table *table)
Construct a Switch node.
ir_builtin_kind get_Builtin_kind(const ir_node *node)
Returns kind attribute of a Builtin node.
Memory operation can float.
ir_node * new_r_Size(ir_graph *irg, ir_mode *mode, ir_type *type)
Construct a Size node.
ir_node * get_And_right(const ir_node *node)
Returns right input of an And node.
ir_node * get_Shl_left(const ir_node *node)
Returns left input of a Shl node.
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.
ir_node * new_r_Jmp(ir_node *block)
Construct a Jmp node.
ir_node * get_Return_mem(const ir_node *node)
Returns mem input of a Return node.
ir_op * op_Align
Align opcode.
ir_node * get_Add_left(const ir_node *node)
Returns left input of an Add node.
ir_node * get_Store_value(const ir_node *node)
Returns value input of a Store node.
void set_irn_pinned(ir_node *node, int pinned)
Sets pin state for nodes with op pin state op_pin_state_exc_pinned.
ir_node * new_r_Div(ir_node *block, ir_node *irn_mem, ir_node *irn_left, ir_node *irn_right, int pinned)
Construct a Div node.
ir_type * get_Builtin_type(const ir_node *node)
Returns type attribute of a Builtin node.
ir_node * new_r_Add(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct an Add node.
ir_node * get_Mux_false(const ir_node *node)
Returns false input of a Mux node.
ir_op * op_Conv
Conv opcode.
ir_node * new_r_Bad(ir_graph *irg, ir_mode *mode)
Construct a Bad node.
ir_op * op_Shrs
Shrs opcode.
ir_node * new_r_Mux(ir_node *block, ir_node *irn_sel, ir_node *irn_false, ir_node *irn_true)
Construct a Mux node.
ir_relation get_Cmp_relation(const ir_node *node)
Returns relation attribute of a Cmp node.
ir_node * get_Free_ptr(const ir_node *node)
Returns ptr input of a Free node.
ir_node * new_r_Member(ir_node *block, ir_node *irn_ptr, ir_entity *entity)
Construct a Member node.
ir_node * get_Eor_right(const ir_node *node)
Returns right input of an Eor node.
ir_volatility get_Store_volatility(const ir_node *node)
Returns volatility attribute of a Store node.
ir_volatility get_CopyB_volatility(const ir_node *node)
Returns volatility attribute of a CopyB node.
ir_entity * get_Offset_entity(const ir_node *node)
Returns entity attribute of an Offset node.
ir_node * get_Mod_right(const ir_node *node)
Returns right input of a Mod node.
ir_op * op_NoMem
NoMem opcode.
ir_builtin_kind
Supported libFirm builtins.
ir_node * get_Div_mem(const ir_node *node)
Returns mem input of a Div node.
ir_node * get_Div_left(const ir_node *node)
Returns left input of a Div node.
ir_op * op_Proj
Proj opcode.
ir_node * new_r_CopyB(ir_node *block, ir_node *irn_mem, ir_node *irn_dst, ir_node *irn_src, ir_type *type, ir_cons_flags flags)
Construct a CopyB node.
ir_switch_table * get_Switch_table(const ir_node *node)
Returns table attribute of a Switch node.
ir_type * get_Align_type(const ir_node *node)
Returns type attribute of an Align node.
ir_node * new_r_Shl(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct a Shl node.
ir_node * get_Confirm_value(const ir_node *node)
Returns value input of a Confirm node.
ir_node * new_r_Cmp(ir_node *block, ir_node *irn_left, ir_node *irn_right, ir_relation relation)
Construct a Cmp node.
ir_node * get_Load_ptr(const ir_node *node)
Returns ptr input of a Load node.
ir_node * get_IJmp_target(const ir_node *node)
Returns target input of an IJmp node.
ir_node * get_nodes_block(const ir_node *node)
Returns the block the node belongs to.
ir_node * new_r_Align(ir_graph *irg, ir_mode *mode, ir_type *type)
Construct an Align node.
int get_irn_pinned(const ir_node *node)
Returns whether a node is pinned.
ir_node * get_Alloc_mem(const ir_node *node)
Returns mem input of an Alloc node.
ir_node * new_r_Conv(ir_node *block, ir_node *irn_op, ir_mode *mode)
Construct a Conv node.
ir_op * op_Call
Call opcode.
ir_node * get_Or_left(const ir_node *node)
Returns left input of an Or node.
ir_node * new_r_Sel(ir_node *block, ir_node *irn_ptr, ir_node *irn_index, ir_type *type)
Construct a Sel node.
ir_relation
Relations for comparing numbers.
ir_node * get_Store_mem(const ir_node *node)
Returns mem input of a Store node.
ir_node * new_r_Unknown(ir_graph *irg, ir_mode *mode)
Construct an Unknown node.
ir_node * new_r_Sub(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct a Sub node.
ir_node * get_Switch_selector(const ir_node *node)
Returns selector input of a Switch node.
ir_align get_Store_unaligned(const ir_node *node)
Returns unaligned attribute of a Store node.
ir_op * op_Load
Load opcode.
ir_node * get_Raise_mem(const ir_node *node)
Returns mem input of a Raise node.
ir_op * op_End
End opcode.
ir_node * get_Conv_op(const ir_node *node)
Returns op input of a Conv node.
ir_type * get_CopyB_type(const ir_node *node)
Returns type attribute of a CopyB node.
ir_op * op_Add
Add opcode.
ir_node * get_Shl_right(const ir_node *node)
Returns right input of a Shl node.
ir_node * get_And_left(const ir_node *node)
Returns left input of an And node.
ir_node * get_Sel_index(const ir_node *node)
Returns index input of a Sel node.
void set_Load_unaligned(ir_node *node, ir_align unaligned)
Sets unaligned attribute of a Load node.
cond_jmp_predicate
A type to express conditional jump predictions.
ir_node * get_Shr_left(const ir_node *node)
Returns left input of a Shr node.
ir_node * new_r_Offset(ir_graph *irg, ir_mode *mode, ir_entity *entity)
Construct an Offset node.
ir_op * op_Unknown
Unknown opcode.
ir_node * new_r_Confirm(ir_node *block, ir_node *irn_value, ir_node *irn_bound, ir_relation relation)
Construct a Confirm node.
ir_node * get_CopyB_src(const ir_node *node)
Returns src input of a CopyB node.
ir_op * op_Mulh
Mulh opcode.
ir_mode * get_Mod_resmode(const ir_node *node)
Returns resmode attribute of a Mod node.
ir_op * op_Switch
Switch opcode.
ir_node * new_r_End(ir_graph *irg, int arity, ir_node *const *in)
Construct an End node.
ir_node * get_Cmp_left(const ir_node *node)
Returns left input of a Cmp node.
ir_cons_flags
constrained flags for memory operations.
ir_node * new_r_Shr(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct a Shr node.
ir_node * get_Pin_op(const ir_node *node)
Returns op input of a Pin node.
void set_Load_volatility(ir_node *node, ir_volatility volatility)
Sets volatility attribute of a Load node.
ir_op * op_Builtin
Builtin opcode.
ir_op * op_Return
Return opcode.
struct ir_mode ir_mode
SSA Value mode.
ir_node * new_r_Sync(ir_node *block, int arity, ir_node *const *in)
Construct a Sync node.
ir_op * op_Mul
Mul opcode.
ir_node * get_Eor_left(const ir_node *node)
Returns left input of an Eor node.
ir_node * new_r_Pin(ir_node *block, ir_node *irn_op)
Construct a Pin node.
ir_node * get_CopyB_mem(const ir_node *node)
Returns mem input of a CopyB node.
ir_node * get_Proj_pred(const ir_node *node)
Returns pred input of a Proj node.
ir_op * op_Member
Member opcode.
unsigned get_Switch_n_outs(const ir_node *node)
Returns n_outs attribute of a Switch node.
ir_node * get_Mux_sel(const ir_node *node)
Returns sel input of a Mux node.
ir_node * new_r_Eor(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct an Eor node.
int get_Div_no_remainder(const ir_node *node)
Returns no_remainder attribute of a Div node.
ir_node * get_Sel_ptr(const ir_node *node)
Returns ptr input of a Sel node.
ir_node * new_r_Or(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct an Or node.
ir_node * new_r_Call(ir_node *block, ir_node *irn_mem, ir_node *irn_ptr, int arity, ir_node *const *in, ir_type *type)
Construct a Call node.
ir_op * op_Pin
Pin opcode.
ir_op * op_Start
Start opcode.
ir_type * get_Sel_type(const ir_node *node)
Returns type attribute of a Sel node.
ir_mode * get_irn_mode(const ir_node *node)
Returns the mode struct of a node.
ir_node * get_Mulh_left(const ir_node *node)
Returns left input of a Mulh node.
ir_node * new_r_Dummy(ir_graph *irg, ir_mode *mode)
Construct a Dummy node.
ir_op * op_Eor
Eor opcode.
ir_op * op_IJmp
IJmp opcode.
ir_type * get_Call_type(const ir_node *node)
Returns type attribute of a Call node.
ir_entity * get_Member_entity(const ir_node *node)
Returns entity attribute of a Member node.
ir_node * get_Mul_left(const ir_node *node)
Returns left input of a Mul node.
void set_Store_unaligned(ir_node *node, ir_align unaligned)
Sets unaligned attribute of a Store node.
ir_node * new_r_Start(ir_graph *irg)
Construct a Start node.
ir_node * get_Load_mem(const ir_node *node)
Returns mem input of a Load node.
ir_node * new_r_Shrs(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct a Shrs node.
ir_node * new_r_IJmp(ir_node *block, ir_node *irn_target)
Construct an IJmp node.
ir_op * op_Bitcast
Bitcast opcode.
struct ir_entity ir_entity
Entity.
ir_node * get_Sub_right(const ir_node *node)
Returns right input of a Sub node.
struct ir_node ir_node
Procedure Graph Node.
ir_op * op_Not
Not opcode.
ir_node * get_Sub_left(const ir_node *node)
Returns left input of a Sub node.
ir_op * op_Const
Const opcode.
ir_node * get_Call_ptr(const ir_node *node)
Returns ptr input of a Call node.
ir_node * get_Shrs_left(const ir_node *node)
Returns left input of a Shrs node.
int ir_throws_exception(const ir_node *node)
Returns throws_exception attribute of a fragile node.
ir_node * new_r_Minus(ir_node *block, ir_node *irn_op)
Construct a Minus node.
ir_node * new_r_Address(ir_graph *irg, ir_entity *entity)
Construct an Address node.
ir_align get_Load_unaligned(const ir_node *node)
Returns unaligned attribute of a Load node.
void set_Div_resmode(ir_node *node, ir_mode *resmode)
Sets resmode attribute of a Div node.
void set_Store_volatility(ir_node *node, ir_volatility volatility)
Sets volatility attribute of a Store node.
ir_node * new_r_Not(ir_node *block, ir_node *irn_op)
Construct a Not node.
ir_tarval * get_Const_tarval(const ir_node *node)
Returns tarval attribute of a Const node.
ir_op * op_Size
Size opcode.
ir_node * new_r_Mulh(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct a Mulh node.
ir_node * new_r_Bitcast(ir_node *block, ir_node *irn_op, ir_mode *mode)
Construct a Bitcast node.
fragile op throws exception (and produces X_regular and X_except values)
ir_op * op_Offset
Offset opcode.
ir_node * new_r_Mul(ir_node *block, ir_node *irn_left, ir_node *irn_right)
Construct a Mul node.
ir_op * op_Confirm
Confirm opcode.
ir_mode * get_Load_mode(const ir_node *node)
Returns mode attribute of a Load node.
ir_op * op_Store
Store opcode.
ir_op * op_Mod
Mod opcode.