This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/28798] remove_phi_node attempts removal of a phi node resized by resize_phi_node



------- Comment #15 from hosking at cs dot purdue dot edu  2006-08-29 15:52 -------
Sorry, my information was in error last time.  It seems I got the src/dest
information wrong for the edge being split.  The edge is between blocks 32 and
33 in the dump below:

;; Function TrestleGoo__PutProp (TrestleGoo__PutProp)

TrestleGoo__PutProp (M3_BFdKo9_vv, M3_Af40ku_ref)
{
  <unnamed type> * M3_BFdKo9_v;
  word_32 M3_Cwb5VA_tc;
  <unnamed type> * M3_BhAG13_p;
  <unnamed type> * M3_BhAG13_e;
  struct 
  {
  } L_2;
  <unnamed type> * D.403;
  <unnamed type> * D.406;
  <unnamed type> * D.407;
  <unnamed type> * D.419;
  <unnamed type> (*<T181>) (<unnamed type> *) D.506;
  <unnamed type> * D.505;
  <unnamed type> * * D.504;
  <unnamed type> * D.503;
  <unnamed type> * D.502;
  <unnamed type> * * L_2.3;
  <unnamed type> D.500;
  <unnamed type> D.499;
  word_32 D.498;
  word_32 D.497;
  word_32 D.496;
  int_32 D.495;
  int_32 * D.494;
  <unnamed type> * D.493;
  <unnamed type> * * D.492;
  <unnamed type> * * D.491;
  <unnamed type> D.490;
  word_32 D.489;
  word_32 D.488;
  int_32 M3_Cwb5VA_tc.2;
  <unnamed type> D.486;
  <unnamed type> D.485;
  word_32 D.484;
  word_32 D.483;
  word_32 D.482;
  int_32 D.481;
  int_32 * D.480;
  <unnamed type> * D.479;
  <unnamed type> * * D.478;
  <unnamed type> * D.477;
  <unnamed type> D.476;
  <unnamed type> D.475;
  word_32 D.474;
  word_32 D.473;
  word_32 D.472;
  int_32 D.471;
  int_32 * D.470;
  <unnamed type> * D.469;
  <unnamed type> * * M3_BhAG13_e.1;
  <unnamed type> * * D.467;
  <unnamed type> * * D.466;
  <unnamed type> * D.465;
  <unnamed type> * D.464;
  <unnamed type> * D.463;
  <unnamed type> * * D.462;
  <unnamed type> * D.461;
  int_32 D.460;
  <unnamed type> * D.459;
  int_32 D.458;
  int_32 * D.457;
  <unnamed type> * D.456;
  int_32 D.455;
  word_32 D.454;
  word_32 D.453;
  word_32 D.452;
  int_32 D.451;
  int_32 * D.450;
  <unnamed type> * D.449;
  <unnamed type> * D.448;
  int_32 * D.447;
  <unnamed type> * D.446;
  <unnamed type> (*<T181>) (<unnamed type> *) D.445;
  <unnamed type> * D.444;
  <unnamed type> * * D.443;
  <unnamed type> * D.442;
  <unnamed type> * * D.441;
  <unnamed type> * D.440;
  <unnamed type> * * D.439;
  <unnamed type> * D.438;
  <unnamed type> D.437;
  <unnamed type> D.436;
  word_32 D.435;
  word_32 D.434;
  word_32 D.433;
  int_32 D.432;
  int_32 * D.431;
  <unnamed type> * D.430;
  <unnamed type> * D.429;
  <unnamed type> * * D.428;
  <unnamed type> * D.427;

  # BLOCK 0 freq:1000
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  D.427_4 = &MM_TrestleGoo + 52;
  D.428_5 = (<unnamed type> * *) D.427_4;
  #   VUSE <MM_TrestleGoo_197>;
  D.429_6 = *D.428_5;
  if (D.429_6 == 0B) goto <L43>; else goto <L0>;
  # SUCC: 43 [19.0%]  (true,exec) 1 [81.0%]  (false,exec)

  # BLOCK 43 freq:190
  # PRED: 0 [19.0%]  (true,exec)
<L43>:;
  goto <bb 3> (<L2>);
  # SUCC: 3 [100.0%]  (fallthru)

  # BLOCK 1 freq:810
  # PRED: 0 [81.0%]  (false,exec)
<L0>:;
  D.430_166 = D.429_6 + ffffffffffffffff;
  D.431_167 = (int_32 *) D.430_166;
  #   VUSE <MM_TrestleGoo_197>;
  #   VUSE <L_2_198>;
  D.432_168 = *D.431_167;
  D.433_169 = (word_32) D.432_168;
  D.434_170 = D.433_169 << 22;
  D.435_171 = D.434_170 >> 31;
  if (D.435_171 == 0) goto <L44>; else goto <L1>;
  # SUCC: 44 [70.0%]  (true,exec) 2 [30.0%]  (false,exec)

  # BLOCK 44 freq:567
  # PRED: 1 [70.0%]  (true,exec)
<L44>:;
  goto <bb 3> (<L2>);
  # SUCC: 3 [100.0%]  (fallthru)

  # BLOCK 2 freq:243
  # PRED: 1 [30.0%]  (false,exec)
<L1>:;
  #   MM_TrestleGoo_239 = V_MAY_DEF <MM_TrestleGoo_197>;
  #   L_2_240 = V_MAY_DEF <L_2_198>;
  RTHooks__CheckLoadTracedRef (D.429_6);
  # SUCC: 3 [100.0%]  (fallthru,exec)

  # BLOCK 3 freq:1000
  # PRED: 43 [100.0%]  (fallthru) 44 [100.0%]  (fallthru) 2 [100.0%] 
(fallthru,exec)
  # L_2_187 = PHI <L_2_198(43), L_2_198(44), L_2_240(2)>;
  # MM_TrestleGoo_177 = PHI <MM_TrestleGoo_197(43), MM_TrestleGoo_197(44),
MM_TrestleGoo_239(2)>;
<L2>:;
  D.438_7 = &L_2 + 8;
  D.439_8 = (<unnamed type> * *) D.438_7;
  #   VUSE <MM_TrestleGoo_177>;
  D.440_11 = *D.428_5;
  #   L_2_199 = V_MAY_DEF <L_2_187>;
  *D.439_8 = D.440_11;
  D.441_15 = (<unnamed type> * *) D.440_11;
  #   VUSE <MM_TrestleGoo_177>;
  #   VUSE <L_2_199>;
  D.442_16 = *D.441_15;
  D.443_17 = (<unnamed type> * *) D.442_16;
  #   VUSE <MM_TrestleGoo_177>;
  #   VUSE <L_2_199>;
  D.444_18 = *D.443_17;
  D.445_19 = (<unnamed type> (*<T181>) (<unnamed type> *)) D.444_18;
  #   MM_TrestleGoo_200 = V_MAY_DEF <MM_TrestleGoo_177>;
  #   L_2_201 = V_MAY_DEF <L_2_199>;
  D.445_19 (D.440_11);
  # SUCC: 4 [100.0%]  (fallthru,exec)

  # BLOCK 4 freq:1000
  # PRED: 3 [100.0%]  (fallthru,exec)
<L3>:;
  D.446_23 = &L_2 + 4;
  D.447_24 = (int_32 *) D.446_23;
  #   L_2_202 = V_MAY_DEF <L_2_201>;
  *D.447_24 = 6;
  #   MM_TrestleGoo_203 = V_MAY_DEF <MM_TrestleGoo_200>;
  #   L_2_204 = V_MAY_DEF <L_2_202>;
  RTHooks__PushEFrame (&L_2);
  # SUCC: 5 [100.0%]  (fallthru,exec)

  # BLOCK 5 freq:1000
  # PRED: 4 [100.0%]  (fallthru,exec)
  #   MM_TrestleGoo_205 = V_MAY_DEF <MM_TrestleGoo_203>;
  #   L_2_206 = V_MAY_DEF <L_2_204>;
  D.403_26 = TrestleGoo__TrueChild (M3_BFdKo9_vv_25);
  # SUCC: 6 [100.0%]  (fallthru,exec)

  # BLOCK 6 freq:1000
  # PRED: 5 [100.0%]  (fallthru,exec)
  if (M3_Af40ku_ref_29 == 0B) goto <L45>; else goto <L4>;
  # SUCC: 45 [19.0%]  (true,exec) 7 [81.0%]  (false,exec)

  # BLOCK 45 freq:190
  # PRED: 6 [19.0%]  (true,exec)
<L45>:;
  goto <bb 8> (<L5>);
  # SUCC: 8 [100.0%]  (fallthru)

  # BLOCK 7 freq:810
  # PRED: 6 [81.0%]  (false,exec)
<L4>:;
  D.449_156 = M3_Af40ku_ref_29 + ffffffffffffffff;
  D.450_157 = (int_32 *) D.449_156;
  #   VUSE <MM_TrestleGoo_205>;
  #   VUSE <L_2_206>;
  D.451_158 = *D.450_157;
  D.452_159 = (word_32) D.451_158;
  D.453_160 = D.452_159 << 1;
  D.454_161 = D.453_160 >> 12;
  D.403_162 = (<unnamed type> *) D.454_161;
  # SUCC: 8 [100.0%]  (fallthru,exec)

  # BLOCK 8 freq:1000
  # PRED: 45 [100.0%]  (fallthru) 7 [100.0%]  (fallthru,exec)
  # D.403_2 = PHI <M3_Af40ku_ref_29(45), D.403_162(7)>;
<L5>:;
  D.455_31 = (int_32) D.403_2;
  M3_Cwb5VA_tc_32 = (word_32) D.455_31;
  D.456_33 = &MM_TrestleGoo + 208;
  D.457_34 = (int_32 *) D.456_33;
  #   VUSE <MM_TrestleGoo_205>;
  D.458_35 = *D.457_34;
  #   MM_TrestleGoo_207 = V_MAY_DEF <MM_TrestleGoo_205>;
  #   L_2_208 = V_MAY_DEF <L_2_206>;
  D.403_36 = VBT__GetProp (D.403_26, D.458_35);
  # SUCC: 9 [100.0%]  (fallthru,exec)

  # BLOCK 9 freq:1000
  # PRED: 8 [100.0%]  (fallthru,exec)
  if (D.403_36 == 0B) goto <L46>; else goto <L6>;
  # SUCC: 46 [19.0%]  (true,exec) 10 [81.0%]  (false,exec)

  # BLOCK 46 freq:190
  # PRED: 9 [19.0%]  (true,exec)
<L46>:;
  goto <bb 12> (<L8>);
  # SUCC: 12 [100.0%]  (fallthru)

  # BLOCK 10 freq:810
  # PRED: 9 [81.0%]  (false,exec)
<L6>:;
  D.449_146 = D.403_36 + ffffffffffffffff;
  D.450_147 = (int_32 *) D.449_146;
  #   VUSE <MM_TrestleGoo_207>;
  #   VUSE <L_2_208>;
  D.451_148 = *D.450_147;
  D.452_149 = (word_32) D.451_148;
  D.453_150 = D.452_149 << 1;
  D.454_151 = D.453_150 >> 12;
  D.460_152 = (int_32) D.454_151;
  #   VUSE <MM_TrestleGoo_207>;
  D.458_155 = *D.457_34;
  if (D.460_152 == D.458_155) goto <L47>; else goto <L7>;
  # SUCC: 47 [48.8%]  (true,exec) 11 [51.2%]  (false,exec)

  # BLOCK 47 freq:395
  # PRED: 10 [48.8%]  (true,exec)
<L47>:;
  goto <bb 12> (<L8>);
  # SUCC: 12 [100.0%]  (fallthru)

  # BLOCK 11 freq:415
  # PRED: 10 [51.2%]  (false,exec)
<L7>:;
  #   MM_TrestleGoo_237 = V_MAY_DEF <MM_TrestleGoo_207>;
  #   L_2_238 = V_MAY_DEF <L_2_208>;
  _m3_fault (1349);
  # SUCC: 12 [100.0%]  (fallthru,exec)

  # BLOCK 12 freq:1000
  # PRED: 46 [100.0%]  (fallthru) 47 [100.0%]  (fallthru) 11 [100.0%] 
(fallthru,exec)
  # L_2_188 = PHI <L_2_208(46), L_2_208(47), L_2_238(11)>;
  # MM_TrestleGoo_178 = PHI <MM_TrestleGoo_207(46), MM_TrestleGoo_207(47),
MM_TrestleGoo_237(11)>;
<L8>:;
  D.461_39 = &MM_TrestleGoo + 204;
  D.462_40 = (<unnamed type> * *) D.461_39;
  #   VUSE <MM_TrestleGoo_178>;
  D.463_41 = *D.462_40;
  #   MM_TrestleGoo_209 = V_MAY_DEF <MM_TrestleGoo_178>;
  #   L_2_210 = V_MAY_DEF <L_2_188>;
  D.403_42 = RTHooks__Allocate (D.463_41);
  # SUCC: 13 [100.0%]  (fallthru,exec)

  # BLOCK 13 freq:1000
  # PRED: 12 [100.0%]  (fallthru,exec)
  D.465_45 = D.403_42 + 4;
  D.466_46 = (<unnamed type> * *) D.465_45;
  #   MM_TrestleGoo_211 = V_MAY_DEF <MM_TrestleGoo_209>;
  #   L_2_212 = V_MAY_DEF <L_2_210>;
  *D.466_46 = M3_Af40ku_ref_29;
  D.467_48 = (<unnamed type> * *) D.403_42;
  #   MM_TrestleGoo_213 = V_MAY_DEF <MM_TrestleGoo_211>;
  #   L_2_214 = V_MAY_DEF <L_2_212>;
  *D.467_48 = D.403_36;
  #   MM_TrestleGoo_215 = V_MAY_DEF <MM_TrestleGoo_213>;
  #   L_2_216 = V_MAY_DEF <L_2_214>;
  VBT__PutProp (D.403_26, D.403_42);
  goto <bb 34> (<L40>);
  # SUCC: 34 [100.0%]  (fallthru,exec)

  # BLOCK 14 freq:9000
  # PRED: 42 [100.0%]  (fallthru,exec)
<L9>:;
  #   VUSE <MM_TrestleGoo_98>;
  #   VUSE <L_2_74>;
  D.407_67 = *M3_BhAG13_e.1_50;
  if (D.407_67 == 0B) goto <L48>; else goto <L10>;
  # SUCC: 48 [19.0%]  (true,exec) 15 [81.0%]  (false,exec)

  # BLOCK 48 freq:1710
  # PRED: 14 [19.0%]  (true,exec)
<L48>:;
  goto <bb 17> (<L12>);
  # SUCC: 17 [100.0%]  (fallthru)

  # BLOCK 15 freq:7290
  # PRED: 14 [81.0%]  (false,exec)
<L10>:;
  D.469_130 = D.407_67 + ffffffffffffffff;
  D.470_131 = (int_32 *) D.469_130;
  #   VUSE <MM_TrestleGoo_98>;
  #   VUSE <L_2_74>;
  D.471_132 = *D.470_131;
  D.472_133 = (word_32) D.471_132;
  D.473_134 = D.472_133 << 22;
  D.474_135 = D.473_134 >> 31;
  if (D.474_135 == 0) goto <L49>; else goto <L11>;
  # SUCC: 49 [70.0%]  (true,exec) 16 [30.0%]  (false,exec)

  # BLOCK 49 freq:5103
  # PRED: 15 [70.0%]  (true,exec)
<L49>:;
  goto <bb 17> (<L12>);
  # SUCC: 17 [100.0%]  (fallthru)

  # BLOCK 16 freq:2187
  # PRED: 15 [30.0%]  (false,exec)
<L11>:;
  #   MM_TrestleGoo_233 = V_MAY_DEF <MM_TrestleGoo_98>;
  #   L_2_234 = V_MAY_DEF <L_2_74>;
  RTHooks__CheckLoadTracedRef (D.407_67);
  # SUCC: 17 [100.0%]  (fallthru,exec)

  # BLOCK 17 freq:9000
  # PRED: 48 [100.0%]  (fallthru) 49 [100.0%]  (fallthru) 16 [100.0%] 
(fallthru,exec)
  # L_2_189 = PHI <L_2_74(48), L_2_74(49), L_2_234(16)>;
  # MM_TrestleGoo_179 = PHI <MM_TrestleGoo_98(48), MM_TrestleGoo_98(49),
MM_TrestleGoo_233(16)>;
<L12>:;
  D.477_68 = D.407_67 + 4;
  D.478_69 = (<unnamed type> * *) D.477_68;
  #   VUSE <MM_TrestleGoo_179>;
  #   VUSE <L_2_189>;
  D.406_70 = *D.478_69;
  if (D.406_70 == 0B) goto <L50>; else goto <L13>;
  # SUCC: 50 [19.0%]  (true,exec) 18 [81.0%]  (false,exec)

  # BLOCK 18 freq:7290
  # PRED: 17 [81.0%]  (false,exec)
<L13>:;
  D.479_122 = D.406_70 + ffffffffffffffff;
  D.480_123 = (int_32 *) D.479_122;
  #   VUSE <MM_TrestleGoo_179>;
  #   VUSE <L_2_189>;
  D.481_124 = *D.480_123;
  D.482_125 = (word_32) D.481_124;
  D.483_126 = D.482_125 << 22;
  D.484_127 = D.483_126 >> 31;
  if (D.484_127 == 0) goto <L51>; else goto <L14>;
  # SUCC: 51 [70.0%]  (true,exec) 19 [30.0%]  (false,exec)

  # BLOCK 19 freq:2187
  # PRED: 18 [30.0%]  (false,exec)
<L14>:;
  #   MM_TrestleGoo_231 = V_MAY_DEF <MM_TrestleGoo_179>;
  #   L_2_232 = V_MAY_DEF <L_2_189>;
  RTHooks__CheckLoadTracedRef (D.406_70);
  goto <bb 41> (<L41>);
  # SUCC: 41 [100.0%]  (fallthru,exec)

  # BLOCK 50 freq:1710
  # PRED: 17 [19.0%]  (true,exec)
<L50>:;
  # SUCC: 20 [100.0%]  (fallthru)

  # BLOCK 20 freq:9000
  # PRED: 50 [100.0%]  (fallthru) 41 [100.0%]  (fallthru,exec)
  # L_2_85 = PHI <L_2_189(50), L_2_55(41)>;
  # MM_TrestleGoo_93 = PHI <MM_TrestleGoo_179(50), MM_TrestleGoo_76(41)>;
  # D.403_3 = PHI <0B(50), D.403_121(41)>;
<L17>:;
  D.455_72 = (int_32) D.403_3;
  M3_Cwb5VA_tc.2_73 = (int_32) M3_Cwb5VA_tc_32;
  if (D.455_72 != M3_Cwb5VA_tc.2_73) goto <L27>; else goto <L18>;
  # SUCC: 30 [71.0%]  (true,exec) 21 [29.0%]  (false,exec)

  # BLOCK 21 freq:2610
  # PRED: 20 [29.0%]  (false,exec)
<L18>:;
  D.449_86 = M3_BhAG13_e_1 + ffffffffffffffff;
  D.450_87 = (int_32 *) D.449_86;
  #   VUSE <MM_TrestleGoo_93>;
  #   VUSE <L_2_85>;
  D.451_88 = *D.450_87;
  D.452_89 = (word_32) D.451_88;
  D.488_90 = D.452_89 << 21;
  D.489_91 = D.488_90 >> 31;
  if (D.489_91 != 0) goto <L52>; else goto <L19>;
  # SUCC: 52 [70.0%]  (true,exec) 22 [30.0%]  (false,exec)

  # BLOCK 52 freq:1827
  # PRED: 21 [70.0%]  (true,exec)
<L52>:;
  goto <bb 23> (<L20>);
  # SUCC: 23 [100.0%]  (fallthru)

  # BLOCK 22 freq:783
  # PRED: 21 [30.0%]  (false,exec)
<L19>:;
  #   MM_TrestleGoo_229 = V_MAY_DEF <MM_TrestleGoo_93>;
  #   L_2_230 = V_MAY_DEF <L_2_85>;
  RTHooks__CheckStoreTraced (M3_BhAG13_e_1);
  # SUCC: 23 [100.0%]  (fallthru,exec)

  # BLOCK 23 freq:2610
  # PRED: 52 [100.0%]  (fallthru) 22 [100.0%]  (fallthru,exec)
  # L_2_191 = PHI <L_2_85(52), L_2_230(22)>;
  # MM_TrestleGoo_181 = PHI <MM_TrestleGoo_93(52), MM_TrestleGoo_229(22)>;
<L20>:;
  #   VUSE <MM_TrestleGoo_181>;
  #   VUSE <L_2_191>;
  D.406_94 = *M3_BhAG13_e.1_50;
  if (D.406_94 == 0B) goto <L53>; else goto <L21>;
  # SUCC: 53 [19.0%]  (true,exec) 24 [81.0%]  (false,exec)

  # BLOCK 53 freq:496
  # PRED: 23 [19.0%]  (true,exec)
<L53>:;
  goto <bb 26> (<L23>);
  # SUCC: 26 [100.0%]  (fallthru)

  # BLOCK 24 freq:2114
  # PRED: 23 [81.0%]  (false,exec)
<L21>:;
  D.479_107 = D.406_94 + ffffffffffffffff;
  D.480_108 = (int_32 *) D.479_107;
  #   VUSE <MM_TrestleGoo_181>;
  #   VUSE <L_2_191>;
  D.481_109 = *D.480_108;
  D.482_110 = (word_32) D.481_109;
  D.483_111 = D.482_110 << 22;
  D.484_112 = D.483_111 >> 31;
  if (D.484_112 == 0) goto <L54>; else goto <L22>;
  # SUCC: 54 [70.0%]  (true,exec) 25 [30.0%]  (false,exec)

  # BLOCK 54 freq:1480
  # PRED: 24 [70.0%]  (true,exec)
<L54>:;
  goto <bb 26> (<L23>);
  # SUCC: 26 [100.0%]  (fallthru)

  # BLOCK 25 freq:634
  # PRED: 24 [30.0%]  (false,exec)
<L22>:;
  #   MM_TrestleGoo_227 = V_MAY_DEF <MM_TrestleGoo_181>;
  #   L_2_228 = V_MAY_DEF <L_2_191>;
  RTHooks__CheckLoadTracedRef (D.406_94);
  # SUCC: 26 [100.0%]  (fallthru,exec)

  # BLOCK 26 freq:2610
  # PRED: 53 [100.0%]  (fallthru) 54 [100.0%]  (fallthru) 25 [100.0%] 
(fallthru,exec)
  # L_2_192 = PHI <L_2_191(53), L_2_191(54), L_2_228(25)>;
  # MM_TrestleGoo_182 = PHI <MM_TrestleGoo_181(53), MM_TrestleGoo_181(54),
MM_TrestleGoo_227(25)>;
<L23>:;
  D.491_95 = (<unnamed type> * *) D.406_94;
  #   VUSE <MM_TrestleGoo_182>;
  #   VUSE <L_2_192>;
  D.407_96 = *D.491_95;
  if (D.407_96 == 0B) goto <L55>; else goto <L24>;
  # SUCC: 55 [19.0%]  (true,exec) 27 [81.0%]  (false,exec)

  # BLOCK 55 freq:496
  # PRED: 26 [19.0%]  (true,exec)
<L55>:;
  goto <bb 29> (<L26>);
  # SUCC: 29 [100.0%]  (fallthru)

  # BLOCK 27 freq:2114
  # PRED: 26 [81.0%]  (false,exec)
<L24>:;
  D.469_99 = D.407_96 + ffffffffffffffff;
  D.470_100 = (int_32 *) D.469_99;
  #   VUSE <MM_TrestleGoo_182>;
  #   VUSE <L_2_192>;
  D.471_101 = *D.470_100;
  D.472_102 = (word_32) D.471_101;
  D.473_103 = D.472_102 << 22;
  D.474_104 = D.473_103 >> 31;
  if (D.474_104 == 0) goto <L56>; else goto <L25>;
  # SUCC: 56 [70.0%]  (true,exec) 28 [30.0%]  (false,exec)

  # BLOCK 56 freq:1480
  # PRED: 27 [70.0%]  (true,exec)
<L56>:;
  goto <bb 29> (<L26>);
  # SUCC: 29 [100.0%]  (fallthru)

  # BLOCK 28 freq:634
  # PRED: 27 [30.0%]  (false,exec)
<L25>:;
  #   MM_TrestleGoo_225 = V_MAY_DEF <MM_TrestleGoo_182>;
  #   L_2_226 = V_MAY_DEF <L_2_192>;
  RTHooks__CheckLoadTracedRef (D.407_96);
  # SUCC: 29 [100.0%]  (fallthru,exec)

  # BLOCK 29 freq:2610
  # PRED: 55 [100.0%]  (fallthru) 56 [100.0%]  (fallthru) 28 [100.0%] 
(fallthru,exec)
  # L_2_193 = PHI <L_2_192(55), L_2_192(56), L_2_226(28)>;
  # MM_TrestleGoo_183 = PHI <MM_TrestleGoo_182(55), MM_TrestleGoo_182(56),
MM_TrestleGoo_225(28)>;
<L26>:;
  #   MM_TrestleGoo_223 = V_MAY_DEF <MM_TrestleGoo_183>;
  #   L_2_224 = V_MAY_DEF <L_2_193>;
  *M3_BhAG13_e.1_50 = D.407_96;
  goto <bb 33> (<L31>);
  # SUCC: 33 [100.0%]  (fallthru,exec)

  # BLOCK 30 freq:6390
  # PRED: 20 [71.0%]  (true,exec)
<L27>:;
  #   VUSE <MM_TrestleGoo_93>;
  #   VUSE <L_2_85>;
  D.419_75 = *M3_BhAG13_e.1_50;
  if (D.419_75 == 0B) goto <L57>; else goto <L28>;
  # SUCC: 57 [19.0%]  (true,exec) 31 [81.0%]  (false,exec)

  # BLOCK 57 freq:1214
  # PRED: 30 [19.0%]  (true,exec)
<L57>:;
  goto <bb 33> (<L31>);
  # SUCC: 33 [100.0%]  (fallthru)

  # BLOCK 31 freq:5176
  # PRED: 30 [81.0%]  (false,exec)
<L28>:;
  D.493_77 = D.419_75 + ffffffffffffffff;
  D.494_78 = (int_32 *) D.493_77;
  #   VUSE <MM_TrestleGoo_93>;
  #   VUSE <L_2_85>;
  D.495_79 = *D.494_78;
  D.496_80 = (word_32) D.495_79;
  D.497_81 = D.496_80 << 22;
  D.498_82 = D.497_81 >> 31;
  if (D.498_82 == 0) goto <L58>; else goto <L29>;
  # SUCC: 58 [70.0%]  (true,exec) 32 [30.0%]  (false,exec)

  # BLOCK 58 freq:3623
  # PRED: 31 [70.0%]  (true,exec)
<L58>:;
  goto <bb 33> (<L31>);
  # SUCC: 33 [100.0%]  (fallthru)

  # BLOCK 32 freq:1553
  # PRED: 31 [30.0%]  (false,exec)
<L29>:;
  #   MM_TrestleGoo_221 = V_MAY_DEF <MM_TrestleGoo_93>;
  #   L_2_222 = V_MAY_DEF <L_2_85>;
  RTHooks__CheckLoadTracedRef (D.419_75);
  # SUCC: 33 [100.0%]  (fallthru,exec)

  # BLOCK 33 freq:9000
  # PRED: 32 [100.0%]  (fallthru,exec) 29 [100.0%]  (fallthru,exec) 58 [100.0%]
 (fallthru) 57 [100.0%]  (fallthru)
  # L_2_184 = PHI <L_2_222(32), L_2_224(29), L_2_85(58), L_2_85(57)>;
  # MM_TrestleGoo_194 = PHI <MM_TrestleGoo_221(32), MM_TrestleGoo_223(29),
MM_TrestleGoo_93(58), MM_TrestleGoo_93(57)>;
  # M3_BhAG13_e_65 = PHI <D.419_75(32), M3_BhAG13_e_1(29), D.419_75(58),
D.419_75(57)>;
<L31>:;
<L32>:;
  # SUCC: 34 [100.0%]  (fallthru,dfs_back,exec)

  # BLOCK 34 freq:10000
  # PRED: 33 [100.0%]  (fallthru,dfs_back,exec) 13 [100.0%]  (fallthru,exec)
  # L_2_195 = PHI <L_2_184(33), L_2_216(13)>;
  # MM_TrestleGoo_185 = PHI <MM_TrestleGoo_194(33), MM_TrestleGoo_215(13)>;
  # M3_BhAG13_e_1 = PHI <M3_BhAG13_e_65(33), D.403_42(13)>;
<L40>:;
  M3_BhAG13_e.1_50 = (<unnamed type> * *) M3_BhAG13_e_1;
  #   VUSE <MM_TrestleGoo_185>;
  #   VUSE <L_2_195>;
  D.419_51 = *M3_BhAG13_e.1_50;
  if (D.419_51 == 0B) goto <L35>; else goto <L33>;
  # SUCC: 37 [10.0%]  (loop_exit,true,exec) 35 [90.0%]  (false,exec)

  # BLOCK 35 freq:9000
  # PRED: 34 [90.0%]  (false,exec)
<L33>:;
  D.493_138 = D.419_51 + ffffffffffffffff;
  D.494_139 = (int_32 *) D.493_138;
  #   VUSE <MM_TrestleGoo_185>;
  #   VUSE <L_2_195>;
  D.495_140 = *D.494_139;
  D.496_141 = (word_32) D.495_140;
  D.497_142 = D.496_141 << 22;
  D.498_143 = D.497_142 >> 31;
  if (D.498_143 == 0) goto <L59>; else goto <L34>;
  # SUCC: 59 [70.0%]  (true,exec) 36 [30.0%]  (false,exec)

  # BLOCK 36 freq:2700
  # PRED: 35 [30.0%]  (false,exec)
<L34>:;
  #   MM_TrestleGoo_235 = V_MAY_DEF <MM_TrestleGoo_185>;
  #   L_2_236 = V_MAY_DEF <L_2_195>;
  RTHooks__CheckLoadTracedRef (D.419_51);
  goto <bb 42> (<L42>);
  # SUCC: 42 [100.0%]  (fallthru,exec)

  # BLOCK 37 freq:1000
  # PRED: 34 [10.0%]  (loop_exit,true,exec)
  # L_2_196 = PHI <L_2_195(34)>;
  # MM_TrestleGoo_186 = PHI <MM_TrestleGoo_185(34)>;
<L35>:;
  # SUCC: 38 [100.0%]  (fallthru,exec)

  # BLOCK 38 freq:1000
  # PRED: 37 [100.0%]  (fallthru,exec)
<L38>:;
  L_2.3_52 = (<unnamed type> * *) &L_2;
  #   VUSE <L_2_196>;
  D.502_53 = *L_2.3_52;
  #   MM_TrestleGoo_217 = V_MAY_DEF <MM_TrestleGoo_186>;
  #   L_2_218 = V_MAY_DEF <L_2_196>;
  RTHooks__PopEFrame (D.502_53);
  # SUCC: 39 [100.0%]  (fallthru,exec)

  # BLOCK 39 freq:1000
  # PRED: 38 [100.0%]  (fallthru,exec)
  #   VUSE <L_2_218>;
  D.440_56 = *D.439_8;
  D.441_57 = (<unnamed type> * *) D.440_56;
  #   VUSE <MM_TrestleGoo_217>;
  #   VUSE <L_2_218>;
  D.442_58 = *D.441_57;
  D.503_59 = D.442_58 + 4;
  D.504_60 = (<unnamed type> * *) D.503_59;
  #   VUSE <MM_TrestleGoo_217>;
  #   VUSE <L_2_218>;
  D.505_61 = *D.504_60;
  D.506_62 = (<unnamed type> (*<T181>) (<unnamed type> *)) D.505_61;
  #   MM_TrestleGoo_219 = V_MAY_DEF <MM_TrestleGoo_217>;
  #   L_2_220 = V_MAY_DEF <L_2_218>;
  D.506_62 (D.440_56);
  # SUCC: 40 [100.0%]  (fallthru,exec)

  # BLOCK 40 freq:1000
  # PRED: 39 [100.0%]  (fallthru,exec)
<L39>:;
  return;
  # SUCC: EXIT [100.0%] 

  # BLOCK 51 freq:5103
  # PRED: 18 [70.0%]  (true,exec)
<L51>:;
  # SUCC: 41 [100.0%]  (fallthru)

  # BLOCK 41 freq:7290
  # PRED: 19 [100.0%]  (fallthru,exec) 51 [100.0%]  (fallthru)
  # L_2_55 = PHI <L_2_232(19), L_2_189(51)>;
  # MM_TrestleGoo_76 = PHI <MM_TrestleGoo_231(19), MM_TrestleGoo_179(51)>;
<L41>:;
  #   VUSE <MM_TrestleGoo_76>;
  #   VUSE <L_2_55>;
  D.451_117 = *D.480_123;
  D.452_118 = (word_32) D.451_117;
  D.453_119 = D.452_118 << 1;
  D.454_120 = D.453_119 >> 12;
  D.403_121 = (<unnamed type> *) D.454_120;
  goto <bb 20> (<L17>);
  # SUCC: 20 [100.0%]  (fallthru,exec)

  # BLOCK 59 freq:6300
  # PRED: 35 [70.0%]  (true,exec)
<L59>:;
  # SUCC: 42 [100.0%]  (fallthru)

  # BLOCK 42 freq:9000
  # PRED: 36 [100.0%]  (fallthru,exec) 59 [100.0%]  (fallthru)
  # L_2_74 = PHI <L_2_236(36), L_2_195(59)>;
  # MM_TrestleGoo_98 = PHI <MM_TrestleGoo_235(36), MM_TrestleGoo_185(59)>;
<L42>:;
  goto <bb 14> (<L9>);
  # SUCC: 14 [100.0%]  (fallthru,exec)

}


