Mesa (master): i965/cfg: Add functions to test if a block is a successor/ predecessor.
Matt Turner
mattst88 at kemper.freedesktop.org
Fri Aug 22 17:20:38 UTC 2014
Module: Mesa
Branch: master
Commit: b7d50beea43e0dade13f4a30bc2f261eaca8a5b5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7d50beea43e0dade13f4a30bc2f261eaca8a5b5
Author: Matt Turner <mattst88 at gmail.com>
Date: Wed Jul 16 12:14:41 2014 -0700
i965/cfg: Add functions to test if a block is a successor/predecessor.
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
src/mesa/drivers/dri/i965/brw_cfg.cpp | 24 ++++++++++++++++++++++++
src/mesa/drivers/dri/i965/brw_cfg.h | 2 ++
2 files changed, 26 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp
index d806b83..9cd8b9f 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.cpp
+++ b/src/mesa/drivers/dri/i965/brw_cfg.cpp
@@ -71,6 +71,30 @@ bblock_t::add_successor(void *mem_ctx, bblock_t *successor)
children.push_tail(::link(mem_ctx, successor));
}
+bool
+bblock_t::is_predecessor_of(const bblock_t *block) const
+{
+ foreach_list_typed_safe (bblock_link, parent, link, &block->parents) {
+ if (parent->block == this) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool
+bblock_t::is_successor_of(const bblock_t *block) const
+{
+ foreach_list_typed_safe (bblock_link, child, link, &block->children) {
+ if (child->block == this) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
void
bblock_t::dump(backend_visitor *v)
{
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.h b/src/mesa/drivers/dri/i965/brw_cfg.h
index 29e31e7..a688870 100644
--- a/src/mesa/drivers/dri/i965/brw_cfg.h
+++ b/src/mesa/drivers/dri/i965/brw_cfg.h
@@ -58,6 +58,8 @@ struct bblock_t {
bblock_t();
void add_successor(void *mem_ctx, bblock_t *successor);
+ bool is_predecessor_of(const bblock_t *block) const;
+ bool is_successor_of(const bblock_t *block) const;
void dump(backend_visitor *v);
#endif
More information about the mesa-commit
mailing list