This is the mail archive of the
mailing list for the GCC project.
Re: [Question] How to deliver loop-related pragma information from TREE to RTL?
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: "Yangfei (Felix)" <felix dot yang at huawei dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Felix Yang <fei dot yang0953 at gmail dot com>, "Zhanghui (hilary)" <zhanghui2 at huawei dot com>
- Date: Mon, 24 Mar 2014 13:52:10 +0100
- Subject: Re: [Question] How to deliver loop-related pragma information from TREE to RTL?
- Authentication-results: sourceware.org; auth=none
- References: <DA41BE1DDCA941489001C7FBD7A8820E54A4CA0F at szxema507-mbx dot china dot huawei dot com>
On Mon, Mar 24, 2014 at 1:46 PM, Yangfei (Felix) <email@example.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 ++)
> 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).
> Many thanks.