[llvm-dev] Replace "while" "for" loops with "If-Else"

Shen Liu via llvm-dev llvm-dev at lists.llvm.org
Sun Oct 22 11:32:11 PDT 2017


Hi weiren,

Thanks for your suggestion! Yes, I am trying to do this "nested
flattening". It seems that I need a post-dominator tree-based algorithm to
flatten the nested loops from the innermost to the outermost, level by
level.

Is there any feature already existed in LLVM tools? Or similar?



On Sun, Oct 22, 2017 at 2:31 AM, 陳韋任 <chenwj.cs97g at g2.nctu.edu.tw> wrote:

> If the inner loop can be flatten [1] (not sure if I use the right word),
> which means transforming the nested loop into 1-level loop, I think you can
> continue using your pass on it.
>
> [1] https://stackoverflow.com/questions/18369260/flattening-
> a-very-nested-loop
>
> HTH,
> chenwj
>
>
> 2017-10-22 13:51 GMT+08:00 Shen Liu via llvm-dev <llvm-dev at lists.llvm.org>
> :
>
>> Hi everyone,
>>
>> I hope to implement a feature to transform an IR with "while" or "for"
>> loops to a new IR with no loop. Instead, I just want to use if-else
>> statements in the new IR to implement the original semantics.
>>
>> I can easily write a transform pass to handle the 1-level loop case, but
>> for nested loops it seems a little harder.
>>
>> Can you show me some hints? Thank you very much!
>>
>> Best regards,
>>
>> Shen
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>
>
> --
> Wei-Ren Chen (陳韋任)
> Homepage: https://people.cs.nctu.edu.tw/~chenwj
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171022/f84d16f3/attachment.html>


More information about the llvm-dev mailing list