[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