llvm-project/llvm
Craig Topper bde2b43cb3 [X86] In EFLAGS copy pass, don't emit EXTRACT_SUBREG instructions since we're after peephole
Normally the peephole pass converts EXTRACT_SUBREG to COPY instructions. But we're after peephole so we can't rely on it to clean these up.

To fix this, the eflags pass now emits a COPY with a subreg input.

I also noticed that in 32-bit mode we need to constrain the input to the copy to ensure the subreg is valid. Otherwise we'll fail verify-machineinstrs

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

llvm-svn: 339945
2018-08-16 21:54:02 +00:00
..
bindings
cmake [cmake] Prevent LLVMgold.so from being unloaded on Linux 2018-08-16 15:12:12 +00:00
docs Update the coding standards and developer policy documentation surrounding whitespace. 2018-08-10 17:26:07 +00:00
examples
include [MI] Change the array of `MachineMemOperand` pointers to be 2018-08-16 21:30:05 +00:00
lib [X86] In EFLAGS copy pass, don't emit EXTRACT_SUBREG instructions since we're after peephole 2018-08-16 21:54:02 +00:00
projects
resources
runtimes Revert "[CMake] Pass Clang defaults to runtimes builds" 2018-07-13 20:01:55 +00:00
test [X86] In EFLAGS copy pass, don't emit EXTRACT_SUBREG instructions since we're after peephole 2018-08-16 21:54:02 +00:00
tools [llvm-mca] Fix -Wpessimizing-move warnings introduced by r339923. 2018-08-16 19:45:13 +00:00
unittests DebugInfo: Add metadata support for disabling DWARF pub sections 2018-08-16 21:29:55 +00:00
utils [TableGen] TypeSetByHwMode::operator== optimization 2018-08-16 16:16:28 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Remove vestiges of configure buildsystem 2018-08-14 21:25:49 +00:00
CODE_OWNERS.TXT Add owner for llvm-objcopy 2018-08-09 22:05:19 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

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.