aboutsummaryrefslogtreecommitdiff
path: root/lldb/scripts/Python/modify-python-lldb.py
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-08-05 18:47:07 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-08-05 18:47:07 +0000
commitd633abebf687bdde36986213bd04c813e7d676f0 (patch)
tree648c4b76ecff92dd1dcb3f49c713b54995389c3e /lldb/scripts/Python/modify-python-lldb.py
parent30097b7c41f7ffa5a6b3fd2b7cb5c9a180b52990 (diff)
downloadllvm-d633abebf687bdde36986213bd04c813e7d676f0.zip
llvm-d633abebf687bdde36986213bd04c813e7d676f0.tar.gz
llvm-d633abebf687bdde36986213bd04c813e7d676f0.tar.bz2
Fix liveness computations in BranchFolding.
The old code would look at kills and defs in one pass over the instruction operands, causing problems with this code: %R0<def>, %CPSR<def,dead> = tLSLri %R5<kill>, 2, pred:14, pred:%noreg %R0<def>, %CPSR<def,dead> = tADDrr %R4<kill>, %R0<kill>, pred:14, %pred:%noreg The last instruction kills and redefines %R0, so it is still live after the instruction. This caused a register scavenger crash when compiling 483.xalancbmk for armv6. I am not including a test case because it requires too much bad luck to expose this old bug. First you need to convince the register allocator to use %R0 twice on the tADDrr instruction, then you have to convince BranchFolding to do something that causes it to run the register scavenger on he bad block. <rdar://problem/9898200> llvm-svn: 136973
Diffstat (limited to 'lldb/scripts/Python/modify-python-lldb.py')
0 files changed, 0 insertions, 0 deletions