nir: Handle all array stride cases in nir_deref_instr_array_stride
[mesa.git] / src / amd / compiler / aco_live_var_analysis.cpp
index c6995e44e8d3f0e2f233d0a20f3d57a3c67f2f7c..1c47eb3d6a4d337164e693b4db65f8f6c3f0c861 100644 (file)
@@ -91,7 +91,7 @@ void process_live_temps_per_block(Program *program, live& lives, Block* block,
 
    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;
@@ -214,7 +214,7 @@ void process_live_temps_per_block(Program *program, live& lives, Block* block,
 
 #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) {
@@ -337,6 +337,8 @@ void update_vgpr_sgpr_demand(Program* program, const RegisterDemand new_demand)
 {
    /* 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 */