[LLVMdev] loop pragmas
Sebastian Pop
spop at codeaurora.org
Tue Nov 27 09:57:19 PST 2012
Krzysztof Parzyszek wrote:
> On 11/27/2012 8:03 AM, Hal Finkel wrote:
> >
> >This still leaves the question of exactly how to attach metadata to loops, etc.
>
> In one implementation, the loops had a fixed structure: guard
> branch, preheader, header and loop body, optional epilog. The
> structure was clearly identified by various means (flags, bits,
> etc.). No optimization in the optimizer (roughly a counterpart of
> the LLVM's bitcode optimizer) was allowed to alter it. For example,
> CFG simplification could change branches all it wanted, *except* the
> branches that were a part of the loop structure. A "continue"
> inside of a loop would not create a nested loop, etc. This worked
> like a dream (hence my limited appreciation for SimplifyCFG...).
>
> In that implementation, the metadata was placed in the loop header,
> or the loop preheader, depending on what information it was. Since
> any code that would try to move things around in a loop would have
> to know what it's doing (i.e. would have to be aware of the loop
> structure and what the rules were), there was no risk that the
> metadata would become accidentally separated from the loop.
>
> I'd love to see something like that in LLVM, help make it happen,
+1
Sebastian
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
More information about the llvm-dev
mailing list