[globalisel][tablegen] Import ComplexPattern when used as an operator
authorDaniel Sanders <daniel_l_sanders@apple.com>
Sun, 15 Oct 2017 17:03:36 +0000 (17:03 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Sun, 15 Oct 2017 17:03:36 +0000 (17:03 +0000)
commitb95b867dd83703cc52ace3ed5c14eeba568005f4
tree2aa42500b77c06dac1ccecb87bce1a46d275055e
parent27381173268b6d5d226ddd3429f57f10b20c58c0
[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

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: 315863
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