1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib
Silviu Baranga 7184969f04 [DAGCombine] Catch the case where extract_vector_elt can cause an any_ext while processing AND SDNodes
Summary:
extract_vector_elt can cause an implicit any_ext if the types don't
match. When processing the following pattern:

  (and (extract_vector_elt (load ([non_ext|any_ext|zero_ext] V))), c)

DAGCombine was ignoring the possible extend, and sometimes removing
the AND even though it was required to maintain some of the bits
in the result to 0, resulting in a miscompile.

This change fixes the issue by limiting the transformation only to
cases where the extract_vector_elt doesn't perform the implicit
extend.

Reviewers: t.p.northover, jmolloy

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D18247

llvm-svn: 263935
2016-03-21 11:43:46 +00:00
..
Analysis [LoopDataPrefetch] Add TTI to limit the number of iterations to prefetch ahead 2016-03-18 00:27:43 +00:00
AsmParser DebugInfo: Add ability to not emit DW_AT_vtable_elem_location for virtual functions. 2016-03-17 23:58:03 +00:00
Bitcode Bitcode: Error out instead of crashing on corrupt metadata 2016-03-17 20:12:06 +00:00
CodeGen [DAGCombine] Catch the case where extract_vector_elt can cause an any_ext while processing AND SDNodes 2016-03-21 11:43:46 +00:00
DebugInfo [DebugInfo] Dump CIE augmentation data as a list of hex bytes 2016-03-01 18:38:05 +00:00
ExecutionEngine ExecutionEngine: tweak debug log 2016-03-05 20:00:41 +00:00
Fuzzer [libFuzzer] add a flag close_fd_mask so that we can silence spammy targets by closing stderr/stdout 2016-03-18 20:58:29 +00:00
IR Expose IRBuilder::CreateAtomicCmpXchg as LLVMBuildAtomicCmpXchg in the C API. 2016-03-19 21:28:28 +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 Rework linkInModule(), making it oblivious to ThinLTO 2016-03-19 00:40:31 +00:00
LTO [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
MC [MCParser] Accept uppercase radix variants 0X and 0B 2016-03-18 18:22:07 +00:00
Object [COFF] Refactor section alignment calculation 2016-03-17 16:55:18 +00:00
ObjectYAML Forgot to commit this with r263692 2016-03-17 16:55:11 +00:00
Option Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Passes [PM] Rename the CRTP mixin base classes for the new pass manager to 2016-03-11 10:33:22 +00:00
ProfileData Variable name cleanup /NFC 2016-03-16 22:13:41 +00:00
Support [MCParser] Accept uppercase radix variants 0X and 0B 2016-03-18 18:22:07 +00:00
TableGen [TableGen] Fix typos in comments. NFC 2016-02-26 06:50:27 +00:00
Target [NVPTX] Adds a new address space inference pass. 2016-03-20 20:59:20 +00:00
Transforms [SimplifyLibCalls] Only consider sinpi/cospi functions within the same function 2016-03-19 04:53:02 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00