summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2014-03-26 15:58:12 -0700
committerMatt Turner <[email protected]>2014-04-05 09:44:54 -0700
commit63d57f3b086db1e403df5d8f61a368df5e2f5afc (patch)
tree852607e608ed6e771f657f30a972e879ecf226b4 /src/mesa
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.
Diffstat (limited to 'src/mesa')
-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();