On 09/28/2016 10:30 AM, Bernd Schmidt wrote:
On 09/28/2016 06:23 PM, Jeff Law wrote:
(reg/i:SI h0 ax)
(reg/i:SF h21 xmm0)
(Replying to myself, in the hope of better demonstrating the idea)
The following patch implements this idea for RTL dumps, so that all
REGNO
values in dumps get a one character prefix: 'h' for hard registers, 'v'
for virtual registers, and 'p' for non-virtual pseudos (making it easier
for both humans and parsers to grok the meaning of a REGNO).
I think you nailed it. h, v & p prefixing for each of the register
types, but leaving the actual register number as-is in the dump file.
I'm actually no longer quite so sure this buys us much: a port might
have an actual register named "h0", leading to confusion. Virtual and
hard registers also already have their real name printed after the number.
A "p" prefix for pseudos might still be a good idea, but there's still
the issue of a real "p0" register name causing confusion.
So how do you think we should deal with distinguishing between the
different registers that may appear in a dump file?
The case I'm worried about is the register meanings in a testsuite dump
file changing over time if/when new hard registers are added to the port
or we introduce new virtual registers.
FOr hard regs and virtuals we can probably map backwards using their
names. So given a register in a dump, if we can't reverse map it back
to a hard reg or a virtual, then we assume its a pseudo?
jeff