Here is the gdb trace showing relevant information for the phi.

(gdb) p $15
$37 = (tree) 0x42591600
(gdb) info break
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x00141818 in create_phi_node at
../../gcc/gcc/tree-phinodes.c:362
        stop only if phi == $15
        breakpoint already hit 2 times
3   breakpoint     keep y   0x00141184 in resize_phi_node at
../../gcc/gcc/tree-phinodes.c:271
        stop only if *phi == $15
        breakpoint already hit 1 time
4   breakpoint     keep y   0x00141000 in release_phi_node at
../../gcc/gcc/tree-phinodes.c:245
        stop only if phi == $15
        breakpoint already hit 1 time
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /Users/hosking/cm3/m3-sys/m3cc/bug-28798/m3cgc1 -O1
-ftree-pre -fdump-tree-crited-vops-details-blocks-stats TrestleGoo.mc -o
TrestleGoo.ms
 TrestleGoo__Alias TrestleGoo__TrueChild TrestleGoo__PutProp
TrestleGoo__GetProp TrestleGoo__RemProp TrestleGoo__Next TrestleGoo_M3
Analyzing compilation unitPerforming intraprocedural optimizations
Assembling functions:
 TrestleGoo_M3 _m3_fault TrestleGoo__TrueChild TrestleGoo__Next
