summaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-10-07 20:57:04 +0200
committerMarek Olšák <[email protected]>2016-10-31 11:53:38 +0100
commit565b2c4c4bc87557922f298350b14305e9b77fc4 (patch)
tree6867a0052c80d1077c35909801c97da08f96f1d9 /src/compiler
parentb6f50e4640c5e4ab27d50422269b54eb6efa955a (diff)
glsl: use the linear allocator in opt_copy_propagation
Tested-by: Edmondo Tommasina <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/glsl/opt_copy_propagation.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/compiler/glsl/opt_copy_propagation.cpp b/src/compiler/glsl/opt_copy_propagation.cpp
index 02628cd7e52..247c4988ed3 100644
--- a/src/compiler/glsl/opt_copy_propagation.cpp
+++ b/src/compiler/glsl/opt_copy_propagation.cpp
@@ -44,6 +44,9 @@ namespace {
class kill_entry : public exec_node
{
public:
+ /* override operator new from exec_node */
+ DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(kill_entry)
+
kill_entry(ir_variable *var)
{
assert(var);
@@ -59,6 +62,7 @@ public:
{
progress = false;
mem_ctx = ralloc_context(0);
+ lin_ctx = linear_alloc_parent(mem_ctx, 0);
acp = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
_mesa_key_pointer_equal);
this->kills = new(mem_ctx) exec_list;
@@ -95,6 +99,7 @@ public:
bool killed_all;
void *mem_ctx;
+ void *lin_ctx;
};
} /* unnamed namespace */
@@ -313,7 +318,7 @@ ir_copy_propagation_visitor::kill(ir_variable *var)
/* Add the LHS variable to the list of killed variables in this block.
*/
- this->kills->push_tail(new(this->kills) kill_entry(var));
+ this->kills->push_tail(new(this->lin_ctx) kill_entry(var));
}
/**