[Mesa-dev] [PATCH 1/3] i965: Mark fields in the live interval classes protected.

Matt Turner mattst88 at gmail.com
Mon Jun 30 10:11:40 PDT 2014


cfg, for instance, is a pointer to a local variable in
calculate_live_intervals, certainly not valid after that function has
returned.
---
 src/mesa/drivers/dri/i965/brw_fs_live_variables.h  | 22 ++++++++++++----------
 .../drivers/dri/i965/brw_vec4_live_variables.h     | 13 +++++++------
 2 files changed, 19 insertions(+), 16 deletions(-)

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 82575d8..5a7dd27 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 b2d8b33..03cc813 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 */
-- 
1.8.3.2



More information about the mesa-dev mailing list