summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2014-03-26 15:58:12 -0700
committerMatt Turner <mattst88@gmail.com>2014-04-05 09:44:54 -0700
commit63d57f3b086db1e403df5d8f61a368df5e2f5afc (patch)
tree852607e608ed6e771f657f30a972e879ecf226b4
parent26012c16737a8542316062ef17fa9a0b34e274b7 (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.
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp14
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_cse.cpp6
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();