intel/compiler: call ordered_unit() only once at update_inst_scoreboard()
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Fri, 8 Apr 2022 22:48:05 +0000 (15:48 -0700)
committerMarge Bot <emma+marge@anholt.net>
Thu, 2 Jun 2022 23:04:39 +0000 (23:04 +0000)
Call it once instead of calling the very same function for each source
and destination. This should make those ternary operators a little
easier to read, IMHO.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15835>

src/intel/compiler/brw_fs_scoreboard.cpp

index bb41fac..0f74234 100644 (file)
@@ -998,6 +998,7 @@ namespace {
       const tgl_pipe p = inferred_exec_pipe(devinfo, inst);
       const ordered_address jp = p ? ordered_address(p, jps[ip].jp[IDX(p)]) :
                                      ordered_address();
+      const bool is_ordered = ordered_unit(devinfo, inst, IDX(TGL_PIPE_ALL));
 
       /* Track any source registers that may be fetched asynchronously by this
        * instruction, otherwise clear the dependency in order to avoid
@@ -1007,8 +1008,7 @@ namespace {
          const dependency rd_dep =
             (inst->is_payload(i) ||
              inst->is_math()) ? dependency(TGL_SBID_SRC, ip, exec_all) :
-            ordered_unit(devinfo, inst, IDX(TGL_PIPE_ALL)) ?
-               dependency(TGL_REGDIST_SRC, jp, exec_all) :
+            is_ordered ? dependency(TGL_REGDIST_SRC, jp, exec_all) :
             dependency::done;
 
          for (unsigned j = 0; j < regs_read(inst, i); j++) {
@@ -1030,8 +1030,7 @@ namespace {
       /* Track any destination registers of this instruction. */
       const dependency wr_dep =
          is_unordered(inst) ? dependency(TGL_SBID_DST, ip, exec_all) :
-         ordered_unit(devinfo, inst, IDX(TGL_PIPE_ALL)) ?
-            dependency(TGL_REGDIST_DST, jp, exec_all) :
+         is_ordered ? dependency(TGL_REGDIST_DST, jp, exec_all) :
          dependency();
 
       if (inst->writes_accumulator_implicitly(devinfo))