OSDN Git Service

From Jie Zhang <jie.zhang@analog.com>:
[pf3gnuchains/gcc-fork.git] / gcc / tree.def
index 21f4db0..e7be1d0 100644 (file)
@@ -89,16 +89,6 @@ DEFTREECODE (BLOCK, "block", tcc_exceptional, 0)
      that are variants made by type modifiers such as "const" and "volatile".
    The TYPE_MAIN_VARIANT field, in any member of such a chain,
      points to the start of the chain.
-   The TYPE_NONCOPIED_PARTS field is a list specifying which parts
-     of an object of this type should *not* be copied by assignment.
-     The TREE_VALUE of each is a FIELD_DECL that should not be
-     copied.  The TREE_PURPOSE is an initial value for that field when
-     an object of this type is initialized via an INIT_EXPR.  It may
-     be NULL if no special value is required.  Even the things in this
-     list are copied if the right-hand side of an assignment is known
-     to be a complete object (rather than being, perhaps, a subobject
-     of some other object.)  The determination of what constitutes a
-     complete object is done by fixed_type_p.
    The TYPE_NAME field contains info on the name used in the program
      for this type (for GDB symbol table output).  It is either a
      TYPE_DECL node, for types that are typedefs, or an IDENTIFIER_NODE
@@ -268,9 +258,8 @@ DEFTREECODE (LANG_TYPE, "lang_type", tcc_type, 0)
 /* Contents are in TREE_INT_CST_LOW and TREE_INT_CST_HIGH fields,
    32 bits each, giving us a 64 bit constant capability.  INTEGER_CST
    nodes can be shared, and therefore should be considered read only.
-   They should be copied, before setting a flag such as
-   TREE_OVERFLOW.  If an INTEGER_CST has TREE_OVERFLOW or
-   TREE_CONSTANT_OVERFLOW already set, it is known to be unique.
+   They should be copied, before setting a flag such as TREE_OVERFLOW.
+   If an INTEGER_CST has TREE_OVERFLOW already set, it is known to be unique.
    INTEGER_CST nodes are created for the integral types, for pointer
    types and for vector and float types in some circumstances.  */
 DEFTREECODE (INTEGER_CST, "integer_cst", tcc_constant, 0)
@@ -362,12 +351,6 @@ DEFTREECODE (PARM_DECL, "parm_decl", tcc_declaration, 0)
 DEFTREECODE (TYPE_DECL, "type_decl", tcc_declaration, 0)
 DEFTREECODE (RESULT_DECL, "result_decl", tcc_declaration, 0)
 
-/* Memory tags used in tree-ssa to represent memory locations in
-   virtual SSA.  */
-DEFTREECODE (NAME_MEMORY_TAG, "name_memory_tag", tcc_declaration, 0)
-DEFTREECODE (SYMBOL_MEMORY_TAG, "symbol_memory_tag", tcc_declaration, 0)
-DEFTREECODE (MEMORY_PARTITION_TAG, "memory_partition_tag", tcc_declaration, 0)
-
 /* A namespace declaration.  Namespaces appear in DECL_CONTEXT of other
    _DECLs, providing a hierarchy of names.  */
 DEFTREECODE (NAMESPACE_DECL, "namespace_decl", tcc_declaration, 0)
