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>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4