Go to file
Hiroshi Inoue 9552dd187a [PowerPC] avoid masking already-zero bits in BitPermutationSelector
The current BitPermutationSelector generates a code to build a value by tracking two types of bits: ConstZero and Variable.
ConstZero means a bit we need to mask off and Variable is a bit we copy from an input value.

This patch add third type of bits VariableKnownToBeZero caused by AssertZext node or zero-extending load node.
VariableKnownToBeZero means a bit comes from an input value, but it is known to be already zero. So we do not need to mask them.
VariableKnownToBeZero enhances flexibility to group bits, since we can avoid redundant masking for these bits.

This patch also renames "HasZero" to "NeedMask" since now we may skip masking even when we have zeros (of type VariableKnownToBeZero).

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

llvm-svn: 344347
2018-10-12 14:02:20 +00:00
clang Remove top-level using declaration from header files, as these aliases leak. 2018-10-12 12:21:29 +00:00
clang-tools-extra [clang-tidy] Fix check_clang_tidy.py trivially passing default CHECK 2018-10-12 13:35:47 +00:00
compiler-rt [libFuzzer] Add test for SanitizerCoverage working on Mac even with -Wl,-dead_strip. 2018-10-12 13:59:56 +00:00
debuginfo-tests Revert "(Retry) Add a basic integration test for C++ smart pointers" 2018-08-20 19:53:33 +00:00
libclc configure: Rework support for gfx9+ devices that were added post LLVM 3.9 2018-09-15 22:02:01 +00:00
libcxx Revert commit r344254; does not work with C++03 2018-10-11 17:28:57 +00:00
libcxxabi Override libcxxabi's .clang-format in the demangle directory 2018-10-11 23:30:56 +00:00
libunwind [CMake] Link to compiler-rt if LIBUNWIND_USE_COMPILER_RT is ON. 2018-10-08 18:35:00 +00:00
lld [ELF] - Remove unused variable. NFC. 2018-10-12 13:39:35 +00:00
lldb [LLDB] - Add support for DW_FORM_implicit_const. 2018-10-12 09:46:15 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [PowerPC] avoid masking already-zero bits in BitPermutationSelector 2018-10-12 14:02:20 +00:00
openmp [OpenMP] Convert KMP_DYNAMIC_LIB to a 0 or 1 guard everywhere 2018-10-05 17:59:39 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [IslAst] Fix InParallelFor nesting. 2018-09-27 13:39:37 +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.