}
void
-fs_visitor::dump_instructions() const
+fs_visitor::dump_instructions_to_file(FILE *file) const
{
- dump_instructions(NULL);
-}
-
-void
-fs_visitor::dump_instructions(const char *name) const
-{
- FILE *file = stderr;
- if (name && geteuid() != 0) {
- file = fopen(name, "w");
- if (!file)
- file = stderr;
- }
-
if (cfg) {
const register_pressure &rp = regpressure_analysis.require();
unsigned ip = 0, max_pressure = 0;
dump_instruction(inst, file);
}
}
-
- if (file != stderr) {
- fclose(file);
- }
-}
-
-void
-fs_visitor::dump_instruction(const backend_instruction *be_inst) const
-{
- dump_instruction(be_inst, stderr);
}
void
-fs_visitor::dump_instruction(const backend_instruction *be_inst, FILE *file) const
+fs_visitor::dump_instruction_to_file(const backend_instruction *be_inst, FILE *file) const
{
const fs_inst *inst = (const fs_inst *)be_inst;
fs_reg interp_reg(int location, int channel);
fs_reg per_primitive_reg(int location);
- virtual void dump_instructions() const;
- virtual void dump_instructions(const char *name) const;
- void dump_instruction(const backend_instruction *inst) const;
- void dump_instruction(const backend_instruction *inst, FILE *file) const;
+ virtual void dump_instruction_to_file(const backend_instruction *inst, FILE *file) const;
+ virtual void dump_instructions_to_file(FILE *file) const;
const brw_base_prog_key *const key;
const struct brw_sampler_prog_key_data *key_tex;
}
void
-backend_shader::dump_instructions() const
-{
- dump_instructions(NULL);
-}
-
-void
backend_shader::dump_instructions(const char *name) const
{
FILE *file = stderr;
file = stderr;
}
+ dump_instructions_to_file(file);
+
+ if (file != stderr) {
+ fclose(file);
+ }
+}
+
+void
+backend_shader::dump_instructions_to_file(FILE *file) const
+{
if (cfg) {
int ip = 0;
foreach_block_and_inst(block, backend_instruction, inst, cfg) {
dump_instruction(inst, file);
}
}
-
- if (file != stderr) {
- fclose(file);
- }
}
void
brw::simple_allocator alloc;
- virtual void dump_instruction(const backend_instruction *inst) const = 0;
- virtual void dump_instruction(const backend_instruction *inst, FILE *file) const = 0;
- virtual void dump_instructions() const;
- virtual void dump_instructions(const char *name) const;
+ virtual void dump_instruction_to_file(const backend_instruction *inst, FILE *file) const = 0;
+ virtual void dump_instructions_to_file(FILE *file) const;
+
+ /* Convenience functions based on the above. */
+ void dump_instruction(const backend_instruction *inst, FILE *file = stderr) const {
+ dump_instruction_to_file(inst, file);
+ }
+ void dump_instructions(const char *name = nullptr) const;
void calculate_cfg();
}
void
-vec4_visitor::dump_instruction(const backend_instruction *be_inst) const
-{
- dump_instruction(be_inst, stderr);
-}
-
-void
-vec4_visitor::dump_instruction(const backend_instruction *be_inst, FILE *file) const
+vec4_visitor::dump_instruction_to_file(const backend_instruction *be_inst, FILE *file) const
{
const vec4_instruction *inst = (const vec4_instruction *)be_inst;
src_reg get_timestamp();
- void dump_instruction(const backend_instruction *inst) const;
- void dump_instruction(const backend_instruction *inst, FILE *file) const;
+ virtual void dump_instruction_to_file(const backend_instruction *inst, FILE *file) const;
bool optimize_predicate(nir_alu_instr *instr, enum brw_predicate *predicate);