summaryrefslogtreecommitdiff
path: root/ir_constant_expression.cpp
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-06-24 15:18:39 -0700
committerEric Anholt <eric@anholt.net>2010-06-24 15:18:39 -0700
commit6b01b50888d22ee330df44240591051cb55cf2a9 (patch)
tree51bdeade4b0f6e086a1cd43f692fb1d4ba7c3b6f /ir_constant_expression.cpp
parente33c10328caec29616a5433b1d1df9088f3a84df (diff)
Move the talloc_parent lookup down in a few hot paths.
talloc_parent is still 80% of our runtime, but likely talloc_parent lookups will be reduced as we improve the handling of memory ownership.
Diffstat (limited to 'ir_constant_expression.cpp')
-rw-r--r--ir_constant_expression.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/ir_constant_expression.cpp b/ir_constant_expression.cpp
index 4010e46267..3408f5256a 100644
--- a/ir_constant_expression.cpp
+++ b/ir_constant_expression.cpp
@@ -127,7 +127,6 @@ ir_constant_visitor::visit(ir_function *ir)
void
ir_constant_visitor::visit(ir_expression *ir)
{
- void *ctx = talloc_parent(ir);
value = NULL;
ir_constant *op[2];
unsigned int operand, c;
@@ -498,6 +497,7 @@ ir_constant_visitor::visit(ir_expression *ir)
return;
}
+ void *ctx = talloc_parent(ir);
this->value = new(ctx) ir_constant(ir->type, &data);
}
@@ -514,7 +514,6 @@ ir_constant_visitor::visit(ir_texture *ir)
void
ir_constant_visitor::visit(ir_swizzle *ir)
{
- void *ctx = talloc_parent(ir);
ir_constant *v = ir->val->constant_expression_value();
this->value = NULL;
@@ -536,6 +535,7 @@ ir_constant_visitor::visit(ir_swizzle *ir)
}
}
+ void *ctx = talloc_parent(ir);
this->value = new(ctx) ir_constant(ir->type, &data);
}
}