llvm-project/llvm
Craig Topper 8885a7640b [X86] Separate imm from relocImm handling.
relocImm was a complexPattern that handled both ConstantSDNode
and X86Wrapper. But it was only applied selectively because using
it would cause patterns to be not importable into FastISel or
GlobalISel. So it only got applied to flag setting instructions,
stores, RMW arithmetic instructions, and rotates.

Most of the test changes are a result of making patterns available
to GlobalISel or FastISel. The absolute-cmp.ll change is due to
this fixing a pattern ordering issue to make an absolute symbol
match to an 8-bit immediate before trying a 32-bit immediate.

I tried to use PatFrags to reduce the repetition, but I was getting
errors from TableGen.
2020-06-13 11:29:28 -07:00
..
benchmarks
bindings
cmake [cmake] Don't pass -z discard-unused to Illumos ld 2020-06-12 09:56:42 +02:00
docs [WebAssembly] WebAssembly doesn't support "protected" visibility 2020-06-12 19:52:35 -07:00
examples
include Recommit "[DWARFYAML][debug_line] Replace `InitialLength` with `Format` and `Length`." 2020-06-13 23:39:11 +08:00
lib [X86] Separate imm from relocImm handling. 2020-06-13 11:29:28 -07:00
projects
resources
runtimes
test [X86] Separate imm from relocImm handling. 2020-06-13 11:29:28 -07:00
tools Recommit "[DWARFYAML][debug_line] Replace `InitialLength` with `Format` and `Length`." 2020-06-13 23:39:11 +08:00
unittests Recommit "[DWARFYAML][debug_line] Replace `InitialLength` with `Format` and `Length`." 2020-06-13 23:39:11 +08:00
utils [Lit] Pass through SSH_AUTH_SOCK from the surrounding environment 2020-06-12 13:59:29 -04:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Automatically configure MLIR when flang is enabled 2020-05-27 07:31:49 +00:00
CODE_OWNERS.TXT Make myself code owner of InferAddressSpaces 2020-06-08 21:26:01 -04: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.