Dumping the number of live registers at each IP allows us to see
register pressure and identify any local maxima. This should
aid in debugging passes designed to reduce register pressure, as
well as optimizations that suddenly trigger spilling.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
}
}
+void
+fs_visitor::dump_instructions()
+{
+ calculate_register_pressure();
+
+ int ip = 0;
+ foreach_list(node, &this->instructions) {
+ backend_instruction *inst = (backend_instruction *)node;
+ printf("{%3d} %4d: ", regs_live_at_ip[ip], ip);
+ dump_instruction(inst);
+ ++ip;
+ }
+}
+
void
fs_visitor::dump_instruction(backend_instruction *be_inst)
{
void setup_builtin_uniform_values(ir_variable *ir);
int implied_mrf_writes(fs_inst *inst);
+ virtual void dump_instructions();
void dump_instruction(backend_instruction *inst);
void visit_atomic_counter_intrinsic(ir_call *ir);
exec_list instructions;
virtual void dump_instruction(backend_instruction *inst) = 0;
- void dump_instructions();
+ virtual void dump_instructions();
void assign_common_binding_table_offsets(uint32_t next_binding_table_offset);