diff options
author | Matt Turner <mattst88@gmail.com> | 2014-02-18 16:35:56 -0800 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2015-02-17 20:44:09 -0800 |
commit | 0e3dbc0248340bebd1a3012f18db5383ec90b077 (patch) | |
tree | 55988522a7588fc5c2882afe5a60c2a2e5f77ff3 /src/mesa/drivers/dri/i965/brw_cfg.h | |
parent | 08f304bb3bfd4cc93bcc9108063afb7a8b2dd806 (diff) | |
download | external_mesa3d-0e3dbc0248340bebd1a3012f18db5383ec90b077.tar.gz external_mesa3d-0e3dbc0248340bebd1a3012f18db5383ec90b077.tar.bz2 external_mesa3d-0e3dbc0248340bebd1a3012f18db5383ec90b077.zip |
i965/cfg: Calculate the immediate dominators.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_cfg.h')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_cfg.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.h b/src/mesa/drivers/dri/i965/brw_cfg.h index 0b60fec982..215f2487e4 100644 --- a/src/mesa/drivers/dri/i965/brw_cfg.h +++ b/src/mesa/drivers/dri/i965/brw_cfg.h @@ -81,6 +81,7 @@ struct bblock_t { struct exec_node link; struct cfg_t *cfg; + struct bblock_t *idom; int start_ip; int end_ip; @@ -269,8 +270,10 @@ struct cfg_t { bblock_t *new_block(); void set_next_block(bblock_t **cur, bblock_t *block, int ip); void make_block_array(); + void calculate_idom(); + static bblock_t *intersect(bblock_t *b1, bblock_t *b2); - void dump(backend_visitor *v) const; + void dump(backend_visitor *v); #endif void *mem_ctx; @@ -278,6 +281,8 @@ struct cfg_t { struct exec_list block_list; struct bblock_t **blocks; int num_blocks; + + bool idom_dirty; }; /* Note that this is implemented with a double for loop -- break will |