[llvm] r314880 - Revert r314879 "[UnreachableBlockElim] Use COPY if PHI input is undef"
Mikael Holmen via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 3 23:39:22 PDT 2017
Author: uabelho
Date: Tue Oct 3 23:39:22 2017
New Revision: 314880
URL: http://llvm.org/viewvc/llvm-project?rev=314880&view=rev
Log:
Revert r314879 "[UnreachableBlockElim] Use COPY if PHI input is undef"
Build-bots broke on the new testcase. I'll investigate and fix.
Removed:
llvm/trunk/test/CodeGen/MIR/X86/unreachable-mbb-undef-phi.mir
Modified:
llvm/trunk/lib/CodeGen/UnreachableBlockElim.cpp
Modified: llvm/trunk/lib/CodeGen/UnreachableBlockElim.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/UnreachableBlockElim.cpp?rev=314880&r1=314879&r2=314880&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/UnreachableBlockElim.cpp (original)
+++ llvm/trunk/lib/CodeGen/UnreachableBlockElim.cpp Tue Oct 3 23:39:22 2017
@@ -207,12 +207,11 @@ bool UnreachableMachineBlockElim::runOnM
MachineRegisterInfo &MRI = F.getRegInfo();
unsigned InputSub = Input.getSubReg();
if (InputSub == 0 &&
- MRI.constrainRegClass(InputReg, MRI.getRegClass(OutputReg)) &&
- !Input.isUndef()) {
+ MRI.constrainRegClass(InputReg, MRI.getRegClass(OutputReg))) {
MRI.replaceRegWith(OutputReg, InputReg);
} else {
// The input register to the PHI has a subregister or it can't be
- // constrained to the proper register class or it is undef:
+ // constrained to the proper register class:
// insert a COPY instead of simply replacing the output
// with the input.
const TargetInstrInfo *TII = F.getSubtarget().getInstrInfo();
Removed: llvm/trunk/test/CodeGen/MIR/X86/unreachable-mbb-undef-phi.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/X86/unreachable-mbb-undef-phi.mir?rev=314879&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/X86/unreachable-mbb-undef-phi.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/X86/unreachable-mbb-undef-phi.mir (removed)
@@ -1,38 +0,0 @@
-# RUN: llc %s -o - -run-pass=processimpdefs -run-pass=unreachable-mbb-elimination | FileCheck %s
----
-name: f
-tracksRegLiveness: true
-registers:
- - { id: 0, class: gr32, preferred-register: '' }
- - { id: 1, class: gr32, preferred-register: '' }
- - { id: 2, class: gr32, preferred-register: '' }
-body: |
- bb.0:
- %0 = IMPLICIT_DEF
- JMP_1 %bb.1
-
- bb.1:
- %1 = PHI %0, %bb.0, %2, %bb.2
- %2 = ADD32ri8 killed %1, 1, implicit-def %eflags
- JMP_1 %bb.3
-
- bb.2:
- JMP_1 %bb.1
-
- bb.3:
-...
-
-# bb2 above is dead and should be removed and the PHI should be replaced with a
-# COPY from an undef value since the bb0 value in the PHI is undef.
-
-# CHECK: bb.0:
-# CHECK: successors: %bb.1
-# CHECK: JMP_1 %bb.1
-
-# CHECK: bb.1:
-# CHECK: successors: %bb.2
-# CHECK: [[TMP1:%[0-9]+]] = COPY undef %{{[0-9]+}}
-# CHECK: %{{[0-9]+}} = ADD32ri8 killed [[TMP1]], 1
-# CHECK: JMP_1 %bb.2
-
-# CHECK: bb.2:
More information about the llvm-commits
mailing list