Mesa (glsl-to-tgsi): glsl_to_tgsi: always run copy_propagate() and eliminate_dead_code_advanced()

Bryan Cain bryanc at kemper.freedesktop.org
Mon Jun 27 22:41:43 UTC 2011


Module: Mesa
Branch: glsl-to-tgsi
Commit: 49f4336ab96df0c907f1ff86a35aaba40ed451d9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=49f4336ab96df0c907f1ff86a35aaba40ed451d9

Author: Bryan Cain <bryancain3 at gmail.com>
Date:   Mon Jun 27 17:40:10 2011 -0500

glsl_to_tgsi: always run copy_propagate() and eliminate_dead_code_advanced()

These two passes are written to handle indirect addressing properly.

---

 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index f87c64f..e7d0af8 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -4422,18 +4422,17 @@ get_mesa_program(struct gl_context *ctx,
    if (target == GL_VERTEX_PROGRAM_ARB)
       v->remove_output_reads(PROGRAM_VARYING);
    
-   /* Perform the simplify_cmp optimization, which is required by r300g. */
+   /* Perform optimizations on the instructions in the glsl_to_tgsi_visitor. */
    v->simplify_cmp();
+   v->copy_propagate();
+   while (v->eliminate_dead_code_advanced());
 
-   /* Perform optimizations on the instructions in the glsl_to_tgsi_visitor.
-    * FIXME: These passes to optimize temporary registers don't work when there
+   /* FIXME: These passes to optimize temporary registers don't work when there
     * is indirect addressing of the temporary register space.  We need proper 
     * array support so that we don't have to give up these passes in every 
     * shader that uses arrays.
     */
    if (!v->indirect_addr_temps) {
-      v->copy_propagate();
-      while (v->eliminate_dead_code_advanced());
       v->eliminate_dead_code();
       v->merge_registers();
       v->renumber_registers();




More information about the mesa-commit mailing list