This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: vectorization, scheduling and aliasing


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]