]> granicus.if.org Git - llvm/commit
[globalisel][tablegen] Implement unindexed load, non-extending load, and MemVT checks
authorDaniel Sanders <daniel_l_sanders@apple.com>
Mon, 16 Oct 2017 00:56:30 +0000 (00:56 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Mon, 16 Oct 2017 00:56:30 +0000 (00:56 +0000)
commit508747d41851c6a0dcd44b7e14b6e5de08634d73
tree9a9e1b42a1ea01c59f332294261134bf17d35d08
parenta057c40dc32b0970a2d0e3ddc5299aa43484025b
[globalisel][tablegen] Implement unindexed load, non-extending load, and MemVT checks

Summary:
This includes some context-sensitivity in the MVT to LLT conversion so that
pointer types are tested correctly.
FIXME: I'm not happy with the way this is done since everything is a
       special-case. I've yet to find a reasonable way to implement it.

select-load.mir fails because <1 x s64> loads in tablegen get priority over s64
loads. This is fixed in the next patch and as such they should be committed
together, I've posted them separately to help with the review.

Depends on D37456

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

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

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315884 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/GlobalISel/InstructionSelector.h
include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
test/CodeGen/AArch64/GlobalISel/select-load.mir
test/TableGen/GlobalISelEmitter.td
utils/TableGen/GlobalISelEmitter.cpp