TrestleGoo__GetProp TrestleGoo__Alias TrestleGoo__RemProp TrestleGoo__PutProp
Breakpoint 1, create_phi_node (var=0x42448ae0, bb=0x4249a840) at
../../gcc/gcc/tree-phinodes.c:362
(gdb) c
Continuing.

Breakpoint 4, release_phi_node (phi=0x42591600) at
../../gcc/gcc/tree-phinodes.c:245
(gdb) c
Continuing.

Breakpoint 1, create_phi_node (var=0x4259d960, bb=0x4249ae40) at
../../gcc/gcc/tree-phinodes.c:362
(gdb) where
#0  create_phi_node (var=0x4259d960, bb=0x4249ae40) at
../../gcc/gcc/tree-phinodes.c:362
#1  0x00342800 in insert_aux (block=0x4249ae40) at
../../gcc/gcc/tree-ssa-pre.c:1706
#2  0x00342a78 in insert_aux (block=0x4249a900) at
../../gcc/gcc/tree-ssa-pre.c:1915
#3  0x00342a78 in insert_aux (block=0x4249a720) at
../../gcc/gcc/tree-ssa-pre.c:1915
#4  0x00342a78 in insert_aux (block=0x4249a600) at
../../gcc/gcc/tree-ssa-pre.c:1915
#5  0x00342a78 in insert_aux (block=0x425868a0) at
../../gcc/gcc/tree-ssa-pre.c:1915
#6  0x00342a78 in insert_aux (block=0x4249aea0) at
../../gcc/gcc/tree-ssa-pre.c:1915
#7  0x00342a78 in insert_aux (block=0x425867e0) at
../../gcc/gcc/tree-ssa-pre.c:1915
#8  0x00342a78 in insert_aux (block=0x4249a540) at
../../gcc/gcc/tree-ssa-pre.c:1915
#9  0x00342a78 in insert_aux (block=0x4249a4e0) at
../../gcc/gcc/tree-ssa-pre.c:1915
#10 0x00342a78 in insert_aux (block=0x4249a3c0) at
../../gcc/gcc/tree-ssa-pre.c:1915
#11 0x00342a78 in insert_aux (block=0x4249a360) at
../../gcc/gcc/tree-ssa-pre.c:1915
#12 0x00342a78 in insert_aux (block=0x4249a2a0) at
../../gcc/gcc/tree-ssa-pre.c:1915
#13 0x00342a78 in insert_aux (block=0x4249a240) at
../../gcc/gcc/tree-ssa-pre.c:1915
#14 0x00342a78 in insert_aux (block=0x4249a1e0) at
../../gcc/gcc/tree-ssa-pre.c:1915
#15 0x00342a78 in insert_aux (block=0x4249a180) at
../../gcc/gcc/tree-ssa-pre.c:1915
#16 0x00342a78 in insert_aux (block=0x4249a060) at
../../gcc/gcc/tree-ssa-pre.c:1915
#17 0x00342a78 in insert_aux (block=0x4248ef60) at
../../gcc/gcc/tree-ssa-pre.c:1915
#18 0x00343fd4 in execute_pre (do_fre=0 '\0') at
../../gcc/gcc/tree-ssa-pre.c:1937
#19 0x002260b8 in execute_one_pass (pass=0x4ed660) at
../../gcc/gcc/passes.c:827
#20 0x00226188 in execute_pass_list (pass=0x4ed660) at
../../gcc/gcc/passes.c:859
#21 0x002261a0 in execute_pass_list (pass=0x4ec21c) at
../../gcc/gcc/passes.c:860
#22 0x00153fa4 in tree_rest_of_compilation (fndecl=0x42443580) at
../../gcc/gcc/tree-optimize.c:419
#23 0x0000497c in m3_expand_function (fndecl=0x42443580) at
../../gcc/gcc/m3cg/parse.c:848
#24 0x00052784 in cgraph_expand_function (node=0x424501c0) at
../../gcc/gcc/cgraphunit.c:1055
#25 0x00052fc8 in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1121
#26 0x000130c0 in m3_parse_file (xx=0) at ../../gcc/gcc/m3cg/parse.c:4397
#27 0x00036674 in toplev_main (argc=1079409344, argv=0x40567bcc) at
../../gcc/gcc/toplev.c:991
#28 0x00001f24 in _start (argc=7, argv=0xbffff1f8, envp=0xbffff218) at
/SourceCache/Csu/Csu-58.1.1/crt.c:272
#29 0x00001dcc in start ()
(gdb) c
Continuing.

