; start of dump from pass_build_cfg (../../src/gcc/tree-cfg.c:397) ;; Function ravif2 (ravif2, funcdef_no=0, decl_uid=364, cgraph_uid=0, symbol_order=0) Removing basic block 40 Removing basic block 39 Removing basic block 38 Removing basic block 30 Removing basic block 31 Removing basic block 32 Removing basic block 34 Removing basic block 35 Merging blocks 37 and 41 Merging blocks 10 and 11 Merging blocks 28 and 29 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ;; 2 succs { 8 3 } ;; 3 succs { 4 6 } ;; 4 succs { 5 6 } ;; 5 succs { 7 } ;; 6 succs { 7 } ;; 7 succs { 8 9 } ;; 8 succs { 10 } ;; 9 succs { 10 } ;; 10 succs { 16 11 } ;; 11 succs { 12 14 } ;; 12 succs { 13 14 } ;; 13 succs { 15 } ;; 14 succs { 15 } ;; 15 succs { 16 17 } ;; 16 succs { 18 } ;; 17 succs { 18 } ;; 18 succs { 19 28 } ;; 19 succs { 25 20 } ;; 20 succs { 21 23 } ;; 21 succs { 22 23 } ;; 22 succs { 24 } ;; 23 succs { 24 } ;; 24 succs { 25 26 } ;; 25 succs { 27 } ;; 26 succs { 27 } ;; 27 succs { 29 30 } ;; 28 succs { 19 } ;; 29 succs { 30 } ;; 30 succs { 1 } ravif2 (struct ravi_lua_State * L) { struct ravi_TValue * base; struct ravi_LClosure * cl; isfalse_0_4; comparison_0_5; comparison_0_6; comparison_0_7; isfalse_0_10; comparison_0_11; comparison_0_12; comparison_0_13; isfalse_0_16; comparison_0_17; comparison_0_18; comparison_0_19; comparison_0_22; comparison_0_26; signed int D.445; struct ravi_TValue * D.444; signed int D.443; struct ravi_TValue * D.442; sizetype D.441; iftmp.5; iftmp.4; signed int D.430; D.429; iftmp.3; iftmp.2; iftmp.1; iftmp.0; signed int D.408; signed int D.407; signed int D.406; signed long D.405; struct ravi_TValue * D.404; sizetype D.403; struct ravi_TValue * D.402; struct ravi_Proto * D.401; struct ravi_TValue * D.400; sizetype D.399; struct ravi_TValue * D.398; struct ravi_CallInfo * D.397; entry: D.397 = L->ci; D.398 = D.397->func; cl = D.398->value_.gc; D.397 = L->ci; base = D.397->u.l.base; D.397 = L->ci; raviV_op_loadnil (D.397, 0, 0); D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.405 = D.404->value_.i; D.400->value_.i = D.405; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.406 = D.404->tt_; D.400->tt_ = D.406; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_5 = D.407 == 0; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_6 = D.407 == 1; D.399 = 16; D.400 = base + D.399; D.408 = D.400->value_.b; comparison_0_7 = D.408 == 0; if (comparison_0_5 != 0) goto ; else goto ; : if (comparison_0_6 != 0) goto ; else goto ; : if (comparison_0_7 != 0) goto ; else goto ; : iftmp.1 = 1; goto ; : iftmp.1 = 0; : if (iftmp.1 != 0) goto ; else goto ; : iftmp.0 = 1; goto ; : iftmp.0 = 0; : isfalse_0_4 = iftmp.0; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.400->value_.b = 0; D.399 = 16; D.400 = base + D.399; D.400->tt_ = 1; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_11 = D.407 == 0; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_12 = D.407 == 1; D.399 = 16; D.400 = base + D.399; D.408 = D.400->value_.b; comparison_0_13 = D.408 == 0; if (comparison_0_11 != 0) goto ; else goto ; : if (comparison_0_12 != 0) goto ; else goto ; : if (comparison_0_13 != 0) goto ; else goto ; : iftmp.3 = 1; goto ; : iftmp.3 = 0; : if (iftmp.3 != 0) goto ; else goto ; : iftmp.2 = 1; goto ; : iftmp.2 = 0; : isfalse_0_10 = iftmp.2; D.429 = ~isfalse_0_10; D.430 = (signed int) D.429; if (D.430 == 0) goto (OP_TEST_do_jmp_5_14); else goto (OP_TEST_do_skip_5_15); OP_TEST_do_jmp_5_14: jmp_9_2: D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.405 = D.404->value_.i; D.400->value_.i = D.405; D.399 = 16; D.400 = base + D.399; D.401 = cl->p; D.402 = D.401->k; D.403 = 0; D.404 = D.402 + D.403; D.406 = D.404->tt_; D.400->tt_ = D.406; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_17 = D.407 == 0; D.399 = 16; D.400 = base + D.399; D.407 = D.400->tt_; comparison_0_18 = D.407 == 1; D.399 = 16; D.400 = base + D.399; D.408 = D.400->value_.b; comparison_0_19 = D.408 == 0; if (comparison_0_17 != 0) goto ; else goto ; : if (comparison_0_18 != 0) goto ; else goto ; : if (comparison_0_19 != 0) goto ; else goto ; : iftmp.5 = 1; goto ; : iftmp.5 = 0; : if (iftmp.5 != 0) goto ; else goto ; : iftmp.4 = 1; goto ; : iftmp.4 = 0; : isfalse_0_16 = iftmp.4; D.397 = L->ci; base = D.397->u.l.base; D.399 = 16; D.400 = base + D.399; D.400->value_.b = 0; D.399 = 16; D.400 = base + D.399; D.400->tt_ = 1; printf ("OP_RETURN(pc=%d) return %d args", 13, 1); D.397 = L->ci; base = D.397->u.l.base; D.441 = 32; D.442 = base + D.441; L->top = D.442; D.401 = cl->p; D.443 = D.401->sizep; comparison_0_22 = D.443 > 0; if (comparison_0_22 != 0) goto (OP_RETURN_if_sizep_gt_0_12_23); else goto (OP_RETURN_else_sizep_gt_0_12_24); OP_TEST_do_skip_5_15: D.397 = L->ci; base = D.397->u.l.base; D.403 = 0; D.444 = base + D.403; D.444->value_.b = 1; D.403 = 0; D.444 = base + D.403; D.444->tt_ = 1; goto (OP_TEST_do_jmp_5_14); OP_RETURN_if_sizep_gt_0_12_23: luaF_close (L, base); OP_RETURN_else_sizep_gt_0_12_24: D.399 = 16; D.400 = base + D.399; luaD_poscall (L, D.400); D.445 = 1; return D.445; } ; end of dump from pass_build_cfg (../../src/gcc/tree-cfg.c:397)