This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Use GPR register class for RV64 ZDInx. Remove GPRF64 register class.
ClosedPublic

Authored by craig.topper on Jun 16 2023, 12:44 AM.

Details

Summary

The GPRF64 has the same spill size as GPR and is only used for RV64.
There's no real reason to have it as a separate class other than
for type inference for isel patterns in tablegen.

This patch adds f64 to the GPR register class when XLen=64. I use
f32 when XLen=32 even though we don't make use of it just to avoid
the oddity.

isel patterns have been updated to fix the lack of type infererence.

I might do similar for GPRF16 and GPRF32 or I might change them to
use an optimized spill size instead of always using XLen.

Diff Detail

Event Timeline

craig.topper created this revision.Jun 16 2023, 12:44 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 16 2023, 12:44 AM
craig.topper requested review of this revision.Jun 16 2023, 12:44 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 16 2023, 12:44 AM
asb accepted this revision.Jun 22 2023, 7:32 AM

Seems to need a rebase, but LGTM.

This revision is now accepted and ready to land.Jun 22 2023, 7:32 AM