HomePhabricator

[LOOPGUARD] Disable loop with multiple loop exiting blocks. Summary: As…

Authored by Whitney on Sep 26 2019, 1:20 PM.

Description

[LOOPGUARD] Disable loop with multiple loop exiting blocks. Summary: As discussed in the loop group meeting. With the current definition of loop guard, we should not allow multiple loop exiting blocks. For loops that has multiple loop exiting blocks, we can simply unable to find the loop guard. When getUniqueExitBlock() obtains a vector size not equals to one, that means there is either no exit blocks or there exists more than one unique block the loop exit to. If we don't disallow loop with multiple loop exit blocks, then with our current implementation, there can exist exit blocks don't post dominated by the non pre-header successor of the guard block. Reviewer: reames, Meinersbur, kbarton, etiotto, bmahjour Reviewed By: Meinersbur, kbarton Subscribers: fhahn, hiraditya, llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D66529

llvm-svn: 373011

Details

Committed
WhitneySep 26 2019, 1:20 PM
Parents
rG1202614d16e8: [OPENMP50]Emit warnings if the functions was defined/used before marked declare…
Branches
Unknown
Tags
Unknown