Go to file
Simon Pilgrim 2f963a7e83 [SLPVectorizer] Add initial alternate opcode support for cast instructions.
We currently only support binary instructions in the alternate opcode shuffles.

This patch is an initial attempt at adding cast instructions as well, this raises several issues that we probably want to address as we continue to generalize the alternate mechanism:

1 - Duplication of cost determination - we should probably add scalar/vector costs helper functions and get BoUpSLP::getEntryCost to use them instead of determining costs directly.
2 - Support alternate instructions with the same opcode (e.g. casts with different src types) - alternate vectorization of calls with different IntrinsicIDs will require this.
3 - Allow alternates to be a different instruction type - mixing binary/cast/call etc.
4 - Allow passthrough of unsupported alternate instructions - related to PR30787/D28907 'copyable' elements.

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

llvm-svn: 336804
2018-07-11 13:34:09 +00:00
clang [mips] Add '-mvirt', '-mno-virt', '-mginv', '-mno-ginv' options 2018-07-11 12:45:25 +00:00
clang-tools-extra [clangd] Ignore sema code complete callback with recovery context. 2018-07-11 13:15:31 +00:00
compiler-rt Fix reading 32 bit gcov tag values on little-endian machines 2018-07-11 09:30:25 +00:00
debuginfo-tests [debuginfo-tests] Always use the system python to invoke llgdb.py. 2018-06-10 19:38:26 +00:00
libclc atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics 2018-06-21 19:27:39 +00:00
libcxx [CMake] Set per-runtime library directory suffix in runtimes build 2018-07-10 19:13:33 +00:00
libcxxabi [CMake] Set per-runtime library directory suffix in runtimes build 2018-07-10 19:13:33 +00:00
libunwind [CMake] Set per-runtime library directory suffix in runtimes build 2018-07-10 19:13:33 +00:00
lld [ELF] Update addends in non-allocatable sections for REL targets when creating a relocatable output. 2018-07-11 12:52:04 +00:00
lldb Refactor ClangUserExpression::Parse [NFC] 2018-07-10 22:12:39 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [SLPVectorizer] Add initial alternate opcode support for cast instructions. 2018-07-11 13:34:09 +00:00
openmp Fix const cast problem introduced in r336563 2018-07-09 19:09:31 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [Docs] Fix generation of manpages. 2018-07-09 20:26:11 +00:00
README.md

README.md

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.