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

Jakob Stoklund Olesen stoklund at 2pi.dk
Mon Nov 1 16:59:53 PDT 2010


Author: stoklund
Date: Mon Nov  1 18:59:53 2010
New Revision: 117981

URL: http://llvm.org/viewvc/llvm-project?rev=117981&view=rev
Log:
Be more precise about verifying missing kill flags.

It is legal for an instruction to have two operands using the same register,
only one a kill. This is interpreted as a kill.

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=117981&r1=117980&r2=117981&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineVerifier.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineVerifier.cpp Mon Nov  1 18:59:53 2010
@@ -624,12 +624,14 @@
           }
           // Verify isKill == LI.killedAt.
           if (!MI->isRegTiedToDefOperand(MONum)) {
+            // MI could kill register without a kill flag on MO.
+            bool miKill = MI->killsRegister(Reg);
             bool liKill = LI.killedAt(UseIdx.getDefIndex());
-            if (isKill && !liKill) {
+            if (miKill && !liKill) {
               report("Live range continues after kill flag", MO, MONum);
               *OS << "Live range: " << LI << '\n';
             }
-            if (!isKill && liKill) {
+            if (!miKill && liKill) {
               report("Live range ends without kill flag", MO, MONum);
               *OS << "Live range: " << LI << '\n';
             }





More information about the llvm-commits mailing list