Go to file
Juergen Ributzka 4f1a54a41a [FastISel]
Currently instructions are folded very aggressively for AArch64 into the memory
operation, which can lead to the use of killed operands:
  %vreg1<def> = ADDXri %vreg0<kill>, 2
  %vreg2<def> = LDRBBui %vreg0, 2
  ... = ... %vreg1 ...

This usually happens when the result is also used by another non-memory
instruction in the same basic block, or any instruction in another basic block.

This fix teaches hasTrivialKill to not only check the LLVM IR that the value has
a single use, but also to check if the register that represents that value has
already been used. This can happen when the instruction with the use was folded
into another instruction (in this particular case a load instruction).

This fixes rdar://problem/18142857.

llvm-svn: 216634
2014-08-28 00:09:46 +00:00
clang [modules] Add an assert that we properly manage the IsCompleteDefinition flag 2014-08-27 23:11:59 +00:00
clang-tools-extra Update for Clang API change. 2014-08-27 20:54:50 +00:00
compiler-rt [ASan] Whitespace fix. No functionality change. 2014-08-27 13:43:18 +00:00
debuginfo-tests relax testcase for LLDB output format compatibility. 2014-03-19 23:06:18 +00:00
libclc Revert "Implement generic mad_sat" 2014-08-23 14:06:01 +00:00
libcxx Mark test types for <atomic> nothrow default constructible. Patch from Steve MacKenzie. 2014-08-27 17:00:11 +00:00
libcxxabi Remove strict dependency on llvm-config. 2014-08-26 20:50:07 +00:00
lld [PECOFF] Fix AMD64_ADDR64 relocation. 2014-08-27 01:10:01 +00:00
lldb Add some logging around Process attaching and inferior exec handling. 2014-08-27 22:58:26 +00:00
llvm [FastISel] 2014-08-28 00:09:46 +00:00
openmp Commit PowerPC64 support from Carlo Bertolli at IBM. 2014-08-07 10:12:54 +00:00
polly Update for LLVM api change 2014-08-25 18:16:52 +00:00