From ad3c9d46fe39af1762a7be75d754723be9a5594a Mon Sep 17 00:00:00 2001 From: Galina Kistanova Date: Thu, 7 Nov 2019 14:02:13 -0800 Subject: [PATCH] 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. --- llvm/include/llvm/CodeGen/LivePhysRegs.h | 3 -- llvm/lib/CodeGen/MachineVerifier.cpp | 26 ----------- llvm/test/MachineVerifier/live-ins-01.mir | 57 ----------------------- llvm/test/MachineVerifier/live-ins-02.mir | 32 ------------- llvm/test/MachineVerifier/live-ins-03.mir | 36 -------------- 5 files changed, 154 deletions(-) delete mode 100644 llvm/test/MachineVerifier/live-ins-01.mir delete mode 100644 llvm/test/MachineVerifier/live-ins-02.mir delete mode 100644 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 @@ public: /// 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