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: [Question] How to deliver loop-related pragma information from TREE to RTL?


On Mon, Mar 24, 2014 at 1:46 PM, Yangfei (Felix) <felix.yang@huawei.com> wrote:
> Hello everyone,
>
>     I'm thinking of the right way of adding some loop related pragmas to GCC.
>     An example:
>
>     #pragma loop unroll = 2
>     for (i = 0; i < n; i ++)
>       {
>         Whatever...
>       }
>
>     Here I want the unroll factor of the loop to be 2 when doing RTL loop unrolling.
>     But I find that it's kind of difficult to achieve this in GCC.
>     The reason is that the loop structures are initialized and finalized at run time. Also the RTL expand phase is kind of complex and it does not care about loops.
>     So how to deliver the pragma information to RTL loop unrolling pass? What the the elegant way of doing this?
>     Can anyone give some suggestions on this please?

Look at how we implement #pragma ivdep (see replace_loop_annotate ()
and fortran/trans-stmt.c where it builds ANNOTATE_EXPR).

Richard.

>     Many thanks.
>


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