register_demand.resize(block->instructions.size());
block->register_demand = RegisterDemand();
- std::set<Temp> live = lives.live_out[block->index];
+ TempSet live = lives.live_out[block->index];
/* add the live_out_exec to live */
bool exec_live = false;
#ifndef NDEBUG
if (preds.empty())
- fprintf(stderr, "Temporary never defined or are defined after use: %%%d in BB%d\n", t.id(), block->index);
+ aco_err(program, "Temporary never defined or are defined after use: %%%d in BB%d", t.id(), block->index);
#endif
for (unsigned pred_idx : preds) {
{
/* TODO: max_waves_per_simd, simd_per_cu and the number of physical vgprs for Navi */
unsigned max_waves_per_simd = 10;
+ if ((program->family >= CHIP_POLARIS10 && program->family <= CHIP_VEGAM) || program->chip_class >= GFX10_3)
+ max_waves_per_simd = 8;
unsigned simd_per_cu = 4;
bool wgp = program->chip_class >= GFX10; /* assume WGP is used on Navi */