Another set of small changes.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2012-08-09  Richard Guenther  <rguent...@suse.de>

        * tree.h (SSA_VAR_P): Simplify.
        * tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
        * fold-const.c (fold_comparison): Check for default def first
        before checking for PARM_DECL.
        * tree-complex.c (get_component_ssa_name): Likewise.
        * tree-inline.c (remap_ssa_name): Likewise.
        * tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
        * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
        (find_what_p_points_to): Likewise.
        * tree-ssa-operands.c (add_stmt_operand): Simplify.

Index: trunk/gcc/fold-const.c
===================================================================
*** trunk.orig/gcc/fold-const.c 2012-08-08 16:49:38.000000000 +0200
--- trunk/gcc/fold-const.c      2012-08-09 11:08:52.273217092 +0200
*************** fold_comparison (location_t loc, enum tr
*** 8940,8955 ****
             && auto_var_in_fn_p (base0, current_function_decl)
             && !indirect_base1
             && TREE_CODE (base1) == SSA_NAME
!            && TREE_CODE (SSA_NAME_VAR (base1)) == PARM_DECL
!            && SSA_NAME_IS_DEFAULT_DEF (base1))
            || (TREE_CODE (arg1) == ADDR_EXPR
                && indirect_base1
                && TREE_CODE (base1) == VAR_DECL
                && auto_var_in_fn_p (base1, current_function_decl)
                && !indirect_base0
                && TREE_CODE (base0) == SSA_NAME
!               && TREE_CODE (SSA_NAME_VAR (base0)) == PARM_DECL
!               && SSA_NAME_IS_DEFAULT_DEF (base0)))
          {
            if (code == NE_EXPR)
              return constant_boolean_node (1, type);
--- 8940,8955 ----
             && auto_var_in_fn_p (base0, current_function_decl)
             && !indirect_base1
             && TREE_CODE (base1) == SSA_NAME
!            && SSA_NAME_IS_DEFAULT_DEF (base1)
!          && TREE_CODE (SSA_NAME_VAR (base1)) == PARM_DECL)
            || (TREE_CODE (arg1) == ADDR_EXPR
                && indirect_base1
                && TREE_CODE (base1) == VAR_DECL
                && auto_var_in_fn_p (base1, current_function_decl)
                && !indirect_base0
                && TREE_CODE (base0) == SSA_NAME
!               && SSA_NAME_IS_DEFAULT_DEF (base0)
!             && TREE_CODE (SSA_NAME_VAR (base0)) == PARM_DECL))
          {
            if (code == NE_EXPR)
              return constant_boolean_node (1, type);
Index: trunk/gcc/tree-complex.c
===================================================================
*** trunk.orig/gcc/tree-complex.c       2012-08-08 16:49:38.000000000 +0200
--- trunk/gcc/tree-complex.c    2012-08-09 11:19:15.799195507 +0200
*************** get_component_ssa_name (tree ssa_name, b
*** 495,502 ****
         is used in an abnormal phi, and whether it's uninitialized.  */
        SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ret)
        = SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ssa_name);
!       if (TREE_CODE (SSA_NAME_VAR (ssa_name)) == VAR_DECL
!         && SSA_NAME_IS_DEFAULT_DEF (ssa_name))
        {
          SSA_NAME_DEF_STMT (ret) = SSA_NAME_DEF_STMT (ssa_name);
          set_ssa_default_def (cfun, SSA_NAME_VAR (ret), ret);
--- 495,502 ----
         is used in an abnormal phi, and whether it's uninitialized.  */
        SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ret)
        = SSA_NAME_OCCURS_IN_ABNORMAL_PHI (ssa_name);
