[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