This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/32604] [4.3 regression] miscompilation at -O2
- From: "dberlin at dberlin dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Jul 2007 15:02:53 -0000
- Subject: [Bug tree-optimization/32604] [4.3 regression] miscompilation at -O2
- References: <bug-32604-6642@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from dberlin at gcc dot gnu dot org 2007-07-03 15:02 -------
Subject: Re: [4.3 regression] miscompilation at -O2
> D.1445_69 = pretmp.53_53;
> storetmp.41_92 = D.1445_69;
> *order_p_25(D) = D.1445_69;
> i_71 = i_2 + 1;
> if (i_2 == D.1401_27)
> goto <bb 11>;
> else
> goto <bb 21>;
>
> <bb 21>:
> goto <bb 7>;
>
> i.e. *order_p won't ever change in the loop.
Actually, what it has really done is prove the load and store that
happens have the same value.
It happens to also decide that this value (D.1445_69) is invariant.
This is the broken part, and it is because of antic_safe_loads not
checking whether the operands of the load change.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32604