mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
[Mips] Conditionally remove successor block
In MipsBranchExpansion::splitMBB, upon splitting a block with two direct branches, remove the successor of the newly created block (which inherits successors from the original block) which is pointed to by the last branch in the original block only if the targets of two branches differ. This is to fix the failing test when ran with -verify-machineinstrs enabled. Differential Revision: https://reviews.llvm.org/D53756 llvm-svn: 345821
This commit is contained in:
parent
0d47c0b0a8
commit
215f4806d8
@ -271,7 +271,8 @@ void MipsBranchExpansion::splitMBB(MachineBasicBlock *MBB) {
|
||||
// Insert NewMBB and fix control flow.
|
||||
MachineBasicBlock *Tgt = getTargetMBB(*FirstBr);
|
||||
NewMBB->transferSuccessors(MBB);
|
||||
NewMBB->removeSuccessor(Tgt, true);
|
||||
if (Tgt != getTargetMBB(*LastBr))
|
||||
NewMBB->removeSuccessor(Tgt, true);
|
||||
MBB->addSuccessor(NewMBB);
|
||||
MBB->addSuccessor(Tgt);
|
||||
MFp->insert(std::next(MachineFunction::iterator(MBB)), NewMBB);
|
||||
|
@ -1,7 +1,7 @@
|
||||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc -mtriple=mips -mcpu=mips32r2 -mattr=+micromips \
|
||||
; RUN: llc -mtriple=mips -mcpu=mips32r2 -mattr=+micromips -verify-machineinstrs \
|
||||
; RUN: -show-mc-encoding < %s | FileCheck --check-prefix=MM2 %s
|
||||
; RUN: llc -mtriple=mips -mcpu=mips32r6 -mattr=+micromips \
|
||||
; RUN: llc -mtriple=mips -mcpu=mips32r6 -mattr=+micromips -verify-machineinstrs \
|
||||
; RUN: -show-mc-encoding < %s | FileCheck --check-prefix=MM6 %s
|
||||
|
||||
define double @foo(double %a, double %b) {
|
||||
|
Loading…
Reference in New Issue
Block a user