[LLVMdev] Single Exit Loops

Ryan Taylor ryta1203 at gmail.com
Fri Jan 6 13:14:35 PST 2012


Ralf,

 It basically just uses a level of predication to linearize the blocks. It
also cites Allen/Kennedy's work you reference.

On Fri, Jan 6, 2012 at 1:10 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:

> Ralf,
>
>   Ok, thanks, I'll have a look. The paper I was referencing was
> http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.94.668 from '90 I
> believe. There is also an Intel paper the expands on this for the Itanium.
>
>
> On Fri, Jan 6, 2012 at 12:34 PM, Ralf Karrenberg <
> karrenberg at cdl.uni-saarland.de> wrote:
>
>> Hi,
>>
>> I am not sure if I know the paper you mentioned, but to my knowledge LLVM
>> is only able to do such a transformation in very limited and obvious cases.
>> We implemented phases that do a generic linearization of control flow as
>> part of our "whole function vectorization" algorithm:
>>
>> www.cdl.uni-saarland.de/**projects/wfv<http://www.cdl.uni-saarland.de/projects/wfv>
>>
>> The code is not really public yet because we are still working to get it
>> more stable and mature overall before having the entire LLVM community be
>> aware of it, but you can still access it at github if you want to take a
>> look at it:
>>
>> github.com/karrenberg/whole-**function-vectorization<http://github.com/karrenberg/whole-function-vectorization>
>>
>> The most important classes are probably "MaskGeneration",
>> "SelectGeneration", and "CFGLinearization" if you are targeting a machine
>> without predicated execution.
>> The basis for the control-flow linearization is derived from Allen and
>> Kennedy's "Conversion of control dependence to data dependence" (1983).
>> A detailed description of what we do is given in our corresponding paper.
>>
>> Best,
>> Ralf
>>
>>
>> On 1/4/12 8:46 PM, Ryan Taylor wrote:
>>
>>> Is there anything within llvm that uses a transformation to create
>>> single exit loops from multiple exit loops? For example, such as
>>> Tirumalai's paper: Parallelization of
>>> Loops with Exits on Pipelined Architectures?
>>>
>>>
>>> ______________________________**_________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120106/50ed8810/attachment.html>


More information about the llvm-dev mailing list