summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2015-01-16 01:05:21 -0800
committerKenneth Graunke <[email protected]>2015-01-16 12:38:26 -0800
commitfaaca237341abc0f784edfb16df50104110365b8 (patch)
tree8e2c928f082cd08fa113fbe15fee9baf8b6400b9
parenta4ab08bf451593dc45ebef80da66563b0ba5bbe5 (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.cpp18
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();