[LLVMdev] Separating loop nests based on profile information?

Philip Reames listmail at philipreames.com
Mon Jan 12 17:53:18 PST 2015


After re-reading the linked paper, I have to agree with Krzysztof. ISS 
involves splitting range conditions on the induction variable. The 
transform that I started this thread with works with any loop variant 
conditional, not simply those based on the induction variable.  My 
initial example was intended to convey this, but reading over it again, 
I see why it might not have.

Its worth stating that index set splitting is a much better approach for 
checks which *are* off the induction variable.  In fact, Sanjoy is 
currently working on something similar for range check elimination.  
http://reviews.llvm.org/D6693

Philip

On 01/12/2015 10:55 AM, Krzysztof Parzyszek wrote:
> On 1/12/2015 12:04 AM, Daniel Berlin wrote:
>>
>> This is essentially index set splitting with the goal of it being an
>> enabling optimization for LICM.
>
> This is very different from index set splitting.  In ISS you know 
> ahead of time into what ranges you can divide the values of the 
> induction variable.  Here you don't.
>
> -Krzysztof
>




More information about the llvm-dev mailing list