This is an archive of the discontinued LLVM Phabricator instance.

[MIPS GlobalISel] Register bank select for G_LOAD. Select i64 load
ClosedPublic

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

Details

Summary

Select gprb or fprb when loaded value is used by either:

copy to physical register or
instruction with only one mapping available for that use operand.

Load 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:23 PM
Herald added a project: Restricted Project. · View Herald TranscriptJul 5 2019, 2:23 PM
atanasyan accepted this revision.Jul 6 2019, 6:59 AM

LGTM with a nit

lib/Target/Mips/MipsRegisterBankInfo.cpp
335

Is it possible to use InstType instead of unsigned here?

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.