i965/fs: Make lower_load_payload etc. appear in INTEL_DEBUG=optimizer.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 16 Jan 2015 09:05:21 +0000 (01:05 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 16 Jan 2015 20:38:26 +0000 (12:38 -0800)
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 <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/dri/i965/brw_fs.cpp

index 5d129fe9220e6c94281c74c4eac4f528d5d22091..35639de0db7b80bf5f1b0a93351a86077b2a6c91 100644 (file)
@@ -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();