]> granicus.if.org Git - llvm/commit
[MIPS GlobalISel] Register bank select for G_STORE. Select i64 store
authorPetar Avramovic <Petar.Avramovic@rt-rk.com>
Mon, 8 Jul 2019 14:36:36 +0000 (14:36 +0000)
committerPetar Avramovic <Petar.Avramovic@rt-rk.com>
Mon, 8 Jul 2019 14:36:36 +0000 (14:36 +0000)
commitd43c943215bd41b1f496315f4fb646899d7c4ac9
treee7170c864b9f73de68d9d55e9140544f5ae49523
parent71895e64c48f465abaae564e21cce41e7e7f4c9b
[MIPS GlobalISel] Register bank select for G_STORE. Select i64 store

Select gprb or fprb when stored value is defined by either:
 copy from physical register or
 instruction with only one mapping available for that def operand.

Store of integer s64 is handled with narrowScalar when mapping is applied,
produced artifacts are combined away. Manually set gprb to all register
operands of instructions created during narrowScalar.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365322 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MipsLegalizerInfo.cpp
lib/Target/Mips/MipsRegisterBankInfo.cpp
lib/Target/Mips/MipsRegisterBankInfo.h
test/CodeGen/Mips/GlobalISel/legalizer/store.mir [new file with mode: 0644]
test/CodeGen/Mips/GlobalISel/llvm-ir/store.ll [new file with mode: 0644]
test/CodeGen/Mips/GlobalISel/regbankselect/store.mir [new file with mode: 0644]