@@ -390,6 +373,9 @@ DEFTREECODE (TRANSLATION_UNIT_DECL, "translation_unit_decl",\
 \f
 /* References to storage.  */
 
+/* The ordering of the following codes is optimized for the classification
+   in handled_component_p.  Keep them in a consecutive group.  */
+
 /* Value is structure or union component.
    Operand 0 is the structure or union (an expression).
    Operand 1 is the field (a node of type FIELD_DECL).
@@ -407,6 +393,23 @@ DEFTREECODE (COMPONENT_REF, "component_ref", tcc_reference, 3)
    to its mode width.  */
 DEFTREECODE (BIT_FIELD_REF, "bit_field_ref", tcc_reference, 3)
 
+/* Used only on an operand of complex type, these return
+   a value of the corresponding component type.  */
+DEFTREECODE (REALPART_EXPR, "realpart_expr", tcc_reference, 1)
+DEFTREECODE (IMAGPART_EXPR, "imagpart_expr", tcc_reference, 1)
+
+/* Array indexing.
+   Operand 0 is the array; operand 1 is a (single) array index.
+   Operand 2, if present, is a copy of TYPE_MIN_VALUE of the index.
+   Operand 3, if present, is the element size, measured in units of
+   the alignment of the element type.  */
+DEFTREECODE (ARRAY_REF, "array_ref", tcc_reference, 4)
+
+/* Likewise, except that the result is a range ("slice") of the array.  The
+   starting index of the resulting array is taken from operand 1 and the size
+   of the range is taken from the type of the expression.  */
+DEFTREECODE (ARRAY_RANGE_REF, "array_range_ref", tcc_reference, 4)
+
 /* The ordering of the following codes is optimized for the checking
    macros in tree.h.  Changing the order will degrade the speed of the
    compiler.  INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF.  */
@@ -425,18 +428,6 @@ DEFTREECODE (ALIGN_INDIRECT_REF, "align_indirect_ref", tcc_reference, 1)
    or 0 if the alignment is unknown.  */
 DEFTREECODE (MISALIGNED_INDIRECT_REF, "misaligned_indirect_ref", tcc_reference, 2)
 
-/* Array indexing.
-   Operand 0 is the array; operand 1 is a (single) array index.
-   Operand 2, if present, is a copy of TYPE_MIN_VALUE of the index.
-   Operand 3, if present, is the element size, measured in units of
-   the alignment of the element type.  */
-DEFTREECODE (ARRAY_REF, "array_ref", tcc_reference, 4)
-
-/* Likewise, except that the result is a range ("slice") of the array.  The
-   starting index of the resulting array is taken from operand 1 and the size
-   of the range is taken from the type of the expression.  */
-DEFTREECODE (ARRAY_RANGE_REF, "array_range_ref", tcc_reference, 4)
-
 /* Used to represent lookup of runtime type dependent data.  Often this is
    a reference to a vtable, but it needn't be.  Operands are:
    OBJ_TYPE_REF_EXPR: An expression that evaluates the value to use.
@@ -813,11 +804,6 @@ DEFTREECODE (COMPLEX_EXPR, "complex_expr", tcc_binary, 2)
 /* Complex conjugate of operand.  Used only on complex types.  */
 DEFTREECODE (CONJ_EXPR, "conj_expr", tcc_unary, 1)
 
-/* Used only on an operand of complex type, these return
-   a value of the corresponding component type.  */
-DEFTREECODE (REALPART_EXPR, "realpart_expr", tcc_reference, 1)
-DEFTREECODE (IMAGPART_EXPR, "imagpart_expr", tcc_reference, 1)
-
 /* Nodes for ++ and -- in C.
    The second arg is how much to increment or decrement by.
    For a pointer, it would be the size of the object pointed to.  */
@@ -917,15 +903,6 @@ DEFTREECODE (CATCH_EXPR, "catch_expr", tcc_statement, 2)
    expanding.  */
 DEFTREECODE (EH_FILTER_EXPR, "eh_filter_expr", tcc_statement, 2)
 
-/* Indicates a change in the dynamic type of a memory location.  This
-   has no value and generates no executable code.  It is only used for
-   type based alias analysis.  This is generated by C++ placement new.
-   CHANGE_DYNAMIC_TYPE_NEW_TYPE, the first operand, is the new type.
-   CHANGE_DYNAMIC_TYPE_LOCATION, the second operand, is the location
-   whose type is being changed.  */
-DEFTREECODE (CHANGE_DYNAMIC_TYPE_EXPR, "change_dynamic_type_expr",
-            tcc_statement, 2)
-
 /* Node used for describing a property that is known at compile
    time.  */
 DEFTREECODE (SCEV_KNOWN, "scev_known", tcc_expression, 0)
@@ -993,10 +970,9 @@ DEFTREECODE (REALIGN_LOAD_EXPR, "realign_load", tcc_expression, 3)
    sizetype or a pointer type (if SYMBOL is NULL).
    
    The sixth argument is the reference to the original memory access, which
-   is preserved for the purposes of the RTL alias analysis.  The seventh
-   argument is a tag representing results of the tree level alias analysis.  */
+   is preserved for the purposes of the RTL alias analysis.  */
 
-DEFTREECODE (TARGET_MEM_REF, "target_mem_ref", tcc_reference, 7)
+DEFTREECODE (TARGET_MEM_REF, "target_mem_ref", tcc_reference, 6)
 
 /* The ordering of the codes between OMP_PARALLEL and OMP_CRITICAL is
    exposed to TREE_RANGE_CHECK.  */