[Bug tree-optimization/19786] [4.0 Regression] Aliasing optimisation bug

jakub at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Feb 16 23:17:00 GMT 2005


------- Additional Comments From jakub at gcc dot gnu dot org  2005-02-16 19:14 -------
I'm still looking into it.
While with -fno-strict-aliasing the important part of the dump is:
  # BLOCK 20
  # PRED: 33 [100.0%]  (fallthru) 30 [100.0%]  (fallthru)
  # TMT.382D.16594_470 = PHI <TMT.382D.16594_1015(33), TMT.382D.16594_1010(30)>;
<L110>:;
  D.16463_352 = &thisD.16043_125->D.11755._M_implD.11232._M_finishD.11380;
  __iD.16464_353 = D.16463_352;
  #   VUSE <TMT.382D.16594_470>;
  SR.538D.16754_354 = *__iD.16464_353;
  D.16471_365 = SR.538D.16754_354 - 4B;
  #   VUSE <TMT.382D.16594_470>;
  D.16033_377 = *D.16471_365;
...
<L117>:;
  #   VUSE <TMT.382D.16594_470>;
  D.16404_339 = thisD.16043_125->D.11755._M_implD.11232._M_finishD.11380;
  D.16405_340 = D.16404_339 - 4B;
  #   TMT.382D.16594_1015 = V_MAY_DEF <TMT.382D.16594_470>;
  thisD.16043_125->D.11755._M_implD.11232._M_finishD.11380 = D.16405_340;
...
loop to 110, so TMT.382D.16594_470 = PHI <TMT.382D.16594_1015(33),
TMT.382D.16594_1010(30)> is in the loop, with -fstrict-aliasing we have:
  # BLOCK 19
  # PRED: 17 [100.0%]  (fallthru,exec) 28 [100.0%]  (fallthru)
  # TMT.412D.16624_469 = PHI <TMT.412D.16624_1050(17), TMT.412D.16624_1037(28)>;
  # TMT.411D.16623_22 = PHI <TMT.411D.16623_392(17), TMT.411D.16623_244(28)>;
  # D.16251_470 = PHI <D.16251_380(17), D.16251_242(28)>;
  # D.16077_471 = PHI <D.16077_384(17), D.16077_243(28)>;
<L97>:;
...
  # BLOCK 20
  # PRED: 33 [100.0%]  (fallthru) 30 [100.0%]  (fallthru)
  # TMT.411D.16623_2 = PHI <TMT.411D.16623_260(33), TMT.411D.16623_22(30)>;
<L110>:;
  D.16491_352 = &thisD.16071_125->D.11755._M_implD.11232._M_finishD.11380;
  __iD.16492_353 = D.16491_352;
  #   VUSE <TMT.412D.16624_469>;
  SR.574D.16790_354 = *__iD.16492_353;
  D.16499_365 = SR.574D.16790_354 - 4B;
  #   VUSE <D.16077_280>;
  #   VUSE <D.16251_279>;
  D.16061_377 = *D.16499_365;
...

but TMT.412D.16624_469 = PHI <TMT.412D.16624_1050(17), TMT.412D.16624_1037(28)>
is outside of the loop (loop starts at L110).

-- 


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



More information about the Gcc-bugs mailing list