]> granicus.if.org Git - llvm/commit
[globalisel][tblgen] Add support for iPTR and implement am_unscaled* and am_indexed*
authorDaniel Sanders <daniel_l_sanders@apple.com>
Mon, 16 Oct 2017 01:16:35 +0000 (01:16 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Mon, 16 Oct 2017 01:16:35 +0000 (01:16 +0000)
commit728d43b28f1412c8b6bee7e7ef6cec79b872078f
tree4dfb14aae07590a0737864a5267df58fde4634e0
parent508747d41851c6a0dcd44b7e14b6e5de08634d73
[globalisel][tblgen] Add support for iPTR and implement am_unscaled* and am_indexed*

Summary:
iPTR is a pointer of subtarget-specific size to any address space. Therefore
type checks on this size derive the SizeInBits from a subtarget hook.

At this point, we can import the simplests G_LOAD rules and select load
instructions using them. Further patches will support for the predicates to
enable additional loads as well as the stores.

Depends on D37457

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

Reviewed By: qcolombet

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

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

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