!       if (SSA_NAME_IS_DEFAULT_DEF (ssa_name)
!         && TREE_CODE (SSA_NAME_VAR (ssa_name)) == VAR_DECL)
        {
          SSA_NAME_DEF_STMT (ret) = SSA_NAME_DEF_STMT (ssa_name);
          set_ssa_default_def (cfun, SSA_NAME_VAR (ret), ret);
Index: trunk/gcc/tree-inline.c
===================================================================
*** trunk.orig/gcc/tree-inline.c        2012-08-08 16:49:38.000000000 +0200
--- trunk/gcc/tree-inline.c     2012-08-09 11:19:15.800195507 +0200
*************** remap_ssa_name (tree name, copy_body_dat
*** 187,194 ****
  
    if (processing_debug_stmt)
      {
!       if (TREE_CODE (SSA_NAME_VAR (name)) == PARM_DECL
!         && SSA_NAME_IS_DEFAULT_DEF (name)
          && id->entry_bb == NULL
          && single_succ_p (ENTRY_BLOCK_PTR))
        {
--- 187,194 ----
  
    if (processing_debug_stmt)
      {
!       if (SSA_NAME_IS_DEFAULT_DEF (name)
!         && TREE_CODE (SSA_NAME_VAR (name)) == PARM_DECL
          && id->entry_bb == NULL
          && single_succ_p (ENTRY_BLOCK_PTR))
        {
Index: trunk/gcc/tree-ssa-loop-ivopts.c
===================================================================
*** trunk.orig/gcc/tree-ssa-loop-ivopts.c       2012-08-08 16:49:38.000000000 
+0200
--- trunk/gcc/tree-ssa-loop-ivopts.c    2012-08-09 11:19:15.801195507 +0200
*************** parm_decl_cost (struct ivopts_data *data
*** 4657,4664 ****
    STRIP_NOPS (sbound);
  
    if (TREE_CODE (sbound) == SSA_NAME
        && TREE_CODE (SSA_NAME_VAR (sbound)) == PARM_DECL
-       && gimple_nop_p (SSA_NAME_DEF_STMT (sbound))
        && data->body_includes_call)
      return COSTS_N_INSNS (1);
  
--- 4657,4664 ----
    STRIP_NOPS (sbound);
  
    if (TREE_CODE (sbound) == SSA_NAME
+       && SSA_NAME_IS_DEFAULT_DEF (sbound)
        && TREE_CODE (SSA_NAME_VAR (sbound)) == PARM_DECL
        && data->body_includes_call)
      return COSTS_N_INSNS (1);
  
Index: trunk/gcc/tree-ssa-operands.c
===================================================================
*** trunk.orig/gcc/tree-ssa-operands.c  2012-08-08 16:49:46.000000000 +0200
--- trunk/gcc/tree-ssa-operands.c       2012-08-08 16:50:16.663499320 +0200
*************** add_virtual_operand (gimple stmt ATTRIBU
*** 615,633 ****
  static void
  add_stmt_operand (tree *var_p, gimple stmt, int flags)
  {
!   tree var, sym;
  
    gcc_assert (SSA_VAR_P (*var_p));
  
!   var = *var_p;
!   sym = (TREE_CODE (var) == SSA_NAME ? SSA_NAME_VAR (var) : var);
! 
!   /* Mark statements with volatile operands.  */
!   if (!(flags & opf_no_vops)
!       && TREE_THIS_VOLATILE (sym))
!     gimple_set_has_volatile_ops (stmt, true);
! 
!   if (is_gimple_reg (sym))
      {
        /* The variable is a GIMPLE register.  Add it to real operands.  */
        if (flags & opf_def)
--- 615,625 ----
  static void
  add_stmt_operand (tree *var_p, gimple stmt, int flags)
  {
!   tree var = *var_p;
  
    gcc_assert (SSA_VAR_P (*var_p));
  
!   if (is_gimple_reg (var))
      {
        /* The variable is a GIMPLE register.  Add it to real operands.  */
        if (flags & opf_def)
*************** add_stmt_operand (tree *var_p, gimple st
*** 636,642 ****
        append_use (var_p);
      }
    else
!     add_virtual_operand (stmt, flags);
  }
  
  /* Mark the base address of REF as having its address taken.
--- 628,642 ----
        append_use (var_p);
      }
    else
!     {
!       /* Mark statements with volatile operands.  */
!       if (!(flags & opf_no_vops)
!         && TREE_THIS_VOLATILE (var))
!       gimple_set_has_volatile_ops (stmt, true);
! 
!       /* The variable is a memory access.  Add virtual operands.  */
!       add_virtual_operand (stmt, flags);
!     }
  }
  
  /* Mark the base address of REF as having its address taken.
Index: trunk/gcc/tree-ssa-structalias.c
===================================================================
*** trunk.orig/gcc/tree-ssa-structalias.c       2012-08-08 16:49:38.000000000 
+0200
--- trunk/gcc/tree-ssa-structalias.c    2012-08-09 11:20:31.608192901 +0200
*************** get_fi_for_callee (gimple call)
*** 3976,3984 ****
    if (!fn || TREE_CODE (fn) != SSA_NAME)
      return get_varinfo (anything_id);
  
!   if ((TREE_CODE (SSA_NAME_VAR (fn)) == PARM_DECL
!        || TREE_CODE (SSA_NAME_VAR (fn)) == RESULT_DECL)
!       && SSA_NAME_IS_DEFAULT_DEF (fn))
      fn = SSA_NAME_VAR (fn);
  
    return get_vi_for_tree (fn);
--- 3976,3984 ----
    if (!fn || TREE_CODE (fn) != SSA_NAME)
      return get_varinfo (anything_id);
  
!   if (SSA_NAME_IS_DEFAULT_DEF (fn)
!       && (TREE_CODE (SSA_NAME_VAR (fn)) == PARM_DECL
!         || TREE_CODE (SSA_NAME_VAR (fn)) == RESULT_DECL))
      fn = SSA_NAME_VAR (fn);
  
    return get_vi_for_tree (fn);
*************** find_what_p_points_to (tree p)
*** 5915,5923 ****
    /* For parameters, get at the points-to set for the actual parm
       decl.  */
    if (TREE_CODE (p) == SSA_NAME
        && (TREE_CODE (SSA_NAME_VAR (p)) == PARM_DECL
!         || TREE_CODE (SSA_NAME_VAR (p)) == RESULT_DECL)
!       && SSA_NAME_IS_DEFAULT_DEF (p))
      lookup_p = SSA_NAME_VAR (p);
  
    vi = lookup_vi_for_tree (lookup_p);
--- 5915,5923 ----
    /* For parameters, get at the points-to set for the actual parm
       decl.  */
    if (TREE_CODE (p) == SSA_NAME
+       && SSA_NAME_IS_DEFAULT_DEF (p)
        && (TREE_CODE (SSA_NAME_VAR (p)) == PARM_DECL
!         || TREE_CODE (SSA_NAME_VAR (p)) == RESULT_DECL))
      lookup_p = SSA_NAME_VAR (p);
  
    vi = lookup_vi_for_tree (lookup_p);
Index: trunk/gcc/tree-ssanames.c
===================================================================
*** trunk.orig/gcc/tree-ssanames.c      2012-08-08 16:49:38.000000000 +0200
--- trunk/gcc/tree-ssanames.c   2012-08-09 11:22:03.026189723 +0200
*************** make_ssa_name_fn (struct function *fn, t
*** 118,124 ****
    tree t;
    use_operand_p imm;
  
!   gcc_assert (DECL_P (var));
  
    /* If our free list has an element, then use it.  */
    if (!VEC_empty (tree, FREE_SSANAMES (fn)))
--- 118,126 ----
    tree t;
    use_operand_p imm;
  
!   gcc_assert (TREE_CODE (var) == VAR_DECL
!             || TREE_CODE (var) == PARM_DECL
!             || TREE_CODE (var) == RESULT_DECL);
  
    /* If our free list has an element, then use it.  */
    if (!VEC_empty (tree, FREE_SSANAMES (fn)))
Index: trunk/gcc/tree.h
===================================================================
*** trunk.orig/gcc/tree.h       2012-08-08 16:49:38.000000000 +0200
--- trunk/gcc/tree.h    2012-08-09 11:22:54.653187917 +0200
*************** struct GTY (()) tree_binfo {
*** 2635,2650 ****
  
  /* Define fields and accessors for nodes representing declared names.  */
  
! /* Nonzero if DECL represents a variable for the SSA passes.  */
  #define SSA_VAR_P(DECL)                                                       
\
        (TREE_CODE (DECL) == VAR_DECL                                   \
         || TREE_CODE (DECL) == PARM_DECL                               \
         || TREE_CODE (DECL) == RESULT_DECL                             \
!        || (TREE_CODE (DECL) == SSA_NAME                               \
!            && (TREE_CODE (SSA_NAME_VAR (DECL)) == VAR_DECL            \
!                || TREE_CODE (SSA_NAME_VAR (DECL)) == PARM_DECL        \
!                || TREE_CODE (SSA_NAME_VAR (DECL)) == RESULT_DECL)))
! 
  
  
  
--- 2652,2664 ----
  
  /* Define fields and accessors for nodes representing declared names.  */
  
! /* Nonzero if DECL represents an SSA name or a variable that can possibly
!    have an associated SSA name.  */
  #define SSA_VAR_P(DECL)                                                       
\
        (TREE_CODE (DECL) == VAR_DECL                                   \
         || TREE_CODE (DECL) == PARM_DECL                               \
         || TREE_CODE (DECL) == RESULT_DECL                             \
!        || TREE_CODE (DECL) == SSA_NAME)
  
  
  

Reply via email to