From 41e00172c51a1666cbcda5df2c6f45d685068fbb Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Mon, 14 Nov 2011 21:02:09 +0000 Subject: [PATCH] At -O0, multiple uses of a virtual registers in the same BB are being marked "kill". This looks like a bug upstream. Since that's going to take some time to understand, loosen the assertion and disable the optimization when multiple kills are seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144568 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/TwoAddressInstructionPass.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/CodeGen/TwoAddressInstructionPass.cpp b/lib/CodeGen/TwoAddressInstructionPass.cpp index 33ed4cc907a..a702c6c8407 100644 --- a/lib/CodeGen/TwoAddressInstructionPass.cpp +++ b/lib/CodeGen/TwoAddressInstructionPass.cpp @@ -502,7 +502,8 @@ MachineInstr *findLocalKill(unsigned Reg, MachineBasicBlock *MBB, continue; if (!UI.getOperand().isKill()) return 0; - assert(!KillMI && "More than one local kills?"); + if (KillMI) + return 0; // -O0 kill markers cannot be trusted? KillMI = UseMI; } -- 2.34.1