[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)
commit27fe8a50110a5249ac68469c9fc27fa75b42ac3c
treed92526478f1646f66f97ab2f6d2a1720e5a28a28
parent3a8a56b8b76a39c24110fc92fc24bbd0549f737e
[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

llvm-svn: 331071
llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
llvm/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir
llvm/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir
llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-vfp4.mir
llvm/test/CodeGen/X86/GlobalISel/legalize-memop-scalar.mir
llvm/test/CodeGen/X86/GlobalISel/legalize-undef.mir