How does the value relate to the total VGPR count? Are these in addition, or this just indicates how many of the VGPRs are shared? If the later, is there an error for when this value exceeds the requested VGPR count?
How does new_vgpr work? Is it agnostic to which VGPRs are private and shared? Seems it probably is so that present no issues with adding shared VGPRs but wanted to check.
Disassembler support is already here, because the asm printing is done AMDGPUTargetAsmStreamer.
It already says "GFX10" in one of the columns.
Will post a follow up patch shortly.
It is already the case. See line 427 in this patch set.
I've added a check/error for when shared_vgpr_count exceeds next_free_vgpr. I'm still looking into "new_vgpr" and if any changes need to be made related to that.
Suggest reword to:
Number of shared VGPR blocks for wavefront size 64 when executing in subvector mode. For wavefront size 64 the value is 0-15, representing 0-120 VGPRs (granularity of 8), such that (compute_pgm_rsrc1.vgprs +1)*4 + shared_vgpr_count*8 does not exceed 256. For wavefront size 32 must be 0.