diff options
author | Matt Turner <[email protected]> | 2014-06-25 10:32:38 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2014-07-01 08:55:51 -0700 |
commit | 22cd9173295e2212e355db514bfc52138d03079d (patch) | |
tree | f82f6d94609d7573b5101e5055a8247d1a8ce5fd /src | |
parent | d49173a97b2756c3bc12411b26f98c5b22d94e22 (diff) |
mesa: Add and use foreach_in_list_use_after.
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/glsl/list.h | 5 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_cse.cpp | 5 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 6 |
3 files changed, 7 insertions, 9 deletions
diff --git a/src/glsl/list.h b/src/glsl/list.h index a4c64082122..77e3aaf26e4 100644 --- a/src/glsl/list.h +++ b/src/glsl/list.h @@ -592,6 +592,11 @@ inline void exec_node::insert_before(exec_list *before) __next != NULL; \ __node = __next, __next = (__type *)__next->next) +#define foreach_in_list_use_after(__type, __inst, __list) \ + __type *(__inst); \ + for ((__inst) = (__type *)(__list)->head; \ + !(__inst)->is_tail_sentinel(); \ + (__inst) = (__type *)(__inst)->next) /** * Iterate through two lists at once. Stops at the end of the shorter list. * diff --git a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp index 7828c27e806..26873b8427d 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp @@ -183,10 +183,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb) { bool found = false; - aeb_entry *entry; - foreach_list(entry_node, aeb) { - entry = (aeb_entry *) entry_node; - + foreach_in_list_use_after(aeb_entry, entry, aeb) { /* Match current instruction's expression against those in AEB. */ if (instructions_match(inst, entry->generator)) { found = true; diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 1f89ca57364..9e194313942 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -2660,11 +2660,7 @@ glsl_to_tgsi_visitor::visit(ir_constant *ir) function_entry * glsl_to_tgsi_visitor::get_function_signature(ir_function_signature *sig) { - function_entry *entry; - - foreach_list(node, &this->function_signatures) { - entry = (function_entry *) node; - + foreach_in_list_use_after(function_entry, entry, &this->function_signatures) { if (entry->sig == sig) return entry; } |