forked from OSchip/llvm-project
11e879d4f1
Summary: This patch resolves an issue where the metadata of a loop is not added to the new loop latch, and not removed from the old loop latch. This issue occurs in the SplitBlockPredecessors function, which adds a new block in a loop, and in the case that the block passed into this function is the header of the loop, the loop can be modified such that the latch of the loop is replaced. This patch applies to the Loop Simplify pass since it ensures that each loop has exit blocks which only have predecessors that are inside of the loop. In the case that this is not true, the pass will create a new exit block for the loop. This guarantees that the loop preheader/header will dominate the exit blocks. Author: sidbav (Sidharth Baveja) Reviewers: asbirlea (Alina Sbirlea), chandlerc (Chandler Carruth), Whitney (Whitney Tsang), bmahjour (Bardia Mahjour) Reviewed By: asbirlea (Alina Sbirlea) Subscribers: hiraditya (Aditya Kumar), llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D83869 |
||
---|---|---|
.. | ||
2003-04-25-AssertFail.ll | ||
2003-05-12-PreheaderExitOfChild.ll | ||
2003-08-15-PreheadersFail.ll | ||
2003-12-10-ExitBlocksProblem.ll | ||
2004-02-05-DominatorInfoCorruption.ll | ||
2004-03-15-IncorrectDomUpdate.ll | ||
2004-04-01-IncorrectDomUpdate.ll | ||
2004-04-12-LoopSimplify-SwitchBackedges.ll | ||
2004-04-13-LoopSimplifyUpdateDomFrontier.ll | ||
2007-10-28-InvokeCrash.ll | ||
2010-07-15-IncorrectDomFrontierUpdate.ll | ||
2010-12-26-PHIInfiniteLoop.ll | ||
2011-12-14-LandingpadHeader.ll | ||
2012-03-20-indirectbr.ll | ||
ashr-crash.ll | ||
basictest.ll | ||
convergent.ll | ||
dbg-loc.ll | ||
do-preheader-dbg.ll | ||
dup-preds.ll | ||
for-preheader-dbg.ll | ||
hardertest.ll | ||
indirectbr-backedge.ll | ||
indirectbr.ll | ||
merge-exits.ll | ||
notify-scev.ll | ||
phi-node-simplify.ll | ||
pr26682.ll | ||
pr28272.ll | ||
pr30454.ll | ||
pr33494.ll | ||
preserve-llvm-loop-metadata.ll | ||
preserve-scev.ll | ||
single-backedge.ll | ||
unreachable-loop-pred.ll | ||
update_latch_md.ll |