; start of dump from pass_fre (../../src/gcc/tree-ssa-pre.c:4927) ;; Function ravif2 (ravif2, funcdef_no=0, decl_uid=364, cgraph_uid=0, symbol_order=0) Value-numbering operands of stmt ending BB 2: if (_40 == 0) Setting value number of .MEM_9(D) to .MEM_9(D) (changed) Value numbering _16 stmt = _16 = L_10(D)->ci; Setting value number of _16 to _16 (changed) Value numbering .MEM_17 stmt = raviV_op_loadnil (_16, 0, 0); Setting value number of .MEM_17 to .MEM_17 (changed) Value numbering _18 stmt = _18 = L_10(D)->ci; Setting value number of _18 to _18 (changed) Value numbering base_19 stmt = base_19 = _18->u.l.base; Setting value number of base_19 to base_19 (changed) Value numbering _11 stmt = _11 = L_10(D)->ci; Setting value number of _11 to _16 (changed) Value numbering _12 stmt = _12 = _11->func; Setting value number of _12 to _12 (changed) Value numbering cl_13 stmt = cl_13 = _12->value_.gc; Setting value number of cl_13 to cl_13 (changed) Value numbering _22 stmt = _22 = cl_13->p; Setting value number of _22 to _22 (changed) Value numbering _23 stmt = _23 = _22->k; Setting value number of _23 to _23 (changed) Value numbering _26 stmt = _26 = _23->value_.i; Setting value number of _26 to _26 (changed) Value numbering .MEM_27 stmt = MEM[(struct ravi_TValue *)base_19 + 16B].value_.i = _26; No store match Value numbering store MEM[(struct ravi_TValue *)base_19 + 16B].value_.i to _26 Setting value number of .MEM_27 to .MEM_27 (changed) Value numbering _30 stmt = _30 = cl_13->p; Setting value number of _30 to _22 (changed) Value numbering _31 stmt = _31 = _30->k; Setting value number of _31 to _23 (changed) Value numbering _34 stmt = _34 = _31->tt_; Setting value number of _34 to _34 (changed) Value numbering .MEM_35 stmt = MEM[(struct ravi_TValue *)base_19 + 16B].tt_ = _34; No store match Value numbering store MEM[(struct ravi_TValue *)base_19 + 16B].tt_ to _34 Setting value number of .MEM_35 to .MEM_35 (changed) Value numbering _36 stmt = _36 = L_10(D)->ci; Setting value number of _36 to _18 (changed) Value numbering base_37 stmt = base_37 = _36->u.l.base; Setting value number of base_37 to base_19 (changed) Value numbering _40 stmt = _40 = MEM[(struct ravi_TValue *)base_37 + 16B].tt_; Setting value number of _40 to _34 (changed) Value-numbering operands of stmt ending BB 3: if (_44 == 1) Value numbering _44 stmt = _44 = MEM[(struct ravi_TValue *)base_37 + 16B].tt_; Setting value number of _44 to _34 (changed) Value-numbering operands of stmt ending BB 4: if (_48 == 0) Value numbering _48 stmt = _48 = MEM[(struct ravi_TValue *)base_37 + 16B].value_.b; Setting value number of _48 to _48 (changed) Value-numbering operands of stmt ending BB 6: if (iftmp.1_2 != 0) SCC consists of: iftmp.1_2 Starting iteration 1 Value numbering iftmp.1_2 stmt = iftmp.1_2 = PHI <1(4), 0(5)> Setting value number of iftmp.1_2 to iftmp.1_2 (changed) Starting iteration 2 Value numbering iftmp.1_2 stmt = iftmp.1_2 = PHI <1(4), 0(5)> Setting value number of iftmp.1_2 to iftmp.1_2 Processing SCC needed 2 iterations Value-numbering operands of stmt ending BB 8: if (_67 == 0) Value numbering _55 stmt = _55 = L_10(D)->ci; Setting value number of _55 to _18 (changed) Value numbering base_56 stmt = base_56 = _55->u.l.base; Setting value number of base_56 to base_19 (changed) Value numbering .MEM_59 stmt = MEM[(struct ravi_TValue *)base_56 + 16B].value_.b = 0; RHS 0 simplified to 0 No store match Value numbering store MEM[(struct ravi_TValue *)base_56 + 16B].value_.b to 0 Setting value number of .MEM_59 to .MEM_59 (changed) Value numbering .MEM_62 stmt = MEM[(struct ravi_TValue *)base_56 + 16B].tt_ = 1; RHS 1 simplified to 1 No store match Value numbering store MEM[(struct ravi_TValue *)base_56 + 16B].tt_ to 1 Setting value number of .MEM_62 to .MEM_62 (changed) Value numbering _63 stmt = _63 = L_10(D)->ci; Setting value number of _63 to _18 (changed) Value numbering base_64 stmt = base_64 = _63->u.l.base; Setting value number of base_64 to base_19 (changed) Value numbering _67 stmt = _67 = MEM[(struct ravi_TValue *)base_64 + 16B].tt_; Setting value number of _67 to 1 (changed) Marking all edges out of BB 8 but (8 -> 9) as not executable Value-numbering operands of stmt ending BB 9: if (_71 == 1) Value numbering _71 stmt = _71 = MEM[(struct ravi_TValue *)base_64 + 16B].tt_; Setting value number of _71 to 1 (changed) Marking all edges out of BB 9 but (9 -> 10) as not executable Value-numbering operands of stmt ending BB 10: if (_75 == 0) Value numbering _75 stmt = _75 = MEM[(struct ravi_TValue *)base_64 + 16B].value_.b; Setting value number of _75 to 0 (changed) Marking all edges out of BB 10 but (10 -> 12) as not executable Marking all outgoing edges of unreachable BB 11 as not executable Value-numbering operands of stmt ending BB 12: if (iftmp.3_4 != 0) SCC consists of: iftmp.3_4 Starting iteration 1 Value numbering iftmp.3_4 stmt = iftmp.3_4 = PHI <1(10), 0(11)> Setting value number of iftmp.3_4 to 1 (changed) Starting iteration 2 Value numbering iftmp.3_4 stmt = iftmp.3_4 = PHI <1(10), 0(11)> Setting value number of iftmp.3_4 to 1 Processing SCC needed 2 iterations Marking all edges out of BB 12 but (12 -> 14) as not executable Marking all outgoing edges of unreachable BB 13 as not executable Value-numbering operands of stmt ending BB 14: if (isfalse_0_10_3 != 0) SCC consists of: isfalse_0_10_3 Starting iteration 1 Value numbering isfalse_0_10_3 stmt = isfalse_0_10_3 = PHI <1(12), 0(13), 1(8)> Setting value number of isfalse_0_10_3 to 1 (changed) Starting iteration 2 Value numbering isfalse_0_10_3 stmt = isfalse_0_10_3 = PHI <1(12), 0(13), 1(8)> Setting value number of isfalse_0_10_3 to 1 Processing SCC needed 2 iterations Marking all edges out of BB 14 but (14 -> 15) as not executable Marking all outgoing edges of unreachable BB 22 as not executable Value-numbering operands of stmt ending BB 15: if (_114 == 0) Value numbering _84 stmt = _84 = L_10(D)->ci; Setting value number of _84 to _18 (changed) Value numbering base_85 stmt = base_85 = _84->u.l.base; Setting value number of base_85 to base_19 (changed) Value numbering .MEM_88 stmt = base_85->value_.b = 1; RHS 1 simplified to 1 No store match Value numbering store base_85->value_.b to 1 Setting value number of .MEM_88 to .MEM_88 (changed) Value numbering .MEM_91 stmt = base_85->tt_ = 1; RHS 1 simplified to 1 No store match Value numbering store base_85->tt_ to 1 Setting value number of .MEM_91 to .MEM_91 (changed) SCC consists of: .MEM_7 Starting iteration 1 Value numbering .MEM_7 stmt = .MEM_7 = PHI <.MEM_62(14), .MEM_91(22)> Setting value number of .MEM_7 to .MEM_62 (changed) Starting iteration 2 Value numbering .MEM_7 stmt = .MEM_7 = PHI <.MEM_62(14), .MEM_91(22)> Setting value number of .MEM_7 to .MEM_62 Processing SCC needed 2 iterations Value numbering _92 stmt = _92 = L_10(D)->ci; Setting value number of _92 to _18 (changed) Value numbering base_93 stmt = base_93 = _92->u.l.base; Setting value number of base_93 to base_19 (changed) Value numbering _96 stmt = _96 = cl_13->p; Setting value number of _96 to _22 (changed) Value numbering _97 stmt = _97 = _96->k; Setting value number of _97 to _23 (changed) Value numbering _100 stmt = _100 = _97->value_.i; Setting value number of _100 to _100 (changed) Value numbering .MEM_101 stmt = MEM[(struct ravi_TValue *)base_93 + 16B].value_.i = _100; No store match Value numbering store MEM[(struct ravi_TValue *)base_93 + 16B].value_.i to _100 Setting value number of .MEM_101 to .MEM_101 (changed) Value numbering _104 stmt = _104 = cl_13->p; Setting value number of _104 to _22 (changed) Value numbering _105 stmt = _105 = _104->k; Setting value number of _105 to _23 (changed) Value numbering _108 stmt = _108 = _105->tt_; Setting value number of _108 to _108 (changed) Value numbering .MEM_109 stmt = MEM[(struct ravi_TValue *)base_93 + 16B].tt_ = _108; No store match Value numbering store MEM[(struct ravi_TValue *)base_93 + 16B].tt_ to _108 Setting value number of .MEM_109 to .MEM_109 (changed) Value numbering _110 stmt = _110 = L_10(D)->ci; Setting value number of _110 to _18 (changed) Value numbering base_111 stmt = base_111 = _110->u.l.base; Setting value number of base_111 to base_19 (changed) Value numbering _114 stmt = _114 = MEM[(struct ravi_TValue *)base_111 + 16B].tt_; Setting value number of _114 to _108 (changed) Value-numbering operands of stmt ending BB 16: if (_118 == 1) Value numbering _118 stmt = _118 = MEM[(struct ravi_TValue *)base_111 + 16B].tt_; Setting value number of _118 to _108 (changed) Value-numbering operands of stmt ending BB 17: if (_122 == 0) Value numbering _122 stmt = _122 = MEM[(struct ravi_TValue *)base_111 + 16B].value_.b; Setting value number of _122 to 0 (changed) Marking all edges out of BB 17 but (17 -> 19) as not executable Value-numbering operands of stmt ending BB 19: if (iftmp.5_6 != 0) SCC consists of: iftmp.5_6 Starting iteration 1 Value numbering iftmp.5_6 stmt = iftmp.5_6 = PHI <1(17), 0(18)> Setting value number of iftmp.5_6 to iftmp.5_6 (changed) Starting iteration 2 Value numbering iftmp.5_6 stmt = iftmp.5_6 = PHI <1(17), 0(18)> Setting value number of iftmp.5_6 to iftmp.5_6 Processing SCC needed 2 iterations Value-numbering operands of stmt ending BB 21: if (_144 > 0) Value numbering _129 stmt = _129 = L_10(D)->ci; Setting value number of _129 to _18 (changed) Value numbering base_130 stmt = base_130 = _129->u.l.base; Setting value number of base_130 to base_19 (changed) Value numbering .MEM_133 stmt = MEM[(struct ravi_TValue *)base_130 + 16B].value_.b = 0; RHS 0 simplified to 0 No store match Value numbering store MEM[(struct ravi_TValue *)base_130 + 16B].value_.b to 0 Setting value number of .MEM_133 to .MEM_133 (changed) Value numbering .MEM_136 stmt = MEM[(struct ravi_TValue *)base_130 + 16B].tt_ = 1; RHS 1 simplified to 1 No store match Value numbering store MEM[(struct ravi_TValue *)base_130 + 16B].tt_ to 1 Setting value number of .MEM_136 to .MEM_136 (changed) Value numbering .MEM_137 stmt = printf ("OP_RETURN(pc=%d) return %d args", 13, 1); Setting value number of .MEM_137 to .MEM_137 (changed) Value numbering _138 stmt = _138 = L_10(D)->ci; Setting value number of _138 to _138 (changed) Value numbering base_139 stmt = base_139 = _138->u.l.base; Setting value number of base_139 to base_139 (changed) Value numbering _141 stmt = _141 = base_139 + 32; Setting value number of _141 to _141 (changed) Value numbering .MEM_142 stmt = L_10(D)->top = _141; No store match Value numbering store L_10(D)->top to _141 Setting value number of .MEM_142 to .MEM_142 (changed) Value numbering _143 stmt = _143 = cl_13->p; Setting value number of _143 to _143 (changed) Value numbering _144 stmt = _144 = _143->sizep; Setting value number of _144 to _144 (changed) Value numbering .MEM_146 stmt = luaF_close (L_10(D), base_139); Setting value number of .MEM_146 to .MEM_146 (changed) SCC consists of: .MEM_8 Starting iteration 1 Value numbering .MEM_8 stmt = .MEM_8 = PHI <.MEM_142(21), .MEM_146(23)> Setting value number of .MEM_8 to .MEM_8 (changed) Starting iteration 2 Value numbering .MEM_8 stmt = .MEM_8 = PHI <.MEM_142(21), .MEM_146(23)> Setting value number of .MEM_8 to .MEM_8 Processing SCC needed 2 iterations Value numbering _14 stmt = _14 = L_10(D)->ci; Setting value number of _14 to _16 (changed) Value numbering _148 stmt = _148 = base_139 + 16; Setting value number of _148 to _148 (changed) Value numbering .MEM_149 stmt = luaD_poscall (L_10(D), _148); Setting value number of .MEM_149 to .MEM_149 (changed) Value numbers: isfalse_0_10_3 = 1 iftmp.3_4 = 1 .MEM_7 = .MEM_62 _11 = _16 _14 = _16 _30 = _22 _31 = _23 _36 = _18 base_37 = base_19 _40 = _34 _44 = _34 _55 = _18 base_56 = base_19 _63 = _18 base_64 = base_19 _67 = 1 _71 = 1 _75 = 0 _84 = _18 base_85 = base_19 _92 = _18 base_93 = base_19 _96 = _22 _97 = _23 _104 = _22 _105 = _23 _110 = _18 base_111 = base_19 _114 = _108 _118 = _108 _122 = 0 _129 = _18 base_130 = base_19 Replaced L_10(D)->ci with _11 in all uses of _14 = L_10(D)->ci; Replaced L_10(D)->ci with _11 in all uses of _16 = L_10(D)->ci; Replaced cl_13->p with _22 in all uses of _30 = cl_13->p; Replaced _30->k with _23 in all uses of _31 = _30->k; Replaced L_10(D)->ci with _18 in all uses of _36 = L_10(D)->ci; Replaced _36->u.l.base with base_19 in all uses of base_37 = _36->u.l.base; Replaced MEM[(struct ravi_TValue *)base_37 + 16B].tt_ with _34 in all uses of _40 = MEM[(struct ravi_TValue *)base_37 + 16B].tt_; Replaced MEM[(struct ravi_TValue *)base_37 + 16B].tt_ with _34 in all uses of _44 = MEM[(struct ravi_TValue *)base_37 + 16B].tt_; Replaced L_10(D)->ci with _18 in all uses of _55 = L_10(D)->ci; Replaced _55->u.l.base with base_19 in all uses of base_56 = _55->u.l.base; Replaced L_10(D)->ci with _18 in all uses of _63 = L_10(D)->ci; Replaced _63->u.l.base with base_19 in all uses of base_64 = _63->u.l.base; Replaced MEM[(struct ravi_TValue *)base_64 + 16B].tt_ with 1 in all uses of _67 = MEM[(struct ravi_TValue *)base_64 + 16B].tt_; Replaced MEM[(struct ravi_TValue *)base_64 + 16B].tt_ with 1 in all uses of _71 = MEM[(struct ravi_TValue *)base_64 + 16B].tt_; Replaced MEM[(struct ravi_TValue *)base_64 + 16B].value_.b with 0 in all uses of _75 = MEM[(struct ravi_TValue *)base_64 + 16B].value_.b; gimple_simplified to if (1 == 0) gimple_simplified to if (1 == 1) gimple_simplified to if (1 == 1) Replaced redundant PHI node defining iftmp.3_4 with 1 gimple_simplified to if (1 == 1) Replaced redundant PHI node defining isfalse_0_10_3 with 1 gimple_simplified to _82 = 0; gimple_simplified to if (1 == 1) Replaced L_10(D)->ci with _18 in all uses of _84 = L_10(D)->ci; Replaced _84->u.l.base with base_19 in all uses of base_85 = _84->u.l.base; Replaced L_10(D)->ci with _18 in all uses of _92 = L_10(D)->ci; Replaced _92->u.l.base with base_19 in all uses of base_93 = _92->u.l.base; Replaced cl_13->p with _22 in all uses of _96 = cl_13->p; Replaced _96->k with _23 in all uses of _97 = _96->k; Replaced cl_13->p with _22 in all uses of _104 = cl_13->p; Replaced _104->k with _23 in all uses of _105 = _104->k; Replaced L_10(D)->ci with _18 in all uses of _110 = L_10(D)->ci; Replaced _110->u.l.base with base_19 in all uses of base_111 = _110->u.l.base; Replaced MEM[(struct ravi_TValue *)base_111 + 16B].tt_ with _108 in all uses of _114 = MEM[(struct ravi_TValue *)base_111 + 16B].tt_; Replaced MEM[(struct ravi_TValue *)base_111 + 16B].tt_ with _108 in all uses of _118 = MEM[(struct ravi_TValue *)base_111 + 16B].tt_; Replaced MEM[(struct ravi_TValue *)base_111 + 16B].value_.b with 0 in all uses of _122 = MEM[(struct ravi_TValue *)base_111 + 16B].value_.b; gimple_simplified to if (1 == 1) Replaced L_10(D)->ci with _18 in all uses of _129 = L_10(D)->ci; Replaced _129->u.l.base with base_19 in all uses of base_130 = _129->u.l.base; Deleted redundant store MEM[(struct ravi_TValue *)base_130 + 16B].value_.b = 0; Removing dead stmt MEM[(struct ravi_TValue *)base_130 + 16B].value_.b = 0; Removing dead stmt base_130 = _129->u.l.base; Removing dead stmt _129 = L_10(D)->ci; Removing dead stmt _122 = MEM[(struct ravi_TValue *)base_111 + 16B].value_.b; Removing dead stmt _118 = MEM[(struct ravi_TValue *)base_111 + 16B].tt_; Removing dead stmt _114 = MEM[(struct ravi_TValue *)base_111 + 16B].tt_; Removing dead stmt base_111 = _110->u.l.base; Removing dead stmt _110 = L_10(D)->ci; Removing dead stmt _105 = _104->k; Removing dead stmt _104 = cl_13->p; Removing dead stmt _97 = _96->k; Removing dead stmt _96 = cl_13->p; Removing dead stmt base_93 = _92->u.l.base; Removing dead stmt _92 = L_10(D)->ci; Removing dead stmt base_85 = _84->u.l.base; Removing dead stmt _84 = L_10(D)->ci; Removing dead stmt isfalse_0_10_3 = PHI <1(12), 0(13), 1(8)> Removing dead stmt iftmp.3_4 = PHI <1(10), 0(11)> Removing dead stmt _75 = MEM[(struct ravi_TValue *)base_64 + 16B].value_.b; Removing dead stmt _71 = MEM[(struct ravi_TValue *)base_64 + 16B].tt_; Removing dead stmt _67 = MEM[(struct ravi_TValue *)base_64 + 16B].tt_; Removing dead stmt base_64 = _63->u.l.base; Removing dead stmt _63 = L_10(D)->ci; Removing dead stmt base_56 = _55->u.l.base; Removing dead stmt _55 = L_10(D)->ci; Removing dead stmt _44 = MEM[(struct ravi_TValue *)base_37 + 16B].tt_; Removing dead stmt _40 = MEM[(struct ravi_TValue *)base_37 + 16B].tt_; Removing dead stmt base_37 = _36->u.l.base; Removing dead stmt _36 = L_10(D)->ci; Removing dead stmt _31 = _30->k; Removing dead stmt _30 = cl_13->p; Removing dead stmt _16 = L_10(D)->ci; Removing dead stmt _14 = L_10(D)->ci; Merging blocks 8 and 9 Removing basic block 10 basic block 10, loop depth 0 pred: goto ; succ: 12 Removing basic block 11 basic block 11, loop depth 0 pred: succ: 12 Removing basic block 13 basic block 13, loop depth 0 pred: 12 succ: 14 Removing basic block 12 basic block 12, loop depth 0 pred: succ: 14 Removing basic block 22 basic block 22, loop depth 0 pred: 14 OP_TEST_do_skip_5_15: base_19->value_.b = 1; base_19->tt_ = 1; goto (OP_TEST_do_jmp_5_14); succ: 15 Removing basic block 17 basic block 17, loop depth 0 pred: goto ; succ: 19 Merging blocks 8 and 14 Merging blocks 8 and 15 fix_loop_structure: fixing up loops for function 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; iftmp.1_2; iftmp.5_6; struct ravi_CallInfo * _11; struct ravi_TValue * _12; struct ravi_CallInfo * _18; struct ravi_Proto * _22; struct ravi_TValue * _23; signed long _26; signed int _34; signed int _48; _82; signed long _100; signed int _108; struct ravi_CallInfo * _138; struct ravi_TValue * _141; struct ravi_Proto * _143; signed int _144; struct ravi_TValue * _148; entry: _11 = L_10(D)->ci; _12 = _11->func; cl_13 = _12->value_.gc; base_15 = _11->u.l.base; raviV_op_loadnil (_11, 0, 0); _18 = L_10(D)->ci; base_19 = _18->u.l.base; _22 = cl_13->p; _23 = _22->k; _26 = _23->value_.i; MEM[(struct ravi_TValue *)base_19 + 16B].value_.i = _26; _34 = _23->tt_; MEM[(struct ravi_TValue *)base_19 + 16B].tt_ = _34; _48 = MEM[(struct ravi_TValue *)base_19 + 16B].value_.b; if (_34 == 0) goto ; else goto ; : if (_34 == 1) goto ; else goto ; : if (_48 == 0) goto ; else goto ; : : # iftmp.1_2 = PHI <1(4), 0(5)> if (iftmp.1_2 != 0) goto ; else goto ; : : # isfalse_0_4_1 = PHI <1(6), 0(7), 1(2)> MEM[(struct ravi_TValue *)base_19 + 16B].value_.b = 0; MEM[(struct ravi_TValue *)base_19 + 16B].tt_ = 1; _82 = 0; _100 = _23->value_.i; MEM[(struct ravi_TValue *)base_19 + 16B].value_.i = _100; _108 = _23->tt_; MEM[(struct ravi_TValue *)base_19 + 16B].tt_ = _108; if (_108 == 0) goto ; else goto ; : if (_108 == 1) goto ; else goto ; : : # iftmp.5_6 = PHI <1(9), 0(10)> if (iftmp.5_6 != 0) goto ; else goto ; : : # isfalse_0_16_5 = PHI <1(11), 0(12), 1(8)> MEM[(struct ravi_TValue *)base_19 + 16B].tt_ = 1; printf ("OP_RETURN(pc=%d) return %d args", 13, 1); _138 = L_10(D)->ci; base_139 = _138->u.l.base; _141 = base_139 + 32; L_10(D)->top = _141; _143 = cl_13->p; _144 = _143->sizep; if (_144 > 0) goto (OP_RETURN_if_sizep_gt_0_12_23); else goto (OP_RETURN_else_sizep_gt_0_12_24); OP_RETURN_if_sizep_gt_0_12_23: luaF_close (L_10(D), base_139); OP_RETURN_else_sizep_gt_0_12_24: _148 = base_139 + 16; luaD_poscall (L_10(D), _148); return 1; } ; end of dump from pass_fre (../../src/gcc/tree-ssa-pre.c:4927)