llvm-project/llvm
Sander de Smalen 118099a62c [TableGen][AsmMatcherEmitter] Allow tied operands of different classes in aliases.
Allow a tied operand of a different operand class in InstAliases,
so that the operand can be printed (and added to the MC instruction)
as the appropriate register. For example, 'GPR64as32', which would
be printed/parsed as a 32bit register and should match a tied 64bit
register operand, where the former is a sub-register of the latter.

This patch also generalizes the constraint checking to an overrideable
method in MCTargetAsmParser, so that target asmparsers can specify
whether a given operand satisfies the tied register constraint.

Reviewers: olista01, rengolin, fhahn, SjoerdMeijer, samparker, dsanders, craig.topper

Reviewed By: fhahn

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

llvm-svn: 334942
2018-06-18 13:39:29 +00:00
..
bindings [LLVM-C] [OCaml] Remove LLVMAddBBVectorizePass 2018-05-28 16:58:10 +00:00
cmake [cmake] Change ON/OFF to YES/NO. NFC 2018-06-14 23:40:04 +00:00
docs [llvm-exegesis] Optionally ignore instructions without a sched class. 2018-06-18 11:27:47 +00:00
examples [ORC] Update JITCompileCallbackManager to support multi-threaded code. 2018-05-30 01:57:45 +00:00
include [TableGen][AsmMatcherEmitter] Allow tied operands of different classes in aliases. 2018-06-18 13:39:29 +00:00
lib [SLPVectorizer] Avoid calling const VL.size() repeatedly in for-loop. NFCI. 2018-06-18 11:35:36 +00:00
projects
resources
runtimes [CMake] Pass additional CMake tools to external projects 2018-06-06 21:43:37 +00:00
test [AArch64][SVE] Asm: Support for vector element compares. 2018-06-18 10:59:19 +00:00
tools [llvm-exegesis] Optionally ignore instructions without a sched class. 2018-06-18 11:27:47 +00:00
unittests [VPlanRecipeBase] Add insertBefore helper. 2018-06-18 11:34:17 +00:00
utils [TableGen][AsmMatcherEmitter] Allow tied operands of different classes in aliases. 2018-06-18 13:39:29 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
.gitignore
CMakeLists.txt [CMake] Handle 'libtool' being at a path with spaces in it. 2018-06-13 18:21:47 +00:00
CODE_OWNERS.TXT
CREDITS.TXT Update my information in the CREDITS file. 2018-06-15 20:02:11 +00:00
LICENSE.TXT Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
LLVMBuild.txt
README.txt Test commit: remove a blank line 2018-06-08 21:21:55 +00:00
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.