diff options
author | Kenneth Graunke <[email protected]> | 2015-01-16 01:05:21 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2015-01-16 12:38:26 -0800 |
commit | faaca237341abc0f784edfb16df50104110365b8 (patch) | |
tree | 8e2c928f082cd08fa113fbe15fee9baf8b6400b9 | |
parent | a4ab08bf451593dc45ebef80da66563b0ba5bbe5 (diff) |
i965/fs: Make lower_load_payload etc. appear in INTEL_DEBUG=optimizer.
In order to support calling lower_load_payload() inside a condition,
this patch makes OPT() a statement expression:
https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
We recently did the equivalent change in the vec4 backend (commit
9b8bd67768769b685c25e1276e053505aede5f93).
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Acked-by: Jason Ekstrand <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 5d129fe9220..35639de0db7 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -3543,7 +3543,7 @@ fs_visitor::optimize() assign_constant_locations(); demote_pull_constants(); -#define OPT(pass, args...) do { \ +#define OPT(pass, args...) ({ \ pass_num++; \ bool this_progress = pass(args); \ \ @@ -3556,7 +3556,8 @@ fs_visitor::optimize() } \ \ progress = progress || this_progress; \ - } while (false) + this_progress; \ + }) if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER)) { char filename[64]; @@ -3568,10 +3569,11 @@ fs_visitor::optimize() bool progress; int iteration = 0; + int pass_num = 0; do { progress = false; + pass_num = 0; iteration++; - int pass_num = 0; OPT(remove_duplicate_mrf_writes); @@ -3590,11 +3592,13 @@ fs_visitor::optimize() OPT(compact_virtual_grfs); } while (progress); - if (lower_load_payload()) { + pass_num = 0; + + if (OPT(lower_load_payload)) { split_virtual_grfs(); - register_coalesce(); - compute_to_mrf(); - dead_code_eliminate(); + OPT(register_coalesce); + OPT(compute_to_mrf); + OPT(dead_code_eliminate); } lower_uniform_pull_constant_loads(); |