From: Matt Turner Date: Sun, 29 Jun 2014 02:52:04 +0000 (-0700) Subject: i965: Mark fields in the live interval classes protected. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ec1b2d6aa075c678f0eb0405be64253450f995a1;p=mesa.git i965: Mark fields in the live interval classes protected. cfg, for instance, is a pointer to a local variable in calculate_live_intervals, certainly not valid after that function has returned. Reviewed-by: Ian Romanick --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_live_variables.h b/src/mesa/drivers/dri/i965/brw_fs_live_variables.h index 82575d8287f..5a7dd279b3c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_live_variables.h +++ b/src/mesa/drivers/dri/i965/brw_fs_live_variables.h @@ -60,19 +60,9 @@ public: fs_live_variables(fs_visitor *v, cfg_t *cfg); ~fs_live_variables(); - void setup_def_use(); - void setup_one_read(bblock_t *block, fs_inst *inst, int ip, fs_reg reg); - void setup_one_write(bblock_t *block, fs_inst *inst, int ip, fs_reg reg); - void compute_live_variables(); - void compute_start_end(); - bool vars_interfere(int a, int b); int var_from_reg(fs_reg *reg); - fs_visitor *v; - cfg_t *cfg; - void *mem_ctx; - /** Map from virtual GRF number to index in block_data arrays. */ int *var_from_vgrf; @@ -98,6 +88,18 @@ public: /** Per-basic-block information on live variables */ struct block_data *bd; + +protected: + void setup_def_use(); + void setup_one_read(bblock_t *block, fs_inst *inst, int ip, fs_reg reg); + void setup_one_write(bblock_t *block, fs_inst *inst, int ip, fs_reg reg); + void compute_live_variables(); + void compute_start_end(); + + fs_visitor *v; + cfg_t *cfg; + void *mem_ctx; + }; } /* namespace brw */ diff --git a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.h b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.h index b2d8b339822..03cc813782e 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.h +++ b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.h @@ -58,18 +58,19 @@ public: vec4_live_variables(vec4_visitor *v, cfg_t *cfg); ~vec4_live_variables(); + int num_vars; + int bitset_words; + + /** Per-basic-block information on live variables */ + struct block_data *bd; + +protected: void setup_def_use(); void compute_live_variables(); vec4_visitor *v; cfg_t *cfg; void *mem_ctx; - - int num_vars; - int bitset_words; - - /** Per-basic-block information on live variables */ - struct block_data *bd; }; } /* namespace brw */