[PATCH] D54021: [LoopSimplifyCFG] Teach LoopSimplifyCFG to constant-fold branches and switches

Max Kazantsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 16 03:36:15 PST 2018


mkazantsev added inline comments.


================
Comment at: lib/Transforms/Scalar/LoopSimplifyCFG.cpp:192
+    // The loop will not be destroyed if its latch is live.
+    DeleteCurrentLoop = !IsEdgeLive(L.getLoopLatch(), L.getHeader());
+
----------------
anna wrote:
> I find this name misleading because the current loop can be deleted in 2 ways:
> 1. latch to header edge is dead
> 2. edge to header from outside this loop is dead
> 
> Second case does not happen now, because you only consider blocks in current loop as candidate for folding. 
> 
> However, I think you need to add both cases for completeness here. 
> 
> 
> 
> 
Technically, we only modify the current loop and cannot change anything outside this loop, so 2nd case is just out of scope.


https://reviews.llvm.org/D54021





More information about the llvm-commits mailing list