Help in understanding ccp propagator
Daniel Berlin
dberlin@dberlin.org
Sun Jun 3 19:54:00 GMT 2007
On 6/3/07, Revital1 Eres <ERES@il.ibm.com> wrote:
>
> Hello,
>
> I will greatly appreciate any suggestions regarding the following
> problem I have with the ccp propagator. I am testing the new store
> ccp patch which propagates constants by walking the virtual use-def
> chain (http://gcc.gnu.org/ml/gcc-patches/2007-05/msg00055.html) and I
> encountered the following problem while testing tree_join.cc file which
> is under libstdc++-v3 testsuite:
BTW, a lot of these will be caught with the new VN i posted, whicih
should be reviewed and go in soon.
That said, ...
>
> The final propagator replaces the right operand (D.65705_98) in the
> following if condition with a constant zero which causes the program to be
> aborted as i0_62 is not always zero:
>
> # i0_62 = PHI <i0_5(29), 0(3)>
> <L139>:;
> D.61410.first = i0_62;
> ...
> D.65705_98 = D.61410.first;
> - if (D.65704_96 >= 0)
> + if (D.65704_96 >= D.65705_98)
> goto <bb 11>;
> else
> goto <bb 14>;
>
> Tracing the execution of the propagator it seems that the if statement
> is first been propogated with zero after simulating the execution; but not
> updated after the lattice value of the variables it depends on changed.
Does your store CPP properly say the vdefs have changed when a
statement's lattice value changes?
>
>
More information about the Gcc
mailing list