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 <ian.d.romanick@intel.com>
This commit is contained in:
Matt Turner 2014-06-28 19:52:04 -07:00
parent 021094481c
commit ec1b2d6aa0
2 changed files with 19 additions and 16 deletions

View File

@ -60,19 +60,9 @@ public:
fs_live_variables(fs_visitor *v, cfg_t *cfg); fs_live_variables(fs_visitor *v, cfg_t *cfg);
~fs_live_variables(); ~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); bool vars_interfere(int a, int b);
int var_from_reg(fs_reg *reg); 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. */ /** Map from virtual GRF number to index in block_data arrays. */
int *var_from_vgrf; int *var_from_vgrf;
@ -98,6 +88,18 @@ public:
/** Per-basic-block information on live variables */ /** Per-basic-block information on live variables */
struct block_data *bd; 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 */ } /* namespace brw */

View File

@ -58,18 +58,19 @@ public:
vec4_live_variables(vec4_visitor *v, cfg_t *cfg); vec4_live_variables(vec4_visitor *v, cfg_t *cfg);
~vec4_live_variables(); ~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 setup_def_use();
void compute_live_variables(); void compute_live_variables();
vec4_visitor *v; vec4_visitor *v;
cfg_t *cfg; cfg_t *cfg;
void *mem_ctx; void *mem_ctx;
int num_vars;
int bitset_words;
/** Per-basic-block information on live variables */
struct block_data *bd;
}; };
} /* namespace brw */ } /* namespace brw */