Breakpoint 3, resize_phi_node (phi=0x4249ae68, len=9) at
../../gcc/gcc/tree-phinodes.c:271
(gdb) where
#0  resize_phi_node (phi=0x4249ae68, len=9) at
../../gcc/gcc/tree-phinodes.c:271
#1  0x001415e8 in reserve_phi_args_for_new_edge (bb=0x4249ae40) at
../../gcc/gcc/tree-phinodes.c:325
#2  0x001fd8b0 in unchecked_make_edge (src=0x4259d9c0, dst=0x4249ae40,
flags=1112124996) at ../../gcc/gcc/cfg.c:272
#3  0x002414fc in tree_split_edge (edge_in=0x424a1270) at
../../gcc/gcc/tree-cfg.c:3117
#4  0x00261bcc in split_edge (e=0x4258c460) at ../../gcc/gcc/cfghooks.c:407
#5  0x002445b8 in tree_find_edge_insert_loc (e=0x424a1270, bsi=0xbfffec88,
new_bb=0x0) at ../../gcc/gcc/tree-cfg.c:2975
#6  0x00244764 in bsi_commit_one_edge_insert (e=0x4249ae68, new_bb=0x9) at
../../gcc/gcc/tree-cfg.c:3016
#7  0x002466c8 in bsi_commit_edge_inserts () at ../../gcc/gcc/tree-cfg.c:2997
#8  0x00344098 in execute_pre (do_fre=0 '\0') at
../../gcc/gcc/tree-ssa-pre.c:2731
#9  0x002260b8 in execute_one_pass (pass=0x4ed660) at
../../gcc/gcc/passes.c:827
#10 0x00226188 in execute_pass_list (pass=0x4ed660) at
../../gcc/gcc/passes.c:859
#11 0x002261a0 in execute_pass_list (pass=0x4ec21c) at
../../gcc/gcc/passes.c:860
#12 0x00153fa4 in tree_rest_of_compilation (fndecl=0x42443580) at
../../gcc/gcc/tree-optimize.c:419
#13 0x0000497c in m3_expand_function (fndecl=0x42443580) at
../../gcc/gcc/m3cg/parse.c:848
#14 0x00052784 in cgraph_expand_function (node=0x424501c0) at
../../gcc/gcc/cgraphunit.c:1055
#15 0x00052fc8 in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1121
#16 0x000130c0 in m3_parse_file (xx=0) at ../../gcc/gcc/m3cg/parse.c:4397
#17 0x00036674 in toplev_main (argc=1079409344, argv=0x40567bcc) at
../../gcc/gcc/toplev.c:991
#18 0x00001f24 in _start (argc=7, argv=0xbffff1f8, envp=0xbffff218) at
/SourceCache/Csu/Csu-58.1.1/crt.c:272
#19 0x00001dcc in start ()
(gdb) up
#1  0x001415e8 in reserve_phi_args_for_new_edge (bb=0x4249ae40) at
../../gcc/gcc/tree-phinodes.c:325
(gdb) 
#2  0x001fd8b0 in unchecked_make_edge (src=0x4259d9c0, dst=0x4249ae40,
flags=1112124996) at ../../gcc/gcc/cfg.c:272
(gdb) 
#3  0x002414fc in tree_split_edge (edge_in=0x424a1270) at
../../gcc/gcc/tree-cfg.c:3117
(gdb) p *(edge_in->src)
$44 = {
  stmt_list = 0x42499de0, 
  preds = 0x424a0840, 
  succs = 0x424a0860, 
  aux = 0x41600770, 
  loop_father = 0x41607f30, 
  dom = {0x428135d0, 0x428129a0}, 
  prev_bb = 0x4259d660, 
  next_bb = 0x4259d9c0, 
  il = {
    rtl = 0x0
  }, 
  phi_nodes = 0x0, 
  predictions = 0x0, 
  count = 0, 
  index = 32, 
  loop_depth = 1, 
  frequency = 1553, 
  flags = 6
}
(gdb) p *(edge_in->dest)
$45 = {
  stmt_list = 0x42499e20, 
  preds = 0x4258c450, 
  succs = 0x42595880, 
  aux = 0x41600790, 
  loop_father = 0x41607f30, 
  dom = {0x428136c0, 0x428129c8}, 
  prev_bb = 0x4259d9c0, 
  next_bb = 0x425867e0, 
  il = {
    rtl = 0x0
  }, 
  phi_nodes = 0x42591600, 
  predictions = 0x0, 
  count = 0, 
  index = 33, 
  loop_depth = 1, 
  frequency = 9000, 
  flags = 6
}
(gdb) c
Continuing.

Breakpoint 4, release_phi_node (phi=0x42591600) at
../../gcc/gcc/tree-phinodes.c:245
(gdb) c
Continuing.

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x00141ca8 in remove_phi_node (phi=0x42591600, prev=0x0) at
../../gcc/gcc/tree-phinodes.c:454
(gdb) 
(In reply to comment #14)
> Subject: Re:  remove_phi_node attempts removal
>  of a phi node resized by resize_phi_node
> 
> hosking at cs dot purdue dot edu wrote:
> > ------- Comment #13 from hosking at cs dot purdue dot edu  2006-08-24 15:27 -------
> > Is this enough?
> > 
> > Here is the dump output, followed by stack traces at the resize and remove
> > points (the remove goes on to fail). 
> 
> So, this edge can't exist.
> Note:
> 
> > Its src is:
> > 
> > (gdb) p *(e->src)
> > $12 = {
> >   index = 0, 
> > }
> > 
> > Its dest is:
> > 
> > (gdb) p *(e->dest)
> > $13 = {
> >   index = 0, 
> > }
> > 
> 
> It claims to be an edge from block 0 to block 0, but your according to
> your dump, block 0 is not a successor of block 0 (IE it is not a self loop).
> 
> --Dan
> 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28798


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]