Help in understanding ccp propagator
Revital1 Eres
ERES@il.ibm.com
Sun Jun 17 18:24:00 GMT 2007
Hello,
I have one more question regarding the comment in
tree-ssa-ccp.c file -
/* Note that for propagation purposes, we are only interested in
visiting statements that load the exact same memory reference
stored here. Those statements will have the exact same list
of virtual uses, so it is enough to set the output of this
statement to be its first virtual definition. */
*output_p = first_vdef (stmt);
I wonder if this comment is true also if the vuses are not immediate as
in stmt no. 1 in the following example:
1) arr[i].x = tmp1;
...
2) arr[i].y = tmp2;
...
3) reg1 = arr[i].x;
...
4) arr[i].z = tmp2;
...
5) reg2 = arr[i].x;
Is it because we are looking for the exact same memory reference (although
not immediate) it is enough to look at only first_vdef of every store we
encounter in our walk through the virtual def-use chain; or by looking
only at the first vdef we could miss vuses that could have been reached
by vdefs other than the first one?
Thanks again,
Revital
More information about the Gcc
mailing list