Mesa (master): i965/fs: Don't make a name for a vector splitting temporary

Ian Romanick idr at kemper.freedesktop.org
Tue Sep 30 20:35:11 UTC 2014


Module: Mesa
Branch: master
Commit: 408aa46ca8586c9687dd237b8cd2fefed33ab6ad
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=408aa46ca8586c9687dd237b8cd2fefed33ab6ad

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri May 23 20:03:31 2014 -0700

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 <ian.d.romanick at intel.com>
Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 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 422d801..03e5fdb 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]);
       }
 




More information about the mesa-commit mailing list