<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="Hack Nerd Font Mono">Hi Iulian,</font></p>
<p><font face="Hack Nerd Font Mono"><br>
</font></p>
<p><font face="Hack Nerd Font Mono">On first thought I would think
that extracting top-level loops is only minimally easier than
extracting any other loop level,</font></p>
<p><font face="Hack Nerd Font Mono">if you consider arbitrary input,
e.g,. potential irreducible "outer-outer-most" loops. For inner
ones you might want to split</font></p>
<p><font face="Hack Nerd Font Mono"> 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.</font></p>
<p><font face="Hack Nerd Font Mono"> (This assumes you do not want
to preserve things like LoopInfo, ScalarEvolution, ...). <br>
</font></p>
<p><font face="Hack Nerd Font Mono">Extracting a single basic block
is probably easier still. Again, assuming you do not want to
update analyses.</font></p>
<p><font face="Hack Nerd Font Mono"><br>
</font></p>
<p><font face="Hack Nerd Font Mono">If you want more details or
think I haven't grasped the essence of your questions, feel free
to say so :)<br>
</font></p>
<p><font face="Hack Nerd Font Mono"><br>
</font></p>
<p><font face="Hack Nerd Font Mono">~ Johannes</font></p>
<p><font face="Hack Nerd Font Mono"><br>
</font></p>
<p><font face="Hack Nerd Font Mono"><br>
</font></p>
<div class="moz-cite-prefix">On 7/1/20 4:23 PM, iulian brumar via
llvm-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:382599647.812052.1593638595632@mail.yahoo.com">
<pre class="moz-quote-pre" wrap="">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
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
</body>
</html>