intel/ir: Add helper function to push block onto CFG analysis stack.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 27 Sep 2019 21:49:14 +0000 (14:49 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Fri, 11 Oct 2019 19:24:16 +0000 (12:24 -0700)
Requested-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/intel/compiler/brw_cfg.cpp

index 0d6c6fc5f5b145b4ab59bca3f92a55c16faf1bbb..d5e8913e058084ffd1b74ddbadb1642a89c706ec 100644 (file)
@@ -50,6 +50,15 @@ link(void *mem_ctx, bblock_t *block, enum bblock_link_kind kind)
    return &l->link;
 }
 
+void
+push_stack(exec_list *list, void *mem_ctx, bblock_t *block)
+{
+   /* The kind of the link is immaterial, but we need to provide one since
+    * this is (ab)using the edge data structure in order to implement a stack.
+    */
+   list->push_tail(link(mem_ctx, block, bblock_link_logical));
+}
+
 bblock_t::bblock_t(cfg_t *cfg) :
    cfg(cfg), idom(NULL), start_ip(0), end_ip(0), num(0), cycle_count(0)
 {
@@ -188,8 +197,8 @@ cfg_t::cfg_t(exec_list *instructions)
         /* Push our information onto a stack so we can recover from
          * nested ifs.
          */
-         if_stack.push_tail(link(mem_ctx, cur_if, bblock_link_logical));
-         else_stack.push_tail(link(mem_ctx, cur_else, bblock_link_logical));
+         push_stack(&if_stack, mem_ctx, cur_if);
+         push_stack(&else_stack, mem_ctx, cur_else);
 
         cur_if = cur;
         cur_else = NULL;
@@ -249,8 +258,8 @@ cfg_t::cfg_t(exec_list *instructions)
         /* Push our information onto a stack so we can recover from
          * nested loops.
          */
-         do_stack.push_tail(link(mem_ctx, cur_do, bblock_link_logical));
-         while_stack.push_tail(link(mem_ctx, cur_while, bblock_link_logical));
+         push_stack(&do_stack, mem_ctx, cur_do);
+         push_stack(&while_stack, mem_ctx, cur_while);
 
         /* Set up the block just after the while.  Don't know when exactly
          * it will start, yet.