Re-commit r315863: [globalisel][tablegen] Import ComplexPattern when used as an operator
authorDaniel Sanders <daniel_l_sanders@apple.com>
Sun, 15 Oct 2017 18:22:54 +0000 (18:22 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Sun, 15 Oct 2017 18:22:54 +0000 (18:22 +0000)
commitdf39cbae2fdd290923cd672372eabb764e0665f2
tree0a84b6b73d133086872f44c48e9caa6f409600e2
parent4806f70060c8ab09acc83f1693815dfa1abdbd6b
Re-commit r315863: [globalisel][tablegen] Import ComplexPattern when used as an operator

Summary:
It's possible for a ComplexPattern to be used as an operator in a match
pattern. This is used by the load/store patterns in AArch64 to name the
suboperands returned by ComplexPattern predicate so that they can be broken
apart and referenced independently in the result pattern.

This patch adds support for this in order to enable the import of load/store
patterns.

Depends on D37445

Hopefully fixed the ambiguous constructor that a large number of bots reported.

Reviewers: ab, qcolombet, t.p.northover, rovka, aditya_nandakumar

Reviewed By: qcolombet

Subscribers: aemerson, javed.absar, igorb, llvm-commits, kristof.beyls

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

llvm-svn: 315869
llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp
llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
llvm/test/TableGen/GlobalISelEmitter.td
llvm/utils/TableGen/GlobalISelEmitter.cpp