summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_cfg.h
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2014-02-18 16:35:56 -0800
committerMatt Turner <mattst88@gmail.com>2015-02-17 20:44:09 -0800
commit0e3dbc0248340bebd1a3012f18db5383ec90b077 (patch)
tree55988522a7588fc5c2882afe5a60c2a2e5f77ff3 /src/mesa/drivers/dri/i965/brw_cfg.h
parent08f304bb3bfd4cc93bcc9108063afb7a8b2dd806 (diff)
downloadexternal_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.h7
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