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/32604] [4.3 regression] miscompilation at -O2



------- 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


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