[llvm-dev] Inner Loop extraction in LLVM

Johannes Doerfert via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 1 15:04:32 PDT 2020


Hi Iulian,


On first thought I would think that extracting top-level loops is only 
minimally easier than extracting any other loop level,

if you consider arbitrary input, e.g,. potential irreducible 
"outer-outer-most" loops. For inner ones you might want to split

some blocks and edges to make sure they are not shared with the outer 
loop but other than that, I imagine it to be pretty similar.

(This assumes you do not want to preserve things like LoopInfo, 
ScalarEvolution, ...).

Extracting a single basic block is probably easier still. Again, 
assuming you do not want to update analyses.


If you want more details or think I haven't grasped the essence of your 
questions, feel free to say so :)


~ Johannes



On 7/1/20 4:23 PM, iulian brumar via llvm-dev wrote:
> Hello everyone,
>
> Quick question about loop extraction in llvm. I've been using the LoopExtractor pass in llvm/lib/Transforms/IPO/LoopExtractor.cpp to extract top level loops from programs.
>
> I'm wondering if extracting inner-most loops is any more complex than using the BlockExtractor pass in llvm/lib/Transforms/IPO/BlockExtractor.cpp and making sure that the basic blocks in the extracted region are single entry-single exit. Would there be any fundamental differences wrt what LoopExtractor is doing for top-level loops?
>
> Thanks,
> Iulian
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200701/fcf28b53/attachment.html>


More information about the llvm-dev mailing list