Go to file
Jakob Stoklund Olesen d633abebf6 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
2011-08-05 18:47:07 +00:00
clang Let attribute((cdecl)) and company override -mrtd default calling convention. 2011-08-05 16:37:22 +00:00
compiler-rt Don't redeclare sr. 2011-07-28 23:15:41 +00:00
debuginfo-tests Testcase for r133065 2011-06-15 17:57:23 +00:00
libcxx Correct misspelling:_LIBCPP_APPLE_STABLE_ABI -> _LIBCPP_STABLE_APPLE_ABI 2011-07-31 17:16:32 +00:00
libcxxabi make cxxabi.h safe for C code to include 2011-08-02 05:15:26 +00:00
lldb The recently introduced SBTypeList is also iterable. 2011-08-05 01:35:49 +00:00
llvm Fix liveness computations in BranchFolding. 2011-08-05 18:47:07 +00:00
polly Memaccess: Codegeneration for a simple access function change 2011-08-03 17:02:50 +00:00