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

Repository
rL LLVM

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 ↗(On Diff #208237)

Is it possible to use InstType instead of unsigned here?

419 ↗(On Diff #208237)

Let's put this class into anonymous namespace.

482 ↗(On Diff #208237)

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.