[Mesa-dev] [PATCH 3/3] exec_list: make various places use the new get_size() method
Ian Romanick
idr at freedesktop.org
Wed Jul 9 15:57:32 PDT 2014
Wow. It's surprising how many places that shows up!
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
On 07/08/2014 12:21 PM, Connor Abbott wrote:
> Instead of hand-rolling it.
>
> Signed-off-by: Connor Abbott <connor.abbott at intel.com>
> ---
> src/glsl/ast_to_hir.cpp | 4 +---
> src/glsl/ir_reader.cpp | 7 +++----
> src/glsl/opt_function_inlining.cpp | 7 ++-----
> src/mesa/drivers/dri/i965/brw_fs.cpp | 5 +----
> src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 4 +---
> src/mesa/program/ir_to_mesa.cpp | 5 +----
> 6 files changed, 9 insertions(+), 23 deletions(-)
>
> diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
> index 885bee5..a2ab26b 100644
> --- a/src/glsl/ast_to_hir.cpp
> +++ b/src/glsl/ast_to_hir.cpp
> @@ -5007,9 +5007,7 @@ ast_process_structure_or_interface_block(exec_list *instructions,
> * 'declarations' list in each of the elements.
> */
> foreach_list_typed (ast_declarator_list, decl_list, link, declarations) {
> - foreach_list_typed (ast_declaration, decl, link, &decl_list->declarations) {
> - decl_count++;
> - }
> + decl_count += decl_list->declarations.get_size();
> }
>
> /* Allocate storage for the fields and process the field
> diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp
> index 4017bdd..4f141de 100644
> --- a/src/glsl/ir_reader.cpp
> +++ b/src/glsl/ir_reader.cpp
> @@ -723,10 +723,9 @@ ir_reader::read_expression(s_expression *expr)
> ir_read_error(expr, "invalid operator: %s", s_op->value());
> return NULL;
> }
> -
> - int num_operands = -3; /* skip "expression" <type> <operation> */
> - foreach_in_list(s_expression, e, &((s_list *) expr)->subexpressions)
> - ++num_operands;
> +
> + /* skip "expression" <type> <operation> */
> + int num_operands = (int) ((s_list *) expr)->subexpressions.get_size() - 3;
>
> int expected_operands = ir_expression::get_num_operands(op);
> if (num_operands != expected_operands) {
> diff --git a/src/glsl/opt_function_inlining.cpp b/src/glsl/opt_function_inlining.cpp
> index b84bb8e..9626639 100644
> --- a/src/glsl/opt_function_inlining.cpp
> +++ b/src/glsl/opt_function_inlining.cpp
> @@ -100,16 +100,13 @@ ir_call::generate_inline(ir_instruction *next_ir)
> {
> void *ctx = ralloc_parent(this);
> ir_variable **parameters;
> - int num_parameters;
> + unsigned num_parameters;
> int i;
> struct hash_table *ht;
>
> ht = hash_table_ctor(0, hash_table_pointer_hash, hash_table_pointer_compare);
>
> - num_parameters = 0;
> - foreach_in_list(ir_rvalue, param, &this->callee->parameters)
> - num_parameters++;
> -
> + num_parameters = this->callee->parameters.get_size();
> parameters = new ir_variable *[num_parameters];
>
> /* Generate the declarations for the parameters to our inlined code,
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index a3ad375..6ab82b9 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -2957,10 +2957,7 @@ fs_visitor::calculate_register_pressure()
> invalidate_live_intervals();
> calculate_live_intervals();
>
> - int num_instructions = 0;
> - foreach_in_list(fs_inst, inst, &instructions) {
> - ++num_instructions;
> - }
> + unsigned num_instructions = instructions.get_size();
>
> regs_live_at_ip = rzalloc_array(mem_ctx, int, num_instructions);
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
> index 28e59c6..ce8dc36 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
> @@ -106,9 +106,7 @@ fs_copy_prop_dataflow::fs_copy_prop_dataflow(void *mem_ctx, cfg_t *cfg,
> num_acp = 0;
> for (int b = 0; b < cfg->num_blocks; b++) {
> for (int i = 0; i < ACP_HASH_SIZE; i++) {
> - foreach_in_list(acp_entry, entry, &out_acp[b][i]) {
> - num_acp++;
> - }
> + num_acp += out_acp[b][i].get_size();
> }
> }
>
> diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
> index 1109051..cc9c8ae 100644
> --- a/src/mesa/program/ir_to_mesa.cpp
> +++ b/src/mesa/program/ir_to_mesa.cpp
> @@ -2814,10 +2814,7 @@ get_mesa_program(struct gl_context *ctx,
>
> prog->NumTemporaries = v.next_temp;
>
> - int num_instructions = 0;
> - foreach_in_list(ir_instruction, node, &v.instructions) {
> - num_instructions++;
> - }
> + unsigned num_instructions = v.instructions.get_size();
>
> mesa_instructions =
> (struct prog_instruction *)calloc(num_instructions,
>
More information about the mesa-dev
mailing list