[PATCH] D22778: Add Loop Sink pass to reverse the LICM based of basic block frequency.

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 19 15:09:08 PDT 2016


Adding duncan since he (probably to his dismay), knows a lot about ilist:


> Adding
> Because the reverse iterator does not support in-place replacement. If I
> move the current instruction out of the BB, even if I pre-increment the
> iterator before, the pre-incremented iterator will also be moved to the new
> BB. I checked around llvm code base, seems there is no in-place update for
> reverse iterators.
>

That seems ... broken.

I assume the preincrement issue is due to how std::reverse_iterator works
(duncan, i assume nothing can be done here)

However, that just probably means we should make movebefore do the same
thing we made eraseFromParent do, so you can construct iterators from the
result.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160819/d2080723/attachment.html>


More information about the llvm-commits mailing list