[LLVMdev] Separating loop nests based on profile information?
Xinliang David Li
xinliangli at gmail.com
Mon Jan 19 20:48:29 PST 2015
On Mon, Jan 19, 2015 at 5:43 PM, Philip Reames <listmail at philipreames.com>
wrote:
>
> On 01/12/2015 07:39 PM, Xinliang David Li wrote:
>
>
>
> On Wed, Jan 7, 2015 at 5:33 PM, Chandler Carruth <chandlerc at google.com>
> wrote:
>
>>
>>
>> How does this compare with classical approaches of loop peeling,
>> partitioning, fission, or whatever you might call it? Is there any
>> literature behind this approach or some literature it should be compared
>> with? (I genuinely don't know this area that well, so I'm of little help
>> here...)
>>
>
>
> It is not any of those loop transformations. It does not even change the
> control flow. It is more a code layout optimization -- move the cold trace
> in the loop out of the body.
>
> It's also a somewhat major change in the canonical form of the loop as
> seen by the optimizer. That's probably the more important part in
> practice.
>
right.
>
>
>
>>> - If so, is the notion of 'rareness' of a loop block something
>>> that's worth extracting out on it's own and reusing? Are there other
>>> similar uses anyone can think of?
>>> - Currently, I'm only supporting a fairly small set of controlling
>>> conditions. Are there important cases I'm not considering?
>>>
>>> To both of these, I think the general combination to use is to
>> identify the set of blocks dominated by a block which is in the loop body
>> of a hot loop, and is cold relative to the other successors of its
>> predecessor(s). These form cold "regions" as I think of them without
>> requiring the complexity of the region analysis.
>>
>>
>
> Static prediction should handle it -- call heuristics or some
> combination with other heuristics (error handler recognition etc).
>
> Sorry, I'm really not sure what you're trying to say here. Could you
> clarify/expand?
>
It is more of a comment about identify rare blocks -- there are cases where
static heuristics can produce branch prediction with high confidence.
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150119/ad77821b/attachment.html>
More information about the llvm-dev
mailing list