From 408aa46ca8586c9687dd237b8cd2fefed33ab6ad Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 23 May 2014 20:03:31 -0700 Subject: [PATCH] i965/fs: Don't make a name for a vector splitting temporary If the name is just going to get dropped, don't bother making it. If the name is made, release it sooner (rather than later). No change Valgrind massif results for a trimmed apitrace of dota2. Signed-off-by: Ian Romanick Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp index 422d801b568..03e5fdbef2c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp @@ -363,12 +363,17 @@ brw_do_vector_splitting(exec_list *instructions) entry->mem_ctx = ralloc_parent(entry->var); for (unsigned int i = 0; i < entry->var->type->vector_elements; i++) { - const char *name = ralloc_asprintf(mem_ctx, "%s_%c", - entry->var->name, - "xyzw"[i]); + char *const name = ir_variable::temporaries_allocate_names + ? ralloc_asprintf(mem_ctx, "%s_%c", + entry->var->name, + "xyzw"[i]) + : NULL; entry->components[i] = new(entry->mem_ctx) ir_variable(type, name, ir_var_temporary); + + ralloc_free(name); + entry->var->insert_before(entry->components[i]); } -- 2.30.2