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>