This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/19626] Aliasing says stores to local memory do alias
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Feb 2005 13:18:16 -0000
- Subject: [Bug tree-optimization/19626] Aliasing says stores to local memory do alias
- References: <20050125165629.19626.rguenth@tat.physik.uni-tuebingen.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rguenth at gcc dot gnu dot org 2005-02-10 13:18 -------
Actually, exchanging loc_test for
int loc_test(void)
{
const Loc<2> k(0, 1);
return k[0].first();
}
shows the same problem:
<bb 0>:
D.2541 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
# k_160 = V_MAY_DEF <k_150>;
*&(&D.2541->D.2101)->D.2064.domain_m = 0;
# k_63 = V_MAY_DEF <k_160>;
*&(&(D.2541 + 4B)->D.2101)->D.2064.domain_m = 1;
D.2628 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
return (&D.2628->D.2101)->D.2064.domain_m;
One problem might be, that PRE does not recognize the redundant
(struct Loc<1>D.1872 *) &kD.1965.D.2190.D.2155.domain_mD.2002.bufferD.2015
in
<L0>:;
currIndex_114 = 1;
D.2554_122 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
n.6_123 = 0;
D.2556_124 = 0;
D.2557_125 = 0B;
D.2548_126 = D.2554_122;
this_130 = &D.2548_126->D.2101;
dom_133 = &this_130->D.2064.domain_m;
# k_160 = V_MAY_DEF <k_150>;
*dom_133 = 0;
D.2540_141 = 1;
<L29>:;
currIndex_79 = 2;
n.6_88 = 1;
D.2604_89 = 4;
D.2605_90 = 4B;
D.2596_91 = D.2554_122 + 4B;
this_95 = &D.2596_91->D.2101;
dom_98 = &this_95->D.2064.domain_m;
# k_63 = V_MAY_DEF <k_160>;
*dom_98 = 1;
D.2588_106 = 1;
D.2641_47 = (struct Loc<1> *) &k.D.2190.D.2155.domain_m.buffer;
this_55 = &D.2641_47->D.2101;
# VUSE <TMT.12_38>;
# VUSE <k_63>;
d_57 = this_55->D.2064.domain_m;
return d_57;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19626