Commit Graph

10 Commits

Author SHA1 Message Date
Eric Christopher
598198edbc Revert "Temporarily Revert "Add basic loop fusion pass.""
The reversion apparently deleted the test/Transforms directory.

Will be re-reverting again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358552 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-17 04:52:47 +00:00
Eric Christopher
02cc44c1b9 Temporarily Revert "Add basic loop fusion pass."
As it's causing some bot failures (and per request from kbarton).

This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358546 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-17 02:12:23 +00:00
Alina Sbirlea
eacfb8541a [LoopSimplifyCFG] Update MemorySSA after r353911.
Summary:
MemorySSA is not properly updated in LoopSimplifyCFG after recent changes. Use SplitBlock utility to resolve that and clear all updates once handleDeadExits is finished.
All updates that follow are removal of edges which are safe to handle via the removeEdge() API.
Also, deleting dead blocks is done correctly as is, i.e. delete from MemorySSA before updating the CFG and DT.

Reviewers: mkazantsev, rtereshin

Subscribers: sanjoy, jlebar, Prazek, george.burgess.iv, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58524

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354613 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-21 19:54:05 +00:00
Max Kazantsev
98a9c14860 [LoopSimplifyCFG] Add missing MSSA edge deletion
When we create fictive switch in preheader, we should take
care about MSSA and delete edge between old preheader and
header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354547 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-21 05:51:29 +00:00
Max Kazantsev
ce2d739dc1 [LoopSimplifyCFG] Pay respect to LCSSA when removing dead blocks
Utility function that we use for blocks deletion always unconditionally removes
one-input Phis. In LoopSimplifyCFG, it can lead to breach of LCSSA form.
This patch alters this function to keep them if needed.

Differential Revision: https://reviews.llvm.org/D57231
Reviewed By: fedor.sergeev


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353803 91177308-0d34-0410-b5e6-96231b3b80d8
2019-02-12 07:48:07 +00:00
Max Kazantsev
2f0b27b1ba [NFC] Add failing test on LCSSA forming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352190 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-25 11:32:21 +00:00
Max Kazantsev
a3ca8ce0e5 [LoopSimplifyCFG] Form LCSSA when a parent loop becomes a sibling
During the transforms in LoopSimplifyCFG, when we remove a dead exiting edge, the
parent loop may stop being reachable from the child loop, and therefore they become
siblings. If the former child loop had uses of some values from its former parent loop,
now such uses will require LCSSA Phis, even if they weren't needed before. So we must
form LCSSA for all loops that stopped being ancestors of the current loop in this case.

Differential Revision: https://reviews.llvm.org/D56144
Reviewed By: fedor.sergeev


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351434 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-17 12:51:10 +00:00
Max Kazantsev
5f7a872f42 [NFC] Add failing test on LCSSA form preservation of LoopSimplifyCFG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350119 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-28 10:43:37 +00:00
Max Kazantsev
f56b13f3e4 Disable LoopSimplifyCFG terminator folding by default
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347486 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-23 09:14:53 +00:00
Max Kazantsev
f2ac09bb54 [LoopSimplifyCFG] Don't delete LCSSA Phis
When removing edges, we also update Phi inputs and may end up removing
a Phi if it has only one input. We should not do it for edges that leave the current
loop because these Phis are LCSSA Phis and need to be preserved.

Thanks @dmgreen	for finding this!

Differential Revision: https://reviews.llvm.org/D54841


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@347484 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-23 07:56:47 +00:00