aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/DFAPacketizer.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2014-08-20 18:03:00 +0000
committerSanjay Patel <spatel@rotateright.com>2014-08-20 18:03:00 +0000
commitf3cfeef2e9f13c15af1d02b97c25fde6ef971372 (patch)
treeb402c131c5f31c45657cbe0fa6bc7a32a8df4c1c /llvm/lib/CodeGen/DFAPacketizer.cpp
parent03e43f8e686fc3140d912940d426409463160a07 (diff)
downloadllvm-f3cfeef2e9f13c15af1d02b97c25fde6ef971372.zip
llvm-f3cfeef2e9f13c15af1d02b97c25fde6ef971372.tar.gz
llvm-f3cfeef2e9f13c15af1d02b97c25fde6ef971372.tar.bz2
critical-anti-dependency breaker: don't use reg def info from kill insts (PR20308)
In PR20308 ( http://llvm.org/bugs/show_bug.cgi?id=20308 ), the critical-anti-dependency breaker caused a miscompile because it broke a WAR hazard using a register that it thinks is available based on info from a kill inst. Until PR18663 is solved, we shouldn't use any def/use info from a kill because they are really just nops. This patch adds guard checks for kills around calls to ScanInstruction() where the DefIndices array is set. For good measure, add an assert in ScanInstruction() so we don't hit this bug again. The test case is a reduced version of the code from the bug report. Differential Revision: http://reviews.llvm.org/D4977 llvm-svn: 216114
Diffstat (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp')
0 files changed, 0 insertions, 0 deletions