[all-commits] [llvm/llvm-project] 893df2: [IfConversion] Disallow TrueBB == FalseBB for vali...

mikaelholmen via All-commits all-commits at lists.llvm.org
Wed Apr 8 03:54:58 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 893df2032d480bf791a69fe965c3ca4ef500145b
      https://github.com/llvm/llvm-project/commit/893df2032d480bf791a69fe965c3ca4ef500145b
  Author: Mikael Holmen <mikael.holmen at ericsson.com>
  Date:   2020-04-08 (Wed, 08 Apr 2020)

  Changed paths:
    M llvm/lib/CodeGen/IfConversion.cpp
    A llvm/test/CodeGen/ARM/ifcvt_diamondSameTrueFalse.mir

  Log Message:
  -----------
  [IfConversion] Disallow TrueBB == FalseBB for valid diamonds

Summary:
This fixes PR45302.

Previously the case

     BB1
     / \
    |   |
   TBB FBB
    |   |
     \ /
     BB2

was treated as a valid diamond also when TBB and FBB was the same basic
block. This then lead to a failed assertion in IfConvertDiamond.

Since TBB == FBB is quite a degenerated case of a diamond, we now
don't treat it as a valid diamond anymore, and thus we will avoid the
trouble of making IfConvertDiamond handle it correctly.

Reviewers: efriedma, kparzysz

Reviewed By: efriedma

Subscribers: hiraditya, llvm-commits

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




More information about the All-commits mailing list