Mesa (master): i965/fs: Name temporary ralloc contexts something other than mem_ctx.

Matt Turner mattst88 at kemper.freedesktop.org
Sat Apr 5 16:46:26 UTC 2014


Module: Mesa
Branch: master
Commit: 63d57f3b086db1e403df5d8f61a368df5e2f5afc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=63d57f3b086db1e403df5d8f61a368df5e2f5afc

Author: Matt Turner <mattst88 at gmail.com>
Date:   Wed Mar 26 15:58:12 2014 -0700

i965/fs: Name temporary ralloc contexts something other than mem_ctx.

Or else poor programmers might mistakenly use the temporary mem_ctx,
instead of the fs_visitor's mem_ctx and wonder why their code is
crashing.

Also remove the parenting. These contexts are local to the optimization
passes they're in and are freed at the end.

---

 src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp |   14 +++++++-------
 src/mesa/drivers/dri/i965/brw_fs_cse.cpp              |    6 +++---
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
index 2816d3c..a148c54 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
@@ -483,7 +483,7 @@ fs_visitor::try_constant_propagate(fs_inst *inst, acp_entry *entry)
  * list.
  */
 bool
-fs_visitor::opt_copy_propagate_local(void *mem_ctx, bblock_t *block,
+fs_visitor::opt_copy_propagate_local(void *copy_prop_ctx, bblock_t *block,
                                      exec_list *acp)
 {
    bool progress = false;
@@ -543,7 +543,7 @@ fs_visitor::opt_copy_propagate_local(void *mem_ctx, bblock_t *block,
 	  inst->src[0].type == inst->dst.type &&
 	  !inst->saturate &&
 	  !inst->is_partial_write()) {
-	 acp_entry *entry = ralloc(mem_ctx, acp_entry);
+	 acp_entry *entry = ralloc(copy_prop_ctx, acp_entry);
 	 entry->dst = inst->dst;
 	 entry->src = inst->src[0];
 	 acp[entry->dst.reg % ACP_HASH_SIZE].push_tail(entry);
@@ -557,7 +557,7 @@ bool
 fs_visitor::opt_copy_propagate()
 {
    bool progress = false;
-   void *mem_ctx = ralloc_context(this->mem_ctx);
+   void *copy_prop_ctx = ralloc_context(NULL);
    cfg_t cfg(&instructions);
    exec_list *out_acp[cfg.num_blocks];
    for (int i = 0; i < cfg.num_blocks; i++)
@@ -569,12 +569,12 @@ fs_visitor::opt_copy_propagate()
    for (int b = 0; b < cfg.num_blocks; b++) {
       bblock_t *block = cfg.blocks[b];
 
-      progress = opt_copy_propagate_local(mem_ctx, block,
+      progress = opt_copy_propagate_local(copy_prop_ctx, block,
                                           out_acp[b]) || progress;
    }
 
    /* Do dataflow analysis for those available copies. */
-   fs_copy_prop_dataflow dataflow(mem_ctx, &cfg, out_acp);
+   fs_copy_prop_dataflow dataflow(copy_prop_ctx, &cfg, out_acp);
 
    /* Next, re-run local copy propagation, this time with the set of copies
     * provided by the dataflow analysis available at the start of a block.
@@ -590,12 +590,12 @@ fs_visitor::opt_copy_propagate()
          }
       }
 
-      progress = opt_copy_propagate_local(mem_ctx, block, in_acp) || progress;
+      progress = opt_copy_propagate_local(copy_prop_ctx, block, in_acp) || progress;
    }
 
    for (int i = 0; i < cfg.num_blocks; i++)
       delete [] out_acp[i];
-   ralloc_free(mem_ctx);
+   ralloc_free(copy_prop_ctx);
 
    if (progress)
       invalidate_live_intervals();
diff --git a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
index d8a5434..ea610bd 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
@@ -121,7 +121,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
 {
    bool progress = false;
 
-   void *mem_ctx = ralloc_context(this->mem_ctx);
+   void *cse_ctx = ralloc_context(NULL);
 
    int ip = block->start_ip;
    for (fs_inst *inst = (fs_inst *)block->start;
@@ -148,7 +148,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
 
 	 if (!found) {
 	    /* Our first sighting of this expression.  Create an entry. */
-	    aeb_entry *entry = ralloc(mem_ctx, aeb_entry);
+	    aeb_entry *entry = ralloc(cse_ctx, aeb_entry);
 	    entry->tmp = reg_undef;
 	    entry->generator = inst;
 	    aeb->push_tail(entry);
@@ -254,7 +254,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
       ip++;
    }
 
-   ralloc_free(mem_ctx);
+   ralloc_free(cse_ctx);
 
    if (progress)
       invalidate_live_intervals();




More information about the mesa-commit mailing list