This is an archive of the discontinued LLVM Phabricator instance.

[AMDGPU] Allow register tuples to set asm names
ClosedPublic

Authored by rampitec on Jul 18 2019, 6:38 PM.

Details

Summary

This change reverts most of the previous register name generation.
The real problem is that RegisterTuple does not generate asm names.
Added optional operand to RegisterTuple. This way we can simplify
register name access and dramatically reduce the size of static
tables for the backend.

Diff Detail

Repository
rL LLVM

Event Timeline

rampitec created this revision.Jul 18 2019, 6:38 PM

Note, with changes to tablegen we need to clean and rebuild llvm if optimized tablegen is used with debug build. There seems to be a missing dependency in this case.

That also shall be possible to build register dags in a single parent class based on the same RegSeq. Everything with stride 1 is trunc/shl and everything with higher stride is decimate/shl of the same stride. They can even be combined into a single expression.

arsenm accepted this revision.Jul 19 2019, 10:48 AM

LGTM

This revision is now accepted and ready to land.Jul 19 2019, 10:48 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptJul 19 2019, 11:06 AM