[llvm] ad3c9d4 - Revert "[MachineVerifier] Improve verification of live-in lists.

Galina Kistanova via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 7 14:03:05 PST 2019


Author: Galina Kistanova
Date: 2019-11-07T14:02:13-08:00
New Revision: ad3c9d46fe39af1762a7be75d754723be9a5594a

URL: https://github.com/llvm/llvm-project/commit/ad3c9d46fe39af1762a7be75d754723be9a5594a
DIFF: https://github.com/llvm/llvm-project/commit/ad3c9d46fe39af1762a7be75d754723be9a5594a.diff

LOG: Revert "[MachineVerifier] Improve verification of live-in lists.

This reverts commit b7b170c to give the author more time to address failing tests on the expensive checks buildbots.

Added: 
    

Modified: 
    llvm/include/llvm/CodeGen/LivePhysRegs.h
    llvm/lib/CodeGen/MachineVerifier.cpp

Removed: 
    llvm/test/MachineVerifier/live-ins-01.mir
    llvm/test/MachineVerifier/live-ins-02.mir
    llvm/test/MachineVerifier/live-ins-03.mir


################################################################################
diff  --git a/llvm/include/llvm/CodeGen/LivePhysRegs.h b/llvm/include/llvm/CodeGen/LivePhysRegs.h
index 085893462a08..50da0b3d5c48 100644
--- a/llvm/include/llvm/CodeGen/LivePhysRegs.h
+++ b/llvm/include/llvm/CodeGen/LivePhysRegs.h
@@ -137,9 +137,6 @@ class LivePhysRegs {
   /// Live out registers are the union of the live-in registers of the successor
   /// blocks and pristine registers. Live out registers of the end block are the
   /// callee saved registers.
-  /// If a register is not added by this method, it is guaranteed to not be
-  /// live out from MBB, although a sub-register may be. This is true
-  /// both before and after regalloc.
   void addLiveOuts(const MachineBasicBlock &MBB);
 
   /// Adds all live-out registers of basic block \p MBB but skips pristine

diff  --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp
index 6361a49d962e..6845187f10d9 100644
--- a/llvm/lib/CodeGen/MachineVerifier.cpp
+++ b/llvm/lib/CodeGen/MachineVerifier.cpp
@@ -2304,32 +2304,6 @@ void MachineVerifier::visitMachineFunctionAfter() {
   if (LiveInts)
     verifyLiveIntervals();
 
-  // Check live-in list of each MBB. If a register is live into MBB, check
-  // that the register is in regsLiveOut of each predecessor block. Since
-  // this must come from a definition in the predecesssor or its live-in
-  // list, this will catch a live-through case where the predecessor does not
-  // have the register in its live-in list.  This currently only checks
-  // registers that have no aliases, are not allocatable and are not
-  // reserved, which could mean a condition code register for instance.
-  if (MRI->tracksLiveness())
-    for (const auto &MBB : *MF)
-      for (MachineBasicBlock::RegisterMaskPair P : MBB.liveins()) {
-        MCPhysReg LiveInReg = P.PhysReg;
-        bool hasAliases = MCRegAliasIterator(LiveInReg, TRI, false).isValid();
-        if (hasAliases || isAllocatable(LiveInReg) || isReserved(LiveInReg))
-          continue;
-        for (const MachineBasicBlock *Pred : MBB.predecessors()) {
-          BBInfo &PInfo = MBBInfoMap[Pred];
-          if (!PInfo.regsLiveOut.count(LiveInReg)) {
-            report("Live in register not found to be live out from predecessor.",
-                   &MBB);
-            errs() << TRI->getName(LiveInReg)
-                   << " not found to be live out from "
-                   << printMBBReference(*Pred) << "\n";
-          }
-        }
-      }
-
   for (auto CSInfo : MF->getCallSitesInfo())
     if (!CSInfo.first->isCall())
       report("Call site info referencing instruction that is not call", MF);

diff  --git a/llvm/test/MachineVerifier/live-ins-01.mir b/llvm/test/MachineVerifier/live-ins-01.mir
deleted file mode 100644
index 51c05dacf055..000000000000
--- a/llvm/test/MachineVerifier/live-ins-01.mir
+++ /dev/null
@@ -1,57 +0,0 @@
-# RUN: not llc -o - %s -mtriple=s390x-linux-gnu -mcpu=z14 -run-pass none 2>&1 | FileCheck %s
-# REQUIRES: systemz-registered-target
-
-# Test that a the machine verifier reports an error when a register in
-# liveins is not liveout from predecessor.
-
----
-name:            f1
-tracksRegLiveness: true
-machineFunctionInfo: {}
-body:             |
-  bb.0:
-    liveins: $r2l, $r3l
-  
-    %1:gr32bit = COPY $r3l
-    %0:gr32bit = COPY $r2l
-    CHIMux %0, 0, implicit-def $cc
-
-  bb.1:
-    liveins: $cc
-
-  bb.2:
-    liveins: $cc
-
-    %2:grx32bit = LOCRMux %1, %0, 14, 8, implicit $cc
-    $r2l = COPY %2
-    Return implicit $r2l
-...
-
-# CHECK: *** Bad machine code: Live in register not found to be live out from predecessor. ***
-# CHECK:- function:    f2
-# CHECK:- basic block: %bb.2
-# CHECK:CC not found to be live out from %bb.1
----
-name:            f2
-tracksRegLiveness: true
-machineFunctionInfo: {}
-body:             |
-  bb.0:
-    liveins: $r2l, $r3l
-  
-    %1:gr32bit = COPY $r3l
-    %0:gr32bit = COPY $r2l
-    CHIMux %0, 0, implicit-def $cc
-
-  bb.1:
-    liveins: $cc
-    KILL killed $cc
-
-  bb.2:
-    liveins: $cc
-
-    %2:grx32bit = LOCRMux %1, %0, 14, 8, implicit $cc
-    $r2l = COPY %2
-    Return implicit $r2l
-
-...

diff  --git a/llvm/test/MachineVerifier/live-ins-02.mir b/llvm/test/MachineVerifier/live-ins-02.mir
deleted file mode 100644
index d76325cdd108..000000000000
--- a/llvm/test/MachineVerifier/live-ins-02.mir
+++ /dev/null
@@ -1,32 +0,0 @@
-# RUN: not llc -o - %s -mtriple=s390x-linux-gnu -mcpu=z14 -run-pass none 2>&1 | FileCheck %s
-# REQUIRES: systemz-registered-target
-
-# Test that a the machine verifier reports an error when a register in
-# liveins is not liveout from predecessor.
-
----
-name:            f1
-tracksRegLiveness: true
-machineFunctionInfo: {}
-body:             |
-  bb.0:
-    liveins: $r2l, $r3l
-  
-    %1:gr32bit = COPY $r3l
-    %0:gr32bit = COPY $r2l
-    CHIMux %0, 0, implicit-def $cc
-
-  bb.1:
-
-  bb.2:
-    liveins: $cc
-
-    %2:grx32bit = LOCRMux %1, %0, 14, 8, implicit $cc
-    $r2l = COPY %2
-    Return implicit $r2l
-...
-
-# CHECK: *** Bad machine code: Live in register not found to be live out from predecessor. ***
-# CHECK:- function:    f1
-# CHECK:- basic block: %bb.2
-# CHECK:CC not found to be live out from %bb.1

diff  --git a/llvm/test/MachineVerifier/live-ins-03.mir b/llvm/test/MachineVerifier/live-ins-03.mir
deleted file mode 100644
index b5345ccdc3b6..000000000000
--- a/llvm/test/MachineVerifier/live-ins-03.mir
+++ /dev/null
@@ -1,36 +0,0 @@
-# RUN: not llc -o - %s -mtriple=s390x-linux-gnu -mcpu=z14 -run-pass none 2>&1 | FileCheck %s
-# REQUIRES: systemz-registered-target
-
-# Test that a the machine verifier reports an error when a register in
-# liveins is not liveout from predecessor.
-
----
-name:            f1
-tracksRegLiveness: true
-machineFunctionInfo: {}
-body:             |
-  bb.0:
-    liveins: $r2l, $r3l
-  
-    %1:gr32bit = COPY $r3l
-    %0:gr32bit = COPY $r2l
-    CHIMux %0, 0, implicit-def $cc
-
-  bb.1:
-    liveins: $cc
-    BRC 14, 8, %bb.3, implicit $cc
-
-  bb.2:
-
-  bb.3:
-    liveins: $cc
-
-    %2:grx32bit = LOCRMux %1, %0, 14, 8, implicit $cc
-    $r2l = COPY %2
-    Return implicit $r2l
-...
-
-# CHECK: *** Bad machine code: Live in register not found to be live out from predecessor. ***
-# CHECK:- function:    f1
-# CHECK:- basic block: %bb.3
-# CHECK:CC not found to be live out from %bb.2


        


More information about the llvm-commits mailing list