Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
Diana Picus a7372f15c9 [globalisel][tablegen] Skip src child predicates
The GlobalISel TableGen backend didn't check for predicates on the
source children. This caused it to generate code for ARM patterns such
as SMLABB or similar, but without properly checking for the sext_16_node
part of the operands. This in turn meant that we would select SMLABB
instead of MLA for simple sequences such as s32 + s32 * s32, which is
wrong (we want a MLA on the full operands, not just their bottom 16
bits).

This patch forces TableGen to skip patterns with predicates on the src
children, so it doesn't generate code for SMLABB and other similar ARM
instructions at all anymore. AArch64 and X86 are not affected.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317313 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-03 10:30:19 +00:00
bindings Update go bindings to use new functions from rL317135. 2017-11-02 10:22:26 +00:00
cmake [cmake] Make check_linker_flags operate via linker flags 2017-10-31 01:30:46 +00:00
docs Irreducible loop metadata for more accurate block frequency under PGO. 2017-11-02 22:26:51 +00:00
examples Fix broken links to the Itanium CXX ABI 2017-09-12 00:19:11 +00:00
include mir-canon: First commit. 2017-11-02 23:37:32 +00:00
lib [ARM GlobalISel] Move the check for Thumb higher up 2017-11-03 10:30:12 +00:00
projects
resources
runtimes [CMake][runtimes] Use the same configuration for non-target and "default" target 2017-09-08 22:26:50 +00:00
test [globalisel][tablegen] Skip src child predicates 2017-11-03 10:30:19 +00:00
tools [llvm-nm] Don't error out on multiple occurrances of the -g/--external-only flag 2017-11-03 07:18:21 +00:00
unittests Fix APFloat mod sign 2017-11-01 07:56:55 +00:00
utils [globalisel][tablegen] Skip src child predicates 2017-11-03 10:30:19 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [tools] Add option to install binutils symlinks 2017-11-02 21:43:32 +00:00
CODE_OWNERS.TXT Update my email addresses, NFC. 2017-10-26 10:16:54 +00:00
configure
CREDITS.TXT Add myself to CREDITS.txt 2017-09-18 14:33:39 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit access 2017-08-18 02:39:28 +00:00
RELEASE_TESTERS.TXT Update my email addresses, NFC. 2017-10-26 10:16:54 +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.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.