diff options
author | Matt Turner <[email protected]> | 2014-03-26 15:58:12 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2014-04-05 09:44:54 -0700 |
commit | 63d57f3b086db1e403df5d8f61a368df5e2f5afc (patch) | |
tree | 852607e608ed6e771f657f30a972e879ecf226b4 /src/mesa/drivers | |
parent | 26012c16737a8542316062ef17fa9a0b34e274b7 (diff) |
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.
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 14 | ||||
-rw-r--r-- | 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 2816d3c14ee..a148c5473b7 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 d8a54346a0b..ea610bd554c 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(); |