case QUNIFORM_TMU_CONFIG_P0:
fprintf(stderr, "tex[%d].p0 | 0x%x",
- v3d_tmu_config_data_get_unit(data),
- v3d_tmu_config_data_get_value(data));
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
break;
case QUNIFORM_TMU_CONFIG_P1:
fprintf(stderr, "tex[%d].p1 | 0x%x",
- v3d_tmu_config_data_get_unit(data),
- v3d_tmu_config_data_get_value(data));
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
break;
case QUNIFORM_IMAGE_TMU_CONFIG_P0:
fprintf(stderr, "img[%d].p0 | 0x%x",
- v3d_tmu_config_data_get_unit(data),
- v3d_tmu_config_data_get_value(data));
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
break;
case QUNIFORM_TEXTURE_WIDTH:
fprintf(stderr, "img[%d].array_size", data);
break;
+ case QUNIFORM_SPILL_OFFSET:
+ fprintf(stderr, "spill_offset");
+ break;
+
+ case QUNIFORM_SPILL_SIZE_PER_THREAD:
+ fprintf(stderr, "spill_size_per_thread");
+ break;
+
case QUNIFORM_UBO_ADDR:
- fprintf(stderr, "ubo[%d]", data);
+ fprintf(stderr, "ubo[%d]+0x%x",
+ v3d_unit_data_get_unit(data),
+ v3d_unit_data_get_offset(data));
break;
case QUNIFORM_SSBO_OFFSET:
vir_print_reg(struct v3d_compile *c, const struct qinst *inst,
struct qreg reg)
{
- static const char *files[] = {
- [QFILE_TEMP] = "t",
- [QFILE_TLB] = "tlb",
- [QFILE_TLBU] = "tlbu",
- };
-
switch (reg.file) {
case QFILE_NULL:
reg.index / 4, reg.index % 4);
break;
- case QFILE_TLB:
- case QFILE_TLBU:
- fprintf(stderr, "%s", files[reg.file]);
- break;
-
- default:
- fprintf(stderr, "%s%d", files[reg.file], reg.index);
+ case QFILE_TEMP:
+ fprintf(stderr, "t%d", reg.index);
break;
}
}
vir_dump(struct v3d_compile *c)
{
int ip = 0;
+ int pressure = 0;
vir_for_each_block(block, c) {
fprintf(stderr, "BLOCK %d:\n", block->index);
vir_for_each_inst(inst, block) {
if (c->live_intervals_valid) {
+ for (int i = 0; i < c->num_temps; i++) {
+ if (c->temp_start[i] == ip)
+ pressure++;
+ }
+
+ fprintf(stderr, "P%4d ", pressure);
+
bool first = true;
for (int i = 0; i < c->num_temps; i++) {
} else {
fprintf(stderr, ", ");
}
- fprintf(stderr, "S%4d", i);
+ if (BITSET_TEST(c->spillable, i))
+ fprintf(stderr, "S%4d", i);
+ else
+ fprintf(stderr, "U%4d", i);
}
if (first)
fprintf(stderr, ", ");
}
fprintf(stderr, "E%4d", i);
+ pressure--;
}
if (first)