tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.

2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
        (GENERIC_NEXT): New function macro.
        (PHI_CHAIN): Use phi_node's new chain variable.
        (tree_phi_node): Change tree_common to tree_base
        and add the chain field.
        * tree-phinodes.c (make_phi_node): Don't set
        TREE_TYPE on the new node.
        * c-decl.c (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_TUPLE_P in chain_next.
        * tree-vect-transform.c
        (get_initial_def_for_induction): Look at
        PHI_RESULT_TREE for the type of the phi node.
        (update_vuses_to_preheader): Use PHI_CHAIN
        instead of TREE_CHAIN on the phi node.
        * tree-ssa-structalias.c (compute_points_to_sets):
        Likewise.
        (ipa_pta_execute): Likewise.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * cp-tree.h (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.
2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * java-tree.h (lang_tree_node): Use GENERIC_NEXT
        instead of checking GIMPLE_STMT_P in chain_next.

From-SVN: r124021
This commit is contained in:
Andrew Pinski 2007-04-21 20:40:31 +00:00 committed by Andrew Pinski
parent 84ece8efd2
commit 3d95caa4af
14 changed files with 58 additions and 13 deletions

View File

@ -1,3 +1,23 @@
2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
* tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
(GENERIC_NEXT): New function macro.
(PHI_CHAIN): Use phi_node's new chain variable.
(tree_phi_node): Change tree_common to tree_base
and add the chain field.
* tree-phinodes.c (make_phi_node): Don't set
TREE_TYPE on the new node.
* c-decl.c (lang_tree_node): Use GENERIC_NEXT
instead of checking GIMPLE_TUPLE_P in chain_next.
* tree-vect-transform.c
(get_initial_def_for_induction): Look at
PHI_RESULT_TREE for the type of the phi node.
(update_vuses_to_preheader): Use PHI_CHAIN
instead of TREE_CHAIN on the phi node.
* tree-ssa-structalias.c (compute_points_to_sets):
Likewise.
(ipa_pta_execute): Likewise.
2007-04-21 Richard Guenther <rguenther@suse.de> 2007-04-21 Richard Guenther <rguenther@suse.de>
PR middle-end/31136 PR middle-end/31136

View File

@ -1,3 +1,8 @@
2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
* ada-tree.h (lang_tree_node): Use GENERIC_NEXT
instead of checking GIMPLE_STMT_P in chain_next.
2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com> 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
PR ada/31576 PR ada/31576

View File

@ -36,7 +36,7 @@ enum gnat_tree_code {
/* Ada uses the lang_decl and lang_type fields to hold a tree. */ /* Ada uses the lang_decl and lang_type fields to hold a tree. */
union lang_tree_node union lang_tree_node
GTY((desc ("0"), GTY((desc ("0"),
chain_next ("(GIMPLE_STMT_P (&%h.t) ? (union lang_tree_node *) 0 : (union lang_tree_node *)TREE_CHAIN (&%h.t))"))) chain_next ("(union lang_tree_node *)GENERIC_NEXT (&%h.generic)")))
{ {
union tree_node GTY((tag ("0"))) t; union tree_node GTY((tag ("0"))) t;

View File

@ -250,7 +250,7 @@ extern char C_SIZEOF_STRUCT_LANG_IDENTIFIER_isnt_accurate
union lang_tree_node union lang_tree_node
GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"), GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
chain_next ("TREE_CODE (&%h.generic) == INTEGER_TYPE ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : (GIMPLE_TUPLE_P (&%h.generic) ? (union lang_tree_node *) 0 : (union lang_tree_node *) TREE_CHAIN (&%h.generic))"))) chain_next ("TREE_CODE (&%h.generic) == INTEGER_TYPE ? (union lang_tree_node *) TYPE_NEXT_VARIANT (&%h.generic) : ((union lang_tree_node *) GENERIC_NEXT (&%h.generic))")))
{ {
union tree_node GTY ((tag ("0"), union tree_node GTY ((tag ("0"),
desc ("tree_node_structure (&%h)"))) desc ("tree_node_structure (&%h)")))

View File

@ -1,3 +1,8 @@
2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
* cp-tree.h (lang_tree_node): Use GENERIC_NEXT
instead of checking GIMPLE_STMT_P in chain_next.
2007-04-17 Mark Mitchell <mark@codesourcery.com> 2007-04-17 Mark Mitchell <mark@codesourcery.com>
PR c++/31513 PR c++/31513

View File

@ -539,7 +539,7 @@ enum cp_tree_node_structure_enum {
/* The resulting tree type. */ /* The resulting tree type. */
union lang_tree_node GTY((desc ("cp_tree_node_structure (&%h)"), union lang_tree_node GTY((desc ("cp_tree_node_structure (&%h)"),
chain_next ("(GIMPLE_STMT_P (&%h.generic) ? (union lang_tree_node *) 0 : (union lang_tree_node *)TREE_CHAIN (&%h.generic))"))) chain_next ("(union lang_tree_node *)GENERIC_NEXT (&%h.generic)")))
{ {
union tree_node GTY ((tag ("TS_CP_GENERIC"), union tree_node GTY ((tag ("TS_CP_GENERIC"),
desc ("tree_node_structure (&%h)"))) generic; desc ("tree_node_structure (&%h)"))) generic;

View File

@ -1,3 +1,8 @@
2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
* f95-lang.c (lang_tree_node): Use GENERIC_NEXT
instead of checking GIMPLE_STMT_P in chain_next.
2007-04-17 Tobias Schlüter <tobi@gcc.gnu.org> 2007-04-17 Tobias Schlüter <tobi@gcc.gnu.org>
* trans-types.h (gfc_packed): New enum. * trans-types.h (gfc_packed): New enum.

View File

@ -62,7 +62,7 @@ GTY(())
union lang_tree_node union lang_tree_node
GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"), GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
chain_next ("(GIMPLE_STMT_P (&%h.generic) ? (union lang_tree_node *) 0 : (union lang_tree_node *)TREE_CHAIN (&%h.generic))"))) chain_next ("(union lang_tree_node *)GENERIC_NEXT (&%h.generic)")))
{ {
union tree_node GTY((tag ("0"), union tree_node GTY((tag ("0"),

View File

@ -1,3 +1,8 @@
2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
* java-tree.h (lang_tree_node): Use GENERIC_NEXT
instead of checking GIMPLE_STMT_P in chain_next.
2007-04-06 Colin Walters <walters@redhat.com> 2007-04-06 Colin Walters <walters@redhat.com>
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701

View File

@ -667,7 +667,7 @@ struct lang_identifier GTY(())
/* The resulting tree type. */ /* The resulting tree type. */
union lang_tree_node union lang_tree_node
GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"), GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
chain_next ("(GIMPLE_STMT_P (&%h.generic) ? (union lang_tree_node *) 0 : (union lang_tree_node *)TREE_CHAIN (&%h.generic))"))) chain_next ("(union lang_tree_node *)GENERIC_NEXT (&%h.generic)")))
{ {
union tree_node GTY ((tag ("0"), union tree_node GTY ((tag ("0"),

View File

@ -218,7 +218,6 @@ make_phi_node (tree var, int len)
TREE_SET_CODE (phi, PHI_NODE); TREE_SET_CODE (phi, PHI_NODE);
PHI_NUM_ARGS (phi) = len; PHI_NUM_ARGS (phi) = len;
PHI_ARG_CAPACITY (phi) = capacity; PHI_ARG_CAPACITY (phi) = capacity;
TREE_TYPE (phi) = TREE_TYPE (var);
if (TREE_CODE (var) == SSA_NAME) if (TREE_CODE (var) == SSA_NAME)
SET_PHI_RESULT (phi, var); SET_PHI_RESULT (phi, var);
else else

View File

@ -4793,7 +4793,7 @@ compute_points_to_sets (struct alias_info *ai)
block_stmt_iterator bsi; block_stmt_iterator bsi;
tree phi; tree phi;
for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi)) for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
{ {
if (is_gimple_reg (PHI_RESULT (phi))) if (is_gimple_reg (PHI_RESULT (phi)))
{ {
@ -4946,7 +4946,7 @@ ipa_pta_execute (void)
block_stmt_iterator bsi; block_stmt_iterator bsi;
tree phi; tree phi;
for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi)) for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
{ {
if (is_gimple_reg (PHI_RESULT (phi))) if (is_gimple_reg (PHI_RESULT (phi)))
{ {

View File

@ -528,7 +528,7 @@ get_initial_def_for_induction (tree iv_phi)
stmt_vec_info stmt_vinfo = vinfo_for_stmt (iv_phi); stmt_vec_info stmt_vinfo = vinfo_for_stmt (iv_phi);
loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo); loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
tree scalar_type = TREE_TYPE (iv_phi); tree scalar_type = TREE_TYPE (PHI_RESULT_TREE (iv_phi));
tree vectype = get_vectype_for_scalar_type (scalar_type); tree vectype = get_vectype_for_scalar_type (scalar_type);
int nunits = TYPE_VECTOR_SUBPARTS (vectype); int nunits = TYPE_VECTOR_SUBPARTS (vectype);
edge pe = loop_preheader_edge (loop); edge pe = loop_preheader_edge (loop);
@ -4547,7 +4547,7 @@ update_vuses_to_preheader (tree stmt, struct loop *loop)
tree phi; tree phi;
bool updated = false; bool updated = false;
for (phi = phi_nodes (header_bb); phi; phi = TREE_CHAIN (phi)) for (phi = phi_nodes (header_bb); phi; phi = PHI_CHAIN (phi))
{ {
if (SSA_NAME_VAR (PHI_RESULT (phi)) == name_var) if (SSA_NAME_VAR (PHI_RESULT (phi)) == name_var)
{ {

View File

@ -951,7 +951,7 @@ extern void omp_clause_range_check_failed (const tree, const char *, int,
(TREE_CODE_CLASS (TREE_CODE ((NODE))) == tcc_gimple_stmt) (TREE_CODE_CLASS (TREE_CODE ((NODE))) == tcc_gimple_stmt)
/* Nonzero if NODE is a GIMPLE tuple. */ /* Nonzero if NODE is a GIMPLE tuple. */
#define GIMPLE_TUPLE_P(NODE) (GIMPLE_STMT_P (NODE)) #define GIMPLE_TUPLE_P(NODE) (GIMPLE_STMT_P (NODE) || TREE_CODE (NODE) == PHI_NODE)
/* A GIMPLE tuple that has a ``locus'' field. */ /* A GIMPLE tuple that has a ``locus'' field. */
#define GIMPLE_TUPLE_HAS_LOCUS_P(NODE) GIMPLE_STMT_P ((NODE)) #define GIMPLE_TUPLE_HAS_LOCUS_P(NODE) GIMPLE_STMT_P ((NODE))
@ -975,6 +975,11 @@ extern void omp_clause_range_check_failed (const tree, const char *, int,
used in hash tables which are saved to a PCH. */ used in hash tables which are saved to a PCH. */
#define TREE_HASH(NODE) ((size_t) (NODE) & 0777777) #define TREE_HASH(NODE) ((size_t) (NODE) & 0777777)
/* The TREE_CHAIN but it is able to handle tuples. */
#define GENERIC_NEXT(NODE) \
(TREE_CODE (NODE) == PHI_NODE ? PHI_CHAIN (NODE) : \
GIMPLE_STMT_P (NODE) ? NULL_TREE : TREE_CHAIN (NODE))
/* Given an expression as a tree, strip any NON_LVALUE_EXPRs and NOP_EXPRs /* Given an expression as a tree, strip any NON_LVALUE_EXPRs and NOP_EXPRs
that don't change the machine mode. */ that don't change the machine mode. */
@ -1866,7 +1871,7 @@ struct tree_ssa_name GTY(())
/* PHI_NODEs for each basic block are chained together in a single linked /* PHI_NODEs for each basic block are chained together in a single linked
list. The head of the list is linked from the block annotation, and list. The head of the list is linked from the block annotation, and
the link to the next PHI is in PHI_CHAIN. */ the link to the next PHI is in PHI_CHAIN. */
#define PHI_CHAIN(NODE) TREE_CHAIN (PHI_NODE_CHECK (NODE)) #define PHI_CHAIN(NODE) PHI_NODE_CHECK (NODE)->phi.chain
#define PHI_NUM_ARGS(NODE) PHI_NODE_CHECK (NODE)->phi.num_args #define PHI_NUM_ARGS(NODE) PHI_NODE_CHECK (NODE)->phi.num_args
#define PHI_ARG_CAPACITY(NODE) PHI_NODE_CHECK (NODE)->phi.capacity #define PHI_ARG_CAPACITY(NODE) PHI_NODE_CHECK (NODE)->phi.capacity
@ -1885,7 +1890,8 @@ struct phi_arg_d GTY(())
struct tree_phi_node GTY(()) struct tree_phi_node GTY(())
{ {
struct tree_common common; struct tree_base common;
tree chain;
tree result; tree result;
int num_args; int num_args;
int capacity; int capacity;