This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Help in understanding ccp propagator
- From: Revital1 Eres <ERES at il dot ibm dot com>
- To: "Daniel Berlin" <dberlin at dberlin dot org>
- Cc: "Diego Novillo" <dnovillo at acm dot org>, gcc at gcc dot gnu dot org, rguenther at suse dot de
- Date: Tue, 5 Jun 2007 14:37:05 +0300
- Subject: Re: Help in understanding ccp propagator
> I can modify it to catch it pretty easily, just walk back a few vuses
> if the current set of vuses is defined by something that does not
> actually touch our offset.
This sounds like what I am trying to do in ccp...
> >
> > I am not sure I understand. The new patch uses the infrastructure of
> > the propagator and I do not see an indication in the dumps for vdefs
> > update after the lattice value is changed:
> >
> > 19930
> > 19931 Visiting statement:
> > 19932 D.61410.first = i0_62;
> > 19933
> > 19934 Lattice value changed to CONSTANT 0. Adding SSA edges to
worklist.
> > 19935
> >
> > Thanks again fo your help,
> > Revital
>
> So uh, how do you expect the propagator to notice when the used
> variables have changed if the things the vdefs produced by
> D.61410.first are not marked as change (so that the immediate uses of
> it get processed).
>
> You will need to add this if it is not there already.
>
>
> Normally, the propagator says "oh, the lattice value of D_64 changed,
> let me mark all it's immediate uses for reprocessing". The only thing
> that links memory defs to memory uses is the vdef/vuses, so you will
> have to be able to process and mark those
I thought the engine suppose to take care of that. I do not understand
why this case is different from other cases where we propagate for
vdefs...
Thanks again,
Revital