intel/compiler: Nest definition of live variables block_data structures
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 10 Mar 2016 00:56:29 +0000 (16:56 -0800)
committerMatt Turner <mattst88@gmail.com>
Fri, 6 Mar 2020 18:20:23 +0000 (10:20 -0800)
When this commit was originally written, these two structures had the
exact same name. Subsequently in commit 12a8f2616a2f (intel/compiler:
Fix C++ one definition rule violations) they were renamed.

Original commit message:

> These two structures have exactly the same name which prevents the two
> files from being included at the same time and could cause serious
> trouble in the future if it ever leads to a (silent) violation of the
> C++ one definition rule.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4012>

src/intel/compiler/brw_fs_live_variables.cpp
src/intel/compiler/brw_fs_live_variables.h
src/intel/compiler/brw_vec4_live_variables.cpp
src/intel/compiler/brw_vec4_live_variables.h

index 1dd00770706d73900f380ee017029356e6813174..1e3e83a791864bb7a2f301a9759a21bfe7575c7d 100644 (file)
@@ -53,7 +53,7 @@ using namespace brw;
  */
 
 void
-fs_live_variables::setup_one_read(struct fs_block_data *bd, fs_inst *inst,
+fs_live_variables::setup_one_read(struct block_data *bd, fs_inst *inst,
                                   int ip, const fs_reg &reg)
 {
    int var = var_from_reg(reg);
@@ -71,7 +71,7 @@ fs_live_variables::setup_one_read(struct fs_block_data *bd, fs_inst *inst,
 }
 
 void
-fs_live_variables::setup_one_write(struct fs_block_data *bd, fs_inst *inst,
+fs_live_variables::setup_one_write(struct block_data *bd, fs_inst *inst,
                                    int ip, const fs_reg &reg)
 {
    int var = var_from_reg(reg);
@@ -110,7 +110,7 @@ fs_live_variables::setup_def_use()
       if (block->num > 0)
         assert(cfg->blocks[block->num - 1]->end_ip == ip - 1);
 
-      struct fs_block_data *bd = &block_data[block->num];
+      struct block_data *bd = &block_data[block->num];
 
       foreach_inst_in_block(fs_inst, inst, block) {
         /* Set use[] for this instruction */
@@ -160,11 +160,11 @@ fs_live_variables::compute_live_variables()
       cont = false;
 
       foreach_block_reverse (block, cfg) {
-         struct fs_block_data *bd = &block_data[block->num];
+         struct block_data *bd = &block_data[block->num];
 
         /* Update liveout */
         foreach_list_typed(bblock_link, child_link, link, &block->children) {
-       struct fs_block_data *child_bd = &block_data[child_link->block->num];
+       struct block_data *child_bd = &block_data[child_link->block->num];
 
            for (int i = 0; i < bitset_words; i++) {
                BITSET_WORD new_liveout = (child_bd->livein[i] &
@@ -209,10 +209,10 @@ fs_live_variables::compute_live_variables()
       cont = false;
 
       foreach_block (block, cfg) {
-         const struct fs_block_data *bd = &block_data[block->num];
+         const struct block_data *bd = &block_data[block->num];
 
         foreach_list_typed(bblock_link, child_link, link, &block->children) {
-       struct fs_block_data *child_bd = &block_data[child_link->block->num];
+       struct block_data *child_bd = &block_data[child_link->block->num];
 
            for (int i = 0; i < bitset_words; i++) {
                const BITSET_WORD new_def = bd->defout[i] & ~child_bd->defin[i];
@@ -233,7 +233,7 @@ void
 fs_live_variables::compute_start_end()
 {
    foreach_block (block, cfg) {
-      struct fs_block_data *bd = &block_data[block->num];
+      struct block_data *bd = &block_data[block->num];
 
       for (int w = 0; w < bitset_words; w++) {
          BITSET_WORD livedefin = bd->livein[w] & bd->defin[w];
@@ -282,7 +282,7 @@ fs_live_variables::fs_live_variables(fs_visitor *v, const cfg_t *cfg)
       end[i] = -1;
    }
 
-   block_data = rzalloc_array(mem_ctx, struct fs_block_data, cfg->num_blocks);
+   block_data = rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
 
    bitset_words = BITSET_WORDS(num_vars);
    for (int i = 0; i < cfg->num_blocks; i++) {
index 69d06922dd97f3dab57049cfbff160bbbe6f8d8e..d37901d6f8a0adb1e6b9941701daece0e2753df1 100644 (file)
@@ -35,46 +35,46 @@ struct cfg_t;
 
 namespace brw {
 
-struct fs_block_data {
-   /**
-    * Which variables are defined before being used in the block.
-    *
-    * Note that for our purposes, "defined" means unconditionally, completely
-    * defined.
-    */
-   BITSET_WORD *def;
-
-   /**
-    * Which variables are used before being defined in the block.
-    */
-   BITSET_WORD *use;
-
-   /** Which defs reach the entry point of the block. */
-   BITSET_WORD *livein;
-
-   /** Which defs reach the exit point of the block. */
-   BITSET_WORD *liveout;
-
-   /**
-    * Variables such that the entry point of the block may be reached from any
-    * of their definitions.
-    */
-   BITSET_WORD *defin;
-
-   /**
-    * Variables such that the exit point of the block may be reached from any
-    * of their definitions.
-    */
-   BITSET_WORD *defout;
-
-   BITSET_WORD flag_def[1];
-   BITSET_WORD flag_use[1];
-   BITSET_WORD flag_livein[1];
-   BITSET_WORD flag_liveout[1];
-};
-
 class fs_live_variables {
 public:
+   struct block_data {
+      /**
+       * Which variables are defined before being used in the block.
+       *
+       * Note that for our purposes, "defined" means unconditionally, completely
+       * defined.
+       */
+      BITSET_WORD *def;
+
+      /**
+       * Which variables are used before being defined in the block.
+       */
+      BITSET_WORD *use;
+
+      /** Which defs reach the entry point of the block. */
+      BITSET_WORD *livein;
+
+      /** Which defs reach the exit point of the block. */
+      BITSET_WORD *liveout;
+
+      /**
+       * Variables such that the entry point of the block may be reached from any
+       * of their definitions.
+       */
+      BITSET_WORD *defin;
+
+      /**
+       * Variables such that the exit point of the block may be reached from any
+       * of their definitions.
+       */
+      BITSET_WORD *defout;
+
+      BITSET_WORD flag_def[1];
+      BITSET_WORD flag_use[1];
+      BITSET_WORD flag_livein[1];
+      BITSET_WORD flag_liveout[1];
+   };
+
    DECLARE_RALLOC_CXX_OPERATORS(fs_live_variables)
 
    fs_live_variables(fs_visitor *v, const cfg_t *cfg);
@@ -110,13 +110,13 @@ public:
    /** @} */
 
    /** Per-basic-block information on live variables */
-   struct fs_block_data *block_data;
+   struct block_data *block_data;
 
 protected:
    void setup_def_use();
-   void setup_one_read(struct fs_block_data *bd, fs_inst *inst, int ip,
+   void setup_one_read(struct block_data *bd, fs_inst *inst, int ip,
                        const fs_reg &reg);
-   void setup_one_write(struct fs_block_data *bd, fs_inst *inst, int ip,
+   void setup_one_write(struct block_data *bd, fs_inst *inst, int ip,
                         const fs_reg &reg);
    void compute_live_variables();
    void compute_start_end();
index 6c38e8dcae32aa09d4044fe201345bea585b11ef..5e3ab6c29e7b03d7f15e970de69ea7d47c4ae7c7 100644 (file)
@@ -71,7 +71,7 @@ vec4_live_variables::setup_def_use()
         assert(cfg->blocks[block->num - 1]->end_ip == ip - 1);
 
       foreach_inst_in_block(vec4_instruction, inst, block) {
-         struct vec4_block_data *bd = &block_data[block->num];
+         struct block_data *bd = &block_data[block->num];
 
         /* Set use[] for this instruction */
         for (unsigned int i = 0; i < 3; i++) {
@@ -137,11 +137,11 @@ vec4_live_variables::compute_live_variables()
       cont = false;
 
       foreach_block_reverse (block, cfg) {
-         struct vec4_block_data *bd = &block_data[block->num];
+         struct block_data *bd = &block_data[block->num];
 
         /* Update liveout */
         foreach_list_typed(bblock_link, child_link, link, &block->children) {
-       struct vec4_block_data *child_bd = &block_data[child_link->block->num];
+       struct block_data *child_bd = &block_data[child_link->block->num];
 
            for (int i = 0; i < bitset_words; i++) {
                BITSET_WORD new_liveout = (child_bd->livein[i] &
@@ -187,7 +187,7 @@ vec4_live_variables::vec4_live_variables(const simple_allocator &alloc,
    mem_ctx = ralloc_context(NULL);
 
    num_vars = alloc.total_size * 8;
-   block_data = rzalloc_array(mem_ctx, struct vec4_block_data, cfg->num_blocks);
+   block_data = rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
 
    bitset_words = BITSET_WORDS(num_vars);
    for (int i = 0; i < cfg->num_blocks; i++) {
@@ -288,7 +288,8 @@ vec4_visitor::calculate_live_intervals()
    this->live_intervals = new(mem_ctx) vec4_live_variables(alloc, cfg);
 
    foreach_block (block, cfg) {
-      struct vec4_block_data *bd = &live_intervals->block_data[block->num];
+      const struct vec4_live_variables::block_data *bd =
+         &live_intervals->block_data[block->num];
 
       for (int i = 0; i < live_intervals->num_vars; i++) {
          if (BITSET_TEST(bd->livein, i)) {
index e2763e9d43b817437af938341586314724653d6f..a86f4f48dffc6723d8b88958671455b38506828c 100644 (file)
 
 namespace brw {
 
-struct vec4_block_data {
-   /**
-    * Which variables are defined before being used in the block.
-    *
-    * Note that for our purposes, "defined" means unconditionally, completely
-    * defined.
-    */
-   BITSET_WORD *def;
-
-   /**
-    * Which variables are used before being defined in the block.
-    */
-   BITSET_WORD *use;
-
-   /** Which defs reach the entry point of the block. */
-   BITSET_WORD *livein;
-
-   /** Which defs reach the exit point of the block. */
-   BITSET_WORD *liveout;
-
-   BITSET_WORD flag_def[1];
-   BITSET_WORD flag_use[1];
-   BITSET_WORD flag_livein[1];
-   BITSET_WORD flag_liveout[1];
-};
-
 class vec4_live_variables {
 public:
+   struct block_data {
+      /**
+       * Which variables are defined before being used in the block.
+       *
+       * Note that for our purposes, "defined" means unconditionally, completely
+       * defined.
+       */
+      BITSET_WORD *def;
+
+      /**
+       * Which variables are used before being defined in the block.
+       */
+      BITSET_WORD *use;
+
+      /** Which defs reach the entry point of the block. */
+      BITSET_WORD *livein;
+
+      /** Which defs reach the exit point of the block. */
+      BITSET_WORD *liveout;
+
+      BITSET_WORD flag_def[1];
+      BITSET_WORD flag_use[1];
+      BITSET_WORD flag_livein[1];
+      BITSET_WORD flag_liveout[1];
+   };
+
    DECLARE_RALLOC_CXX_OPERATORS(vec4_live_variables)
 
    vec4_live_variables(const simple_allocator &alloc, cfg_t *cfg);
@@ -70,7 +70,7 @@ public:
    int bitset_words;
 
    /** Per-basic-block information on live variables */
-   struct vec4_block_data *block_data;
+   struct block_data *block_data;
 
 protected:
    void setup_def_use();