llvm with tablegen backend for capstone disassembler
Go to file
Yaxun Liu 494770403a CodeGen: Fix pointer info in SplitVecOp_EXTRACT_VECTOR_ELT/SplitVecRes_INSERT_VECTOR_ELT
Two issues found when doing codegen for splitting vector with non-zero alloca addr space:

DAGTypeLegalizer::SplitVecRes_INSERT_VECTOR_ELT/SplitVecOp_EXTRACT_VECTOR_ELT uses dummy pointer info for creating
SDStore. Since one pointer operand contains multiply and add, InferPointerInfo is unable to
infer the correct pointer info, which ends up with a dummy pointer info for the target to lower
store and results in isel failure. The fix is to introduce MachinePointerInfo::getUnknownStack to
represent MachinePointerInfo which is known in alloca address space but without other information.

TargetLowering::getVectorElementPointer uses value type of pointer in addr space 0 for
multiplication of index and then add it to the pointer. However the pointer may be in an addr
space which has different size than addr space 0. The fix is to use the pointer value type for
index multiplication.

Differential Revision: https://reviews.llvm.org/D39758

llvm-svn: 319622
2017-12-02 22:13:22 +00:00
clang Fix assume-filename handling in clang-format.el 2017-12-02 21:18:14 +00:00
clang-tools-extra [clangd] Avoid enum in bitfields, can't satisfy old GCC and new MSVC 2017-12-02 04:15:55 +00:00
compiler-rt [libFuzzer] add a flag -malloc_limit_mb 2017-12-01 22:12:04 +00:00
debuginfo-tests Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
libclc configure.py: Add gfx900 (Vega, Raven) 2017-11-27 11:14:06 +00:00
libcxx [libcxx] Support getentropy as a source of randomness for std::random_device 2017-12-01 06:34:33 +00:00
libcxxabi [libc++abi] Add install-cxxabi-stripped target 2017-11-30 23:25:51 +00:00
libunwind [libunwind] Switch to add_llvm_install_targets 2017-11-30 23:24:08 +00:00
lld [WebAssembly] Revert r319592 "Add support for visibility flag" 2017-12-02 02:05:50 +00:00
lldb Add a symbols subcommand to lldb-test. 2017-12-02 00:15:29 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm CodeGen: Fix pointer info in SplitVecOp_EXTRACT_VECTOR_ELT/SplitVecRes_INSERT_VECTOR_ELT 2017-12-02 22:13:22 +00:00
openmp [CMake] Detect information about test compiler 2017-11-30 17:08:31 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [NFC] In GPGPU testcases, replace numeric registers in CHECK directives. 2017-12-01 14:16:39 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.