int first_non_payload_grf;
unsigned int max_grf;
- int *virtual_grf_start;
- int *virtual_grf_end;
- brw::vec4_live_variables *live_intervals;
+ BRW_ANALYSIS(live_analysis, brw::vec4_live_variables,
+ backend_shader *) live_analysis;
bool need_all_constants_in_pull_buffer;
void move_push_constants_to_pull_constants();
void split_uniform_registers();
void pack_uniform_registers();
- void calculate_live_intervals();
- void invalidate_live_intervals();
+ virtual void invalidate_analysis(brw::analysis_dependency_class c);
void split_virtual_grfs();
bool opt_vector_float();
bool opt_reduce_swizzle();
bool dead_code_eliminate();
- int var_range_start(unsigned v, unsigned n) const;
- int var_range_end(unsigned v, unsigned n) const;
- bool virtual_grf_interferes(int a, int b);
bool opt_cmod_propagation();
bool opt_copy_propagation(bool do_constant_prop = true);
- bool opt_cse_local(bblock_t *block);
+ bool opt_cse_local(bblock_t *block, const vec4_live_variables &live);
bool opt_cse();
bool opt_algebraic();
bool opt_register_coalesce();
#undef EMIT2
#undef EMIT3
- int implied_mrf_writes(vec4_instruction *inst);
-
vec4_instruction *emit_minmax(enum brw_conditional_mod conditionalmod, dst_reg dst,
src_reg src0, src_reg src1);
src_reg get_timestamp();
- void dump_instruction(backend_instruction *inst);
- void dump_instruction(backend_instruction *inst, FILE *file);
+ void dump_instruction(const backend_instruction *inst) const;
+ void dump_instruction(const backend_instruction *inst, FILE *file) const;
bool is_high_sampler(src_reg sampler);