1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib
David Majnemer 05fc1c63f9 [X86] Don't transform X << 1 to X + X during type legalization
While legalizing a 64-bit shift left by 1, the following occurs:

We split the shift operand in half: a high half and a low half.
We then create an ADDC with the low half and a ADDE with the high half +
the carry bit from the ADDC.

This is problematic if X is any_ext'd because the high half computation
is now undef + undef + carry bit and there is no way to ensure that the
two undef values had the same bitwise representation.  This results in
the lowest bit in the high half turning into garbage.

Instead, do not try to turn shifts into arithmetic during type
legalization.

This fixes PR26350.

llvm-svn: 259065
2016-01-28 18:20:05 +00:00
..
Analysis ValueTracking: Use fixed array for assumption exclude set in Query. 2016-01-28 06:29:33 +00:00
AsmParser Remove autoconf support 2016-01-26 21:29:08 +00:00
Bitcode One more batch of self-containing headers. 2016-01-27 19:29:56 +00:00
CodeGen [X86] Don't transform X << 1 to X + X during type legalization 2016-01-28 18:20:05 +00:00
DebugInfo [DebugInfo] Support zero-length CIE in the _eh_frame parser 2016-01-27 14:05:35 +00:00
ExecutionEngine Remove autoconf support 2016-01-26 21:29:08 +00:00
Fuzzer Temporary disable broken fuzzer/timeout tests. 2016-01-25 19:05:45 +00:00
IR Revert r259035, it introduces a cyclic library dependency 2016-01-28 13:19:47 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LibDriver Remove autoconf support 2016-01-26 21:29:08 +00:00
LineEditor Remove autoconf support 2016-01-26 21:29:08 +00:00
Linker Improve efficiency of handling unmapped subprogram metadata 2016-01-28 15:08:09 +00:00
LTO Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs. 2016-01-27 10:01:28 +00:00
MC ARMv7k: base ABI decision on v7k Arch rather than watchos OS. 2016-01-27 19:32:29 +00:00
Object Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs. 2016-01-27 10:01:28 +00:00
Option Remove autoconf support 2016-01-26 21:29:08 +00:00
Passes Remove autoconf support 2016-01-26 21:29:08 +00:00
ProfileData [PGO] allow pgo name collector to disable compression (for testing)/NFC 2016-01-26 23:13:00 +00:00
Support SmallPtrSet: Make destructor available for inlining 2016-01-28 04:49:14 +00:00
TableGen Remove autoconf support 2016-01-26 21:29:08 +00:00
Target AMDGPU: waitcnt operand fixes 2016-01-28 17:13:44 +00:00
Transforms [LICM] Keep metadata on control equivalent hoists 2016-01-28 15:51:58 +00:00
CMakeLists.txt
LLVMBuild.txt