Go to file
Matt Arsenault e8eb567e17 DAG: Avoid bitcast/ext/build_vector combine
This avoids regressions in a future AMDGPU change
to make v4i16/v4f16 legal. For these types, build_vector
is implemented as bitcasted operations on v2i32. This
combine was creating v4i16s out of what would have been
already been a v2i32 build_vector, creating a mess
of nodes that never get cleaned up.

I'm not sure this is the right condition to check.
I initially tried just checking for the legality of the
new build_vector. This works for my case, but breaks dozens
of x86 tests. A Mips test seems to show some improvement
or at least a neutral change. I don't want to think
about how long it would take to analyze the set of
different x86 vector operations impacted.

Test included in future commit.

llvm-svn: 334218
2018-06-07 19:42:27 +00:00
clang Introducing single for loop into clang_proto_fuzzer 2018-06-07 19:17:46 +00:00
clang-tools-extra [clangd] Code completion: drop explicit injected names/operators, ignore Sema priority 2018-06-07 12:49:17 +00:00
compiler-rt Silence a -Wconstant-logical-operand warning. 2018-06-07 18:51:47 +00:00
debuginfo-tests [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
libclc Add initial support for half precision builtins 2018-05-17 22:55:30 +00:00
libcxx Remove unused code from __functional_base. NFC. 2018-06-06 06:42:27 +00:00
libcxxabi private_typeinfo: limit is_dst_type_derived_from_static_type optimization 2018-05-18 20:51:38 +00:00
libunwind [OR1K] Add the EPCR special-purpose register to register state. 2018-05-16 19:09:48 +00:00
lld [WebAssembly] Add --export-all flag 2018-06-07 01:27:07 +00:00
lldb [lldb-mi] Re-implement MI -exec-next command. 2018-06-07 19:09:01 +00:00
llgo
llvm DAG: Avoid bitcast/ext/build_vector combine 2018-06-07 19:42:27 +00:00
openmp [OMPT] Rename ompt_wait_id to omp_wait_id 2018-05-28 08:16:08 +00:00
parallel-libs
polly Run clang-format 2018-06-07 08:32:13 +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.