This is an archive of the discontinued LLVM Phabricator instance.

[MIPS GlobalISel] Register bank select for G_STORE. Select i64 store
ClosedPublic

Authored by Petar.Avramovic on Jul 5 2019, 2:21 PM.

Details

Summary

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.

Diff Detail

Event Timeline

Petar.Avramovic created this revision.Jul 5 2019, 2:21 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 5 2019, 2:21 PM
atanasyan accepted this revision.Jul 6 2019, 6:59 AM

LGTM with a few code-style nits.

lib/Target/Mips/MipsRegisterBankInfo.cpp
297

Is it possible to use InstType instead of unsigned here?

419

Let's put this class into anonymous namespace.

482

Restore new line at the end of this file.

This revision is now accepted and ready to land.Jul 6 2019, 6:59 AM

Addressed review comments.

This revision was automatically updated to reflect the committed changes.