intel/compiler: Add cfg_t::adjust_block_ips() method
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 1 Jul 2021 17:24:01 +0000 (10:24 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 14 Jul 2021 16:56:59 +0000 (09:56 -0700)
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11632>

src/intel/compiler/brw_cfg.h

index 90af5a9..9e2726f 100644 (file)
@@ -324,6 +324,12 @@ struct cfg_t {
 
    void dump();
    void dump_cfg();
+
+   /**
+    * Propagate bblock_t::end_ip_delta data through the CFG.
+    */
+   inline void adjust_block_ips();
+
 #endif
    const struct backend_shader *s;
    void *mem_ctx;
@@ -437,6 +443,21 @@ cfg_t::last_block() const
         __scan_inst = (__type *)__scan_inst->prev)
 
 #ifdef __cplusplus
+inline void
+cfg_t::adjust_block_ips()
+{
+   int delta = 0;
+
+   foreach_block(block, this) {
+      block->start_ip += delta;
+      block->end_ip += delta;
+
+      delta += block->end_ip_delta;
+
+      block->end_ip_delta = 0;
+   }
+}
+
 namespace brw {
    /**
     * Immediate dominator tree analysis of a shader.