HomePhabricator

[IfConversion] Disallow TBB == FBB for valid triangles

Authored by uabelho on Sep 25 2019, 11:35 PM.

Description

[IfConversion] Disallow TBB == FBB for valid triangles

Summary:
Previously the case

EBB
| \_
|  |
| TBB
|  /
FBB

was treated as a valid triangle also when TBB and FBB was the same basic
block. This could then lead to an invalid CFG when we removed the edge
from EBB to TBB, since that meant we would also remove the edge from EBB
to FBB.

Since TBB == FBB is quite a degenerated case of a triangle, we now
don't treat it as a valid triangle anymore, and thus we will avoid the
trouble with updating the CFG.

Reviewers: efriedma, dmgreen, kparzysz

Reviewed By: efriedma

Subscribers: bjope, hiraditya, llvm-commits

Tags: #llvm

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

llvm-svn: 372943

Details

Committed
uabelhoSep 25 2019, 11:35 PM
Reviewer
efriedma
Differential Revision
D67832: [IfConversion] Disallow TBB == FBB for valid triangles
Parents
rG4ed9793f980f: [analyzer] Avoid small vectors of non-default-constructibles.
Branches
Unknown
Tags
Unknown