The previous flag/default of printing everything is
not helpful when there are thousands of registers
in the mask.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Some thoughts:
- Is this motivated by AMDGPU having a huge number of registers in the mask?
- For X86, AArch64, ARM the output certainly takes up a bunch of space but I find the information important enough that I'd like to see it by default
- How about a compromise: We stop using an On/Off switch but instead influence the number of registers printed in the regmask instead of the hardcoded 10 at the moment. Then choose a big default value that easily fits X86, AArch64, ARM etc.
Comment Actions
Yes. It more than fills my fullscreen terminal window on any call. It wouldn't be so bad if it printed just regunits, but this also prints all of the register tuple combinations as well.
- For X86, AArch64, ARM the output certainly takes up a bunch of space but I find the information important enough that I'd like to see it by default
- How about a compromise: We stop using an On/Off switch but instead influence the number of registers printed in the regmask instead of the hardcoded 10 at the moment. Then choose a big default value that easily fits X86, AArch64, ARM etc.
The MIR printer comes up with a symbolic name for the regmask. I was wondering why the debug dump doesn't use that
Comment Actions
- You could extend the debug printer to do the same.
- I would find it inconvenient if I had to lookup what registers belong to a certain symbol name, so I wouldn't like this as default either.
- There will be cases where no name exists as some x86 fastcall convention dynamically creates clobber masks depending on the arguments of the call.
Comment Actions
- Unfortunately regmasks cannot be expressed in regunits today. The canonical example is xmm0 and ymm0 on X86 occuying the exact same register units (because the extra bits of ymm0 cannot be addressed/named independently) but they are still separate registers having different clobbering behavior in some calling conventions.