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