1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
Go to file
Sanjay Patel e68c91d039 [x86] shrink 'and' immediate values by setting the high bits (PR35907)
Try to reverse the constant-shrinking that happens in SimplifyDemandedBits()
for 'and' masks when it results in a smaller sign-extended immediate.

We are also able to detect dead 'and' ops here (the mask is all ones). In
that case, we replace and return without selecting the 'and'.

Other targets might want to share some of this logic by enabling this under a
target hook, but I didn't see diffs for simple cases with PowerPC or AArch64,
so they may already have some specialized logic for this kind of thing or have
different needs.

This should solve PR35907:
https://bugs.llvm.org/show_bug.cgi?id=35907

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

llvm-svn: 322957
2018-01-19 16:37:25 +00:00
bindings [bindings/go] fix vet errors 2017-12-28 04:10:09 +00:00
cmake [CMake] Add LLVM_ENABLE_IDE option to better process sources for IDE's 2018-01-12 04:01:41 +00:00
docs [docs] Make ReleaseProcess.rst 80 column. NFCI 2018-01-18 14:57:55 +00:00
examples PR35705: Fix Chapter 9 example code for API changes to DIBuilder 2017-12-20 19:36:54 +00:00
include [Support] - Check nullptr after allocation with malloc in MallocAllocator - Differential Revision: http://reviews.llvm.org/D34753 2018-01-19 14:17:53 +00:00
lib [x86] shrink 'and' immediate values by setting the high bits (PR35907) 2018-01-19 16:37:25 +00:00
projects [cmake] Support moving debuginfo-tests to llvm/projects 2017-12-12 17:06:08 +00:00
resources
runtimes [CMake] Support for cross-compilation when build runtimes 2018-01-08 23:50:59 +00:00
test [x86] shrink 'and' immediate values by setting the high bits (PR35907) 2018-01-19 16:37:25 +00:00
tools [ORC] Revert r322913 while I investigate an ASan failure. 2018-01-19 01:40:26 +00:00
unittests [CodeGen] Unify printing format of debug-location in both MIR and -debug 2018-01-19 11:44:42 +00:00
utils Follow-up to rL322875 by initializing the do_libcxxabi variable properly. 2018-01-18 19:30:30 +00:00
.arcconfig [llvm] Set up .arcconfig to point to Diffusion L repository 2018-01-12 15:37:41 +00:00
.clang-format
.clang-tidy
.gitattributes [MC] Fix regression tests on Windows when git “core.autocrlf” is set to true. 2017-11-17 21:59:43 +00:00
.gitignore
CMakeLists.txt The trunk version is now 7.0.0svn 2018-01-03 14:52:54 +00:00
CODE_OWNERS.TXT Update my email addresses, NFC. 2017-10-26 10:16:54 +00:00
configure
CREDITS.TXT we have now https support for apt.llvm.org. Updating the URL 2018-01-18 19:57:35 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
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.