summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2011-11-14 21:02:09 +0000
committerEvan Cheng <evan.cheng@apple.com>2011-11-14 21:02:09 +0000
commit28ffb7e4441059d8e88e110c7fa7d3c7d4920b23 (patch)
treef2357403ade201f6d940657e0f0ec0d49b48916a /llvm/lib
parentfe856110aa71fa0d10972793a9b0af3c171aec30 (diff)
downloadbcm5719-llvm-28ffb7e4441059d8e88e110c7fa7d3c7d4920b23.tar.gz
bcm5719-llvm-28ffb7e4441059d8e88e110c7fa7d3c7d4920b23.zip
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. llvm-svn: 144568
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/TwoAddressInstructionPass.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
index 33ed4cc907a..a702c6c8407 100644
--- a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+++ b/llvm/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;
}
OpenPOWER on IntegriCloud