vectorization, scheduling and aliasing
Richard Guenther
richard.guenther@gmail.com
Mon Apr 26 14:34:00 GMT 2010
On Mon, Apr 26, 2010 at 3:42 PM, roy rosen <roy.1rosen@gmail.com> wrote:
> Hi Richard,
>
> Here is the relevant block from the dump:
>
> <bb 3>:
> __vect_var__26_6 = *__vect_p_14_19;
> *__vect_p_18_25 = __vect_var__26_6;
> # PT = nonlocal { __PARM_RESTRICT_2 } (restr)
> __vect_p_22_11 = __vect_p_14_19 + 8;
> # PT = nonlocal { __PARM_RESTRICT_1 } (restr)
> __vect_p_27_12 = __vect_p_18_25 + 8;
> __vect_var__26_45 = *__vect_p_22_11;
> *__vect_p_27_12 = __vect_var__26_45;
>
> I guess that it recognizes the restrict pointer so I don't understand
> why later it creates a dependency between the insns.
> Do you see here something relevant?
No, it looks good. At least if both __vect_p_22 and __vect_p_27
are restrict qualified.
The RTL dumps should show *__vect_p_27_12 and similar
expressions in their MEM_ATTRS as well.
Note that IVOPTs is known to not preserve alias information so
you might want to try -fno-ivopts
> Thanks, Roy.
>
More information about the Gcc
mailing list