This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/19786] [4.0 Regression] Aliasing optimisation bug
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Feb 2005 19:14:13 -0000
- Subject: [Bug tree-optimization/19786] [4.0 Regression] Aliasing optimisation bug
- References: <20050206101741.19786.sylvain.pion@sophia.inria.fr>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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