OSDN Git Service

[globalisel][legalizerinfo] Add support for legalization based on the MachineMemOperand
authorDaniel Sanders <daniel_l_sanders@apple.com>
Fri, 27 Apr 2018 19:48:53 +0000 (19:48 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Fri, 27 Apr 2018 19:48:53 +0000 (19:48 +0000)
commit9378c2c1c0033cbb654ec3c50a15ad55875a9f2a
tree79c3feafd1e7895cf4316dcbf7fee2044954ab6d
parent0fb24c145bf76cfd83cd8f7da672a303a151239f
[globalisel][legalizerinfo] Add support for legalization based on the MachineMemOperand

Summary:
Currently only the memory size is supported but others can be added as
needed.

narrowScalar for G_LOAD and G_STORE now correctly update the
MachineMemOperand and will refuse to legalize atomics since those need more
careful expansions to maintain atomicity.

Reviewers: ab, aditya_nandakumar, bogner, rtereshin, aemerson, javed.absar

Reviewed By: aemerson

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

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331071 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
lib/CodeGen/GlobalISel/LegalityPredicates.cpp
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
lib/CodeGen/GlobalISel/LegalizerInfo.cpp
lib/Target/AArch64/AArch64LegalizerInfo.cpp
test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir
test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir
test/CodeGen/ARM/GlobalISel/arm-legalize-vfp4.mir
test/CodeGen/X86/GlobalISel/legalize-memop-scalar.mir
test/CodeGen/X86/GlobalISel/legalize-undef.mir