Mirror of official llvm git repository located at http://llvm.org/git/llvm. Updated every five minutes.
Go to file
Daniel Sanders a216c3246b [globalisel][tablegen] Fix an multi-insn match bug where ComplexPattern is used on multiple insns.
In each rule, each use of ComplexPattern is assigned an element in the Renderers
array. The matcher then collects renderer functions in this array and they are
used to render instructions. This works well for a single instruction but a
bug in the allocation mechanism causes the elements to be assigned on a
per-instruction basis rather than a per-rule basis.

So in the case of:
  (set GPR32:$dst, (Op complex:$src1, complex:$src2))
tablegen currently assigns elements 0 and 1 to $src1 and $src2 respectively,
but for:
  (set GPR32:$dst, (Op complex:$src1, (Op complex:$src2)))
it currently assigned both $src1 and $src2 the same element (0). This results in
one complex operand being rendered twice and the other being forgotten.
This patch corrects the allocation such that $src1 and $src2 are still allocated
different elements in this case.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307646 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-11 10:40:18 +00:00
bindings [NFC] Remove multiple semicolons 2017-06-28 23:15:16 +00:00
cmake [cmake] Remove obsolete unset in CMake. 2017-07-10 18:58:05 +00:00
docs [llvm-cov] Add a cl::opt to control the number of threads 2017-07-11 01:23:29 +00:00
examples [ORC] Errorize the ORC APIs. 2017-07-07 02:59:13 +00:00
include [globalisel][tablegen] Correct matching of intrinsic ID's. 2017-07-11 08:57:29 +00:00
lib [ARM] ldr pc,=expression should be allowed in Thumb2 2017-07-11 09:47:12 +00:00
projects Add temporary workaround to allow in-tree libc++ builds on Windows 2017-05-11 01:44:30 +00:00
resources
runtimes Remove circular dependency from runtimes/CMakeLists 2017-07-11 00:48:00 +00:00
test [globalisel][tablegen] Fix an multi-insn match bug where ComplexPattern is used on multiple insns. 2017-07-11 10:40:18 +00:00
tools fix typos in comments; NFC 2017-07-11 06:04:59 +00:00
unittests fix typos in comments; NFC 2017-07-11 06:04:59 +00:00
utils [globalisel][tablegen] Fix an multi-insn match bug where ComplexPattern is used on multiple insns. 2017-07-11 10:40:18 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt CMake: Add LLVM_UTILS_INSTALL_DIR option 2017-07-05 12:57:30 +00:00
CODE_OWNERS.TXT Remove the BBVectorize pass. 2017-06-30 07:09:08 +00:00
configure
CREDITS.TXT Another test commit 2017-07-01 03:24:06 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT

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.