+ /* to make three conditionals */
+ expr = new_Const(mode_Is, new_tarval_from_long(0, mode_Is));
+ c1 = new_Const(mode_Is, new_tarval_from_long(1, mode_Is));
+ c2 = new_Const(mode_Is, new_tarval_from_long(2, mode_Is));
+ c3 = new_Const(mode_Is, new_tarval_from_long(2, mode_Is));
+
+ cond = new_Cond(new_Proj(new_Cmp(expr, c1), mode_b, pn_Cmp_Eq));
+ f = new_Proj(cond, mode_X, pn_Cond_false);
+ t = new_Proj(cond, mode_X, pn_Cond_true);
+ mature_immBlock(get_irg_current_block(irg));
+
+ loopBlock1 = new_immBlock();
+ add_immBlock_pred(loopBlock1, t);
+ cond = new_Cond(new_Proj(new_Cmp(expr, c2), mode_b, pn_Cmp_Eq));
+ f_l1 = new_Proj(cond, mode_X, pn_Cond_false);
+ t_l1 = new_Proj(cond, mode_X, pn_Cond_true);
+
+ loopBlock2 = new_immBlock();
+ add_immBlock_pred(loopBlock2, f);
+ cond = new_Cond(new_Proj(new_Cmp(expr, c3), mode_b, pn_Cmp_Eq));
+ f_l2 = new_Proj(cond, mode_X, pn_Cond_false);
+ t_l2 = new_Proj(cond, mode_X, pn_Cond_true);
+
+ add_immBlock_pred(loopBlock1, t_l2);
+ add_immBlock_pred(loopBlock2, t_l1);
+ mature_immBlock(loopBlock1);
+ mature_immBlock(loopBlock2);
+
+ new_immBlock();
+ add_immBlock_pred(get_irg_current_block(irg), f_l2);
+ add_immBlock_pred(get_irg_current_block(irg), f_l1);
+ x = new_Return(get_store(), 0, NULL);
+ mature_immBlock(get_irg_current_block(irg));
+
+ add_immBlock_pred(get_irg_end_block(irg), x);
+ mature_immBlock(get_irg_end_block(irg));
+
+ irg_finalize_cons(irg);
+
+ /* --- method loop2 ------------------------------------------------------ */
+
+#undef METHODNAME
+#define METHODNAME "loop2"
+
+ ent = new_entity(owner, new_id_from_str(METHODNAME), proc_tp);
+ get_entity_ld_name(ent); /* To enforce name mangling for vcg graph name */
+
+ irg = new_ir_graph(ent, NUM_OF_LOCAL_VARS);
+
+ /* to make several conditionals */
+ expr = new_Const(mode_Is, new_tarval_from_long(0, mode_Is));
+ c1 = new_Const(mode_Is, new_tarval_from_long(1, mode_Is));
+ c2 = new_Const(mode_Is, new_tarval_from_long(2, mode_Is));
+ c3 = new_Const(mode_Is, new_tarval_from_long(3, mode_Is));
+ c4 = new_Const(mode_Is, new_tarval_from_long(4, mode_Is));
+ c5 = new_Const(mode_Is, new_tarval_from_long(5, mode_Is));
+
+ cond = new_Cond(new_Proj(new_Cmp(expr, c1), mode_b, pn_Cmp_Eq));
+ f2 = new_Proj(cond, mode_X, pn_Cond_false);
+ t = new_Proj(cond, mode_X, pn_Cond_true);
+ mature_immBlock(get_irg_current_block(irg));
+
+ new_immBlock();
+ add_immBlock_pred(get_irg_current_block(irg), t);
+ cond = new_Cond(new_Proj(new_Cmp(expr, c5), mode_b, pn_Cmp_Eq));
+ f = new_Proj(cond, mode_X, pn_Cond_false);
+ t = new_Proj(cond, mode_X, pn_Cond_true);
+ mature_immBlock(get_irg_current_block(irg));
+
+ loopBlock1 = new_immBlock();
+ add_immBlock_pred(loopBlock1, t);
+ cond = new_Cond(new_Proj(new_Cmp(expr, c2), mode_b, pn_Cmp_Eq));
+ f_l1 = new_Proj(cond, mode_X, pn_Cond_false);
+ t_l1 = new_Proj(cond, mode_X, pn_Cond_true);
+
+ loopBlock2 = new_immBlock();
+ add_immBlock_pred(loopBlock2, f);
+ cond = new_Cond(new_Proj(new_Cmp(expr, c3), mode_b, pn_Cmp_Eq));
+ f_l2 = new_Proj(cond, mode_X, pn_Cond_false);
+ t_l2 = new_Proj(cond, mode_X, pn_Cond_true);
+
+ loopBlock3 = new_immBlock();
+ add_immBlock_pred(loopBlock3, f2);
+ cond = new_Cond(new_Proj(new_Cmp(expr, c4), mode_b, pn_Cmp_Eq));
+ f_l3 = new_Proj(cond, mode_X, pn_Cond_false);
+ t_l3 = new_Proj(cond, mode_X, pn_Cond_true);
+
+ add_immBlock_pred(loopBlock1, t_l2);
+ add_immBlock_pred(loopBlock2, t_l1);
+ add_immBlock_pred(loopBlock3, f_l2);
+ add_immBlock_pred(loopBlock2, t_l3);
+ mature_immBlock(loopBlock1);
+ mature_immBlock(loopBlock2);
+ mature_immBlock(loopBlock3);
+
+ new_immBlock();
+ add_immBlock_pred(get_irg_current_block(irg), f_l1);
+ add_immBlock_pred(get_irg_current_block(irg), f_l3);
+ x = new_Return(get_store(), 0, NULL);
+ mature_immBlock(get_irg_current_block(irg));
+
+ add_immBlock_pred(get_irg_end_block(irg), x);
+ mature_immBlock(get_irg_end_block(irg));
+
+ irg_finalize_cons(irg);
+
+ /* --- more ... ------------------------------------------------------ */