OSDN Git Service

* alpha.md (addsi3, subsi3): No new temporaries once cse is
[pf3gnuchains/gcc-fork.git] / gcc / ch / ch-tree.def
1 /* This file contains the definitions and documentation for the
2    additional tree codes used in the CHILL front end (see tree.def
3    for the standard codes).
4    Copyright (C) 1992, 1993 Free Software Foundation, Inc.
5
6 This file is part of GNU CC.
7
8 GNU CC is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
12
13 GNU CC is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with GNU CC; see the file COPYING.  If not, write to
20 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
21
22
23 /* 
24  * CHILL types.
25  */
26 DEFTREECODE (GRANT_TYPE, "grant_type", 't', 0)
27 DEFTREECODE (SEIZE_TYPE, "seize_type", 't', 0)
28 /* 
29  * CHILL decls.
30  */
31 DEFTREECODE (KEYWORD_DECL, "keyword_decl", 'd', 0)
32 DEFTREECODE (INSTANCE_METHOD_DECL, "instance_method_decl", 'd', 0)
33 DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
34
35 /* A 'SEIZE (OLD->NEW)!POSTFIX' or 'GRANT (OLD->NEW)!POSTFIX' is
36    represented as an ALIAS_DECL where DECL_OLD_PREFIX, DECL_NEW_PREFIX,
37    and DECL_POSTFIX points to OLD, NEW, and POSTFIX, repectively.
38    These are IDENTIFIER_NODEs, or NULL if empty.
39    DECL_NAME is NEW!POSTFIX.  After binding, DECL_ABSTRACT_ORIGIN
40    (if not an error_mark) points to a decl whose DECL_NAME is OLD!POSTFIX.
41    and which this name is linked to.
42    For SEIZE, DECL_SEIZEFILE names the most recent use_seize_file directive.
43    For GRANT, DECL_SEIZEFILE names the seizefile doing the granting. */
44 DEFTREECODE (ALIAS_DECL, "alias_decl", 'd', 0)
45
46 /* A variable, which is BASED on a pointer variable in DECL_ABSTRACT_ORIGIN. */
47 DEFTREECODE (BASED_DECL, "based_decl", 'd', 0)
48
49 /* A pseudo-variable declared by a DO WITH. */
50 DEFTREECODE (WITH_DECL, "with_decl", 'd', 0)
51
52 /*
53  * CHILL exprs.
54  */
55 DEFTREECODE (CONCAT_EXPR, "concat_expr", '2', 2)
56
57 /* A slice (sub-array or sub-string) of operand 0, where
58    operand 1 is the start of the slice, and operand 2 is its length.
59    Currently, only used for bitstring sclices. */
60 DEFTREECODE (SLICE_EXPR, "slice_expr", 'e', 3)
61
62 /* Later, SET_IN_EXPR might be replaced by BIT_FIELD_REF or IN_EXPR. */
63 DEFTREECODE (SET_IN_EXPR, "set_in_expr", '2', 2)
64
65 /* A CASE_EXPR EX implements Chill CASE expression.
66    TREE_OPERAND (EX, 0) is a TREE_LIST representing the <case selector list>,
67    with one node for each expression.  (Only one is supported by the
68    current implementation.)
69    TREE_OPERAND (EX, 1) is also a TREE_LIST, with one node for each
70    <value case alternative>.   The TREE_VALUE of these node is the
71    <sub expression> (case element body); the TREE_PURPOSE contains
72    the <case label specification>.  (The TREE_PURPOSE for the
73    optional ELSE (default) branch is NULL_TREE.)  Each <case label
74    specification> is also represented as a list with one TREE_LIST
75    node for each <case label list> (though only length==1 is currently
76    supported).  And finally: each <case label list> is again a list
77    with one TREE_LIST node for each <case label>. */
78 DEFTREECODE (CASE_EXPR, "case_expr", 'e', 2)
79
80 /* Powerset and static bit array operations.
81    Operands have same mode as result.  */
82 DEFTREECODE (SET_NOT_EXPR,  "set_not_expr",  '1', 1)
83 DEFTREECODE (SET_IOR_EXPR,  "set_ior_expr",  '2', 2)
84 DEFTREECODE (SET_XOR_EXPR,  "set_xor_expr",  '2', 2)
85 DEFTREECODE (SET_AND_EXPR,  "set_and_expr",  '2', 2)
86 DEFTREECODE (SET_DIFF_EXPR, "set_diff_expr", '2', 2)
87 DEFTREECODE (PAREN_EXPR,  "paren_expr",  '1', 1)
88
89 DEFTREECODE (STRING_EQ_EXPR, "string_eq_expr", '2', 2)
90 DEFTREECODE (STRING_LT_EXPR, "string_lt_expr", '2', 2)
91
92 /* Used to represent a string repetition expression, until
93    we have a type for it;  a SET_TYPE replicator needs a
94    TYPE_DOMAIN even if it represents the empty set */
95 DEFTREECODE (REPLICATE_EXPR, "replicate_expr", 'e', 2)
96
97 /* An undefined value.  Used for the Chill operator '*',
98    and sometimes for padding. */
99 DEFTREECODE (UNDEFINED_EXPR, "undefined_expr", 'e', 0)
100
101 /* Used to represent a process instance */
102 DEFTREECODE (INSTANCE_TYPE, "instance_type", 't', 0)
103
104 /* Used to represent a reference to an array of bitfields. Currently restricted
105    to fields which are 1 bit wide.  */
106 DEFTREECODE (PACKED_ARRAY_REF, "packed_array_ref", 'r', 2)
107
108 /* ALSO NOTE:  LANG_TYPE is used for two things during pass 1;
109    such a node is converted to some other type node during satisfy.
110    If CH_NOVELTY_FLAG is set, then this node is a logical copy of
111    its TREE_TYPE, but with a different novelty.
112    If TYPE_READONLY is set, then the node stands for 'READ M'
113    where M is the TREE_TYPE.  */