Commit 9b8bd677 authored by Kenneth Graunke's avatar Kenneth Graunke
Browse files

i965: Show opt_vector_float() and later passes in INTEL_DEBUG=optimizer.

In order to support calling opt_vector_float() inside a condition, this
patch makes OPT() a statement expression:

https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html



We've used that elsewhere already.
Signed-off-by: default avatarKenneth Graunke <kenneth@whitecape.org>
Reviewed-by: default avatarMatt Turner <mattst88@gmail.com>
parent 61711316
...@@ -1758,7 +1758,7 @@ vec4_visitor::run() ...@@ -1758,7 +1758,7 @@ vec4_visitor::run()
const char *stage_name = stage == MESA_SHADER_GEOMETRY ? "gs" : "vs"; const char *stage_name = stage == MESA_SHADER_GEOMETRY ? "gs" : "vs";
#define OPT(pass, args...) do { \ #define OPT(pass, args...) ({ \
pass_num++; \ pass_num++; \
bool this_progress = pass(args); \ bool this_progress = pass(args); \
\ \
...@@ -1771,7 +1771,8 @@ vec4_visitor::run() ...@@ -1771,7 +1771,8 @@ vec4_visitor::run()
} \ } \
\ \
progress = progress || this_progress; \ progress = progress || this_progress; \
} while (false) this_progress; \
})
if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER)) { if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER)) {
...@@ -1784,10 +1785,11 @@ vec4_visitor::run() ...@@ -1784,10 +1785,11 @@ vec4_visitor::run()
bool progress; bool progress;
int iteration = 0; int iteration = 0;
int pass_num = 0;
do { do {
progress = false; progress = false;
pass_num = 0;
iteration++; iteration++;
int pass_num = 0;
OPT(opt_reduce_swizzle); OPT(opt_reduce_swizzle);
OPT(dead_code_eliminate); OPT(dead_code_eliminate);
...@@ -1798,11 +1800,13 @@ vec4_visitor::run() ...@@ -1798,11 +1800,13 @@ vec4_visitor::run()
OPT(opt_register_coalesce); OPT(opt_register_coalesce);
} while (progress); } while (progress);
if (opt_vector_float()) { pass_num = 0;
opt_cse();
opt_copy_propagation(false); if (OPT(opt_vector_float)) {
opt_copy_propagation(true); OPT(opt_cse);
dead_code_eliminate(); OPT(opt_copy_propagation, false);
OPT(opt_copy_propagation, true);
OPT(dead_code_eliminate);
} }
if (failed) if (failed)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment