[llvm-commits] [llvm] r159460 - /llvm/trunk/lib/CodeGen/MachineVerifier.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Jun 29 14:00:00 PDT 2012


Author: stoklund
Date: Fri Jun 29 16:00:00 2012
New Revision: 159460

URL: http://llvm.org/viewvc/llvm-project?rev=159460&view=rev
Log:
Check for extra kill flags on live-out virtual registers.

This would previously get reported as the misleading "Virtual register
def doesn't dominate all uses."

Modified:
    llvm/trunk/lib/CodeGen/MachineVerifier.cpp

Modified: llvm/trunk/lib/CodeGen/MachineVerifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineVerifier.cpp?rev=159460&r1=159459&r2=159460&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineVerifier.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineVerifier.cpp Fri Jun 29 16:00:00 2012
@@ -1049,6 +1049,20 @@
   // Now check liveness info if available
   calcRegsRequired();
 
+  // Check for killed virtual registers that should be live out.
+  for (MachineFunction::const_iterator MFI = MF->begin(), MFE = MF->end();
+       MFI != MFE; ++MFI) {
+    BBInfo &MInfo = MBBInfoMap[MFI];
+    for (RegSet::iterator
+         I = MInfo.vregsRequired.begin(), E = MInfo.vregsRequired.end(); I != E;
+         ++I)
+      if (MInfo.regsKilled.count(*I)) {
+	report("Virtual register killed in block, but needed live out.", MFI);
+	*OS << "Virtual register " << PrintReg(*I)
+            << " is used after the block.\n";
+      }
+  }
+
   if (!MF->empty()) {
     BBInfo &MInfo = MBBInfoMap[&MF->front()];
     for (RegSet::iterator





More information about the llvm-commits mailing list