On Thu, 22 Sep 2016, Jakub Jelinek wrote:

> Hi!
> 
> I've noticed lots of vec_safe_length (CONSTRUCTOR_ELTS (...)) uses
> in the sources, which IMHO are less readable than the much more often
> used CONSTRUCTOR_NELTS (...) macro that does the same thing.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Ok.

Richard.

> 2016-09-22  Jakub Jelinek  <ja...@redhat.com>
> 
>       * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
>       instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
>       (gen_hsa_ctor_assignment): Likewise.
>       * print-tree.c (print_node): Likewise.
>       * tree-dump.c (dequeue_and_dump): Likewise.
>       * tree-sra.c (sra_modify_constructor_assign): Likewise.
>       * expr.c (store_constructor): Likewise.
>       * fold-const.c (operand_equal_p): Likewise.
>       * tree-pretty-print.c (dump_generic_node): Likewise.
>       * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
>       * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
> cp/
>       * typeck2.c (process_init_constructor_record): Use
>       CONSTRUCTOR_NELTS (...) instead of
>       vec_safe_length (CONSTRUCTOR_ELTS (...)).
>       * decl.c (reshape_init_r): Likewise.
>       (check_initializer): Likewise.
> ada/
>       * gcc-interface/decl.c (gnat_to_gnu_entity): Use
>       CONSTRUCTOR_NELTS (...) instead of
>       vec_safe_length (CONSTRUCTOR_ELTS (...)).
> 
> --- gcc/hsa-gen.c.jj  2016-09-16 22:19:42.000000000 +0200
> +++ gcc/hsa-gen.c     2016-09-22 17:51:23.078131950 +0200
> @@ -1100,8 +1100,7 @@ hsa_op_immed::hsa_op_immed (tree tree_va
>  
>    /* Verify that all elements of a constructor are constants.  */
>    if (TREE_CODE (m_tree_value) == CONSTRUCTOR)
> -    for (unsigned i = 0;
> -      i < vec_safe_length (CONSTRUCTOR_ELTS (m_tree_value)); i++)
> +    for (unsigned i = 0; i < CONSTRUCTOR_NELTS (m_tree_value); i++)
>        {
>       tree v = CONSTRUCTOR_ELT (m_tree_value, i)->value;
>       if (!CONSTANT_CLASS_P (v))
> @@ -2845,7 +2844,7 @@ void
>  gen_hsa_ctor_assignment (hsa_op_address *addr_lhs, tree rhs, hsa_bb *hbb,
>                        BrigAlignment8_t align)
>  {
> -  if (vec_safe_length (CONSTRUCTOR_ELTS (rhs)))
> +  if (CONSTRUCTOR_NELTS (rhs))
>      {
>        HSA_SORRY_AT (EXPR_LOCATION (rhs),
>                   "support for HSA does not implement load from constructor");
> --- gcc/print-tree.c.jj       2016-09-21 08:54:18.000000000 +0200
> +++ gcc/print-tree.c  2016-09-22 17:52:19.644409569 +0200
> @@ -841,7 +841,7 @@ print_node (FILE *file, const char *pref
>         {
>           unsigned HOST_WIDE_INT cnt;
>           tree index, value;
> -         len = vec_safe_length (CONSTRUCTOR_ELTS (node));
> +         len = CONSTRUCTOR_NELTS (node);
>           fprintf (file, " lngt %d", len);
>           FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (node),
>                                     cnt, index, value)
> --- gcc/tree-dump.c.jj        2016-01-04 14:55:53.000000000 +0100
> +++ gcc/tree-dump.c   2016-09-22 17:52:39.430156894 +0200
> @@ -646,7 +646,7 @@ dequeue_and_dump (dump_info_p di)
>        {
>       unsigned HOST_WIDE_INT cnt;
>       tree index, value;
> -     dump_int (di, "lngt", vec_safe_length (CONSTRUCTOR_ELTS (t)));
> +     dump_int (di, "lngt", CONSTRUCTOR_NELTS (t));
>       FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (t), cnt, index, value)
>         {
>           dump_child ("idx", index);
> --- gcc/tree-sra.c.jj 2016-09-16 22:19:42.000000000 +0200
> +++ gcc/tree-sra.c    2016-09-22 17:53:37.367417004 +0200
> @@ -3224,7 +3224,7 @@ sra_modify_constructor_assign (gimple *s
>       return SRA_AM_MODIFIED;
>      }
>  
> -  if (vec_safe_length (CONSTRUCTOR_ELTS (gimple_assign_rhs1 (stmt))) > 0)
> +  if (CONSTRUCTOR_NELTS (gimple_assign_rhs1 (stmt)) > 0)
>      {
>        /* I have never seen this code path trigger but if it can happen the
>        following should handle it gracefully.  */
> --- gcc/expr.c.jj     2016-09-16 22:19:40.000000000 +0200
> +++ gcc/expr.c        2016-09-22 17:49:51.441302202 +0200
> @@ -6187,8 +6187,7 @@ store_constructor (tree exp, rtx target,
>          register whose mode size isn't equal to SIZE since
>          clear_storage can't handle this case.  */
>       else if (size > 0
> -              && (((int)vec_safe_length (CONSTRUCTOR_ELTS (exp))
> -                   != fields_length (type))
> +              && (((int) CONSTRUCTOR_NELTS (exp) != fields_length (type))
>                    || mostly_zeros_p (exp))
>                && (!REG_P (target)
>                    || ((HOST_WIDE_INT) GET_MODE_SIZE (GET_MODE (target))
> --- gcc/fold-const.c.jj       2016-09-16 22:19:38.000000000 +0200
> +++ gcc/fold-const.c  2016-09-22 17:50:34.154756728 +0200
> @@ -2954,8 +2954,7 @@ operand_equal_p (const_tree arg0, const_
>        case CONSTRUCTOR:
>       /* In GIMPLE empty constructors are allowed in initializers of
>          aggregates.  */
> -     return (!vec_safe_length (CONSTRUCTOR_ELTS (arg0))
> -             && !vec_safe_length (CONSTRUCTOR_ELTS (arg1)));
> +     return !CONSTRUCTOR_NELTS (arg0) && !CONSTRUCTOR_NELTS (arg1);
>        default:
>       break;
>        }
> --- gcc/tree-pretty-print.c.jj        2016-09-16 22:19:38.000000000 +0200
> +++ gcc/tree-pretty-print.c   2016-09-22 17:53:17.397672028 +0200
> @@ -1983,7 +1983,7 @@ dump_generic_node (pretty_printer *pp, t
>               dump_decl_name (pp, val, flags);
>           else
>               dump_generic_node (pp, val, spc, flags, false);
> -         if (ix != vec_safe_length (CONSTRUCTOR_ELTS (node)) - 1)
> +         if (ix != CONSTRUCTOR_NELTS (node) - 1)
>             {
>               pp_comma (pp);
>               pp_space (pp);
> --- gcc/hsa-brig.c.jj 2016-04-22 18:21:54.000000000 +0200
> +++ gcc/hsa-brig.c    2016-09-22 17:50:51.828531025 +0200
> @@ -985,7 +985,7 @@ hsa_op_immed::emit_to_buffer (unsigned *
>       }
>        else if (TREE_CODE (m_tree_value) == CONSTRUCTOR)
>       {
> -       unsigned len = vec_safe_length (CONSTRUCTOR_ELTS (m_tree_value));
> +       unsigned len = CONSTRUCTOR_NELTS (m_tree_value);
>         for (unsigned i = 0; i < len; i++)
>           {
>             tree v = CONSTRUCTOR_ELT (m_tree_value, i)->value;
> --- gcc/ipa-icf-gimple.c.jj   2016-04-22 18:21:29.000000000 +0200
> +++ gcc/ipa-icf-gimple.c      2016-09-22 17:51:48.201811107 +0200
> @@ -406,8 +406,8 @@ func_checker::compare_operand (tree t1,
>      {
>      case CONSTRUCTOR:
>        {
> -     unsigned length1 = vec_safe_length (CONSTRUCTOR_ELTS (t1));
> -     unsigned length2 = vec_safe_length (CONSTRUCTOR_ELTS (t2));
> +     unsigned length1 = CONSTRUCTOR_NELTS (t1);
> +     unsigned length2 = CONSTRUCTOR_NELTS (t2);
>  
>       if (length1 != length2)
>         return return_false ();
> --- gcc/cp/typeck2.c.jj       2016-07-16 10:41:04.000000000 +0200
> +++ gcc/cp/typeck2.c  2016-09-22 17:56:20.391335100 +0200
> @@ -1379,7 +1379,7 @@ process_init_constructor_record (tree ty
>        if (type == error_mark_node)
>       return PICFLAG_ERRONEOUS;
>  
> -      if (idx < vec_safe_length (CONSTRUCTOR_ELTS (init)))
> +      if (idx < CONSTRUCTOR_NELTS (init))
>       {
>         constructor_elt *ce = &(*CONSTRUCTOR_ELTS (init))[idx];
>         if (ce->index)
> @@ -1476,7 +1476,7 @@ process_init_constructor_record (tree ty
>        CONSTRUCTOR_APPEND_ELT (v, field, next);
>      }
>  
> -  if (idx < vec_safe_length (CONSTRUCTOR_ELTS (init)))
> +  if (idx < CONSTRUCTOR_NELTS (init))
>      {
>        if (complain & tf_error)
>       error ("too many initializers for %qT", type);
> --- gcc/cp/decl.c.jj  2016-09-22 17:55:40.797840730 +0200
> +++ gcc/cp/decl.c     2016-09-22 17:55:53.913673234 +0200
> @@ -5948,7 +5948,7 @@ reshape_init_r (tree type, reshape_iter
>        element (as allowed by [dcl.init.string]).  */
>        if (!first_initializer_p
>         && TREE_CODE (str_init) == CONSTRUCTOR
> -       && vec_safe_length (CONSTRUCTOR_ELTS (str_init)) == 1)
> +       && CONSTRUCTOR_NELTS (str_init) == 1)
>       {
>         str_init = (*CONSTRUCTOR_ELTS (str_init))[0].value;
>       }
> @@ -6162,7 +6162,7 @@ check_initializer (tree decl, tree init,
>  
>    if (init && BRACE_ENCLOSED_INITIALIZER_P (init))
>      {
> -      int init_len = vec_safe_length (CONSTRUCTOR_ELTS (init));
> +      int init_len = CONSTRUCTOR_NELTS (init);
>        if (SCALAR_TYPE_P (type))
>       {
>         if (init_len == 0)
> --- gcc/ada/gcc-interface/decl.c.jj   2016-07-14 20:28:31.000000000 +0200
> +++ gcc/ada/gcc-interface/decl.c      2016-09-22 17:57:01.752806892 +0200
> @@ -1339,7 +1339,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entit
>                     = TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (gnu_alloc_type)));
>  
>                   if (TREE_CODE (gnu_expr) == CONSTRUCTOR
> -                     && vec_safe_length (CONSTRUCTOR_ELTS (gnu_expr)) == 1)
> +                     && CONSTRUCTOR_NELTS (gnu_expr) == 1)
>                     gnu_expr = NULL_TREE;
>                   else
>                     gnu_expr
> 
>       Jakub
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 
21284 (AG Nuernberg)

Reply via email to