summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/ir_clone.cpp
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2017-09-07 19:23:51 -0700
committerIan Romanick <[email protected]>2017-09-19 12:02:43 -0500
commit9ac8fece63a9e980971b0cc894c60a9d8db4037d (patch)
tree6c4c0a85722e769c3711f1c217abe339d8581d6d /src/compiler/glsl/ir_clone.cpp
parent0e88153e998b5ba97dee2b143915ba2509217281 (diff)
glsl: Unify ir_constant::const_elements and ::components
There was no reason to treat array types and record types differently. Unifying them saves a bunch of code and saves a few bytes in every ir_constant. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Alejandro PiƱeiro <[email protected]> Reviewed-by: Elie Tournier <[email protected]>
Diffstat (limited to 'src/compiler/glsl/ir_clone.cpp')
-rw-r--r--src/compiler/glsl/ir_clone.cpp16
1 files changed, 1 insertions, 15 deletions
diff --git a/src/compiler/glsl/ir_clone.cpp b/src/compiler/glsl/ir_clone.cpp
index 114367c8555..12135070892 100644
--- a/src/compiler/glsl/ir_clone.cpp
+++ b/src/compiler/glsl/ir_clone.cpp
@@ -345,21 +345,7 @@ ir_constant::clone(void *mem_ctx, struct hash_table *ht) const
case GLSL_TYPE_IMAGE:
return new(mem_ctx) ir_constant(this->type, &this->value);
- case GLSL_TYPE_STRUCT: {
- ir_constant *c = new(mem_ctx) ir_constant;
-
- c->type = this->type;
- for (const exec_node *node = this->components.get_head_raw()
- ; !node->is_tail_sentinel()
- ; node = node->next) {
- ir_constant *const orig = (ir_constant *) node;
-
- c->components.push_tail(orig->clone(mem_ctx, NULL));
- }
-
- return c;
- }
-
+ case GLSL_TYPE_STRUCT:
case GLSL_TYPE_ARRAY: {
ir_constant *c = new(mem_ctx) ir_constant;