Mercurial > hg > CbC > CbC_gcc
comparison gcc/tree-core.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* Core data structures for the 'tree' type. | 1 /* Core data structures for the 'tree' type. |
2 Copyright (C) 1989-2017 Free Software Foundation, Inc. | 2 Copyright (C) 1989-2018 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of GCC. | 4 This file is part of GCC. |
5 | 5 |
6 GCC is free software; you can redistribute it and/or modify it under | 6 GCC is free software; you can redistribute it and/or modify it under |
7 the terms of the GNU General Public License as published by the Free | 7 the terms of the GNU General Public License as published by the Free |
163 /* Codes that identify the various built in functions | 163 /* Codes that identify the various built in functions |
164 so that expand_call can identify them quickly. */ | 164 so that expand_call can identify them quickly. */ |
165 #define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) ENUM, | 165 #define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) ENUM, |
166 enum built_in_function { | 166 enum built_in_function { |
167 #include "builtins.def" | 167 #include "builtins.def" |
168 | |
169 BEGIN_CHKP_BUILTINS, | |
170 | |
171 #define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) | |
172 #define DEF_BUILTIN_CHKP(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) \ | |
173 ENUM##_CHKP = ENUM + BEGIN_CHKP_BUILTINS + 1, | |
174 #include "builtins.def" | |
175 | |
176 END_CHKP_BUILTINS = BEGIN_CHKP_BUILTINS * 2 + 1, | |
177 | |
178 /* Complex division routines in libgcc. These are done via builtins | 168 /* Complex division routines in libgcc. These are done via builtins |
179 because emit_library_call_value can't handle complex values. */ | 169 because emit_library_call_value can't handle complex values. */ |
180 BUILT_IN_COMPLEX_MUL_MIN, | 170 BUILT_IN_COMPLEX_MUL_MIN, |
181 BUILT_IN_COMPLEX_MUL_MAX | 171 BUILT_IN_COMPLEX_MUL_MAX |
182 = BUILT_IN_COMPLEX_MUL_MIN | 172 = BUILT_IN_COMPLEX_MUL_MIN |
208 enum combined_fn { | 198 enum combined_fn { |
209 #define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) \ | 199 #define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) \ |
210 CFN_##ENUM = int (ENUM), | 200 CFN_##ENUM = int (ENUM), |
211 #include "builtins.def" | 201 #include "builtins.def" |
212 | 202 |
213 #define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) | |
214 #define DEF_BUILTIN_CHKP(ENUM, N, C, T, LT, B, F, NA, AT, IM, COND) \ | |
215 CFN_##ENUM##_CHKP = int (ENUM##_CHKP), | |
216 #include "builtins.def" | |
217 | 203 |
218 #define DEF_INTERNAL_FN(CODE, FLAGS, FNSPEC) \ | 204 #define DEF_INTERNAL_FN(CODE, FLAGS, FNSPEC) \ |
219 CFN_##CODE = int (END_BUILTINS) + int (IFN_##CODE), | 205 CFN_##CODE = int (END_BUILTINS) + int (IFN_##CODE), |
220 #include "internal-fn.def" | 206 #include "internal-fn.def" |
221 | 207 |
443 | 429 |
444 /* Internally used only clause, flag whether this is SIMT simd | 430 /* Internally used only clause, flag whether this is SIMT simd |
445 loop or not. */ | 431 loop or not. */ |
446 OMP_CLAUSE__SIMT_, | 432 OMP_CLAUSE__SIMT_, |
447 | 433 |
448 /* Internally used only clause, holding _Cilk_for # of iterations | |
449 on OMP_PARALLEL. */ | |
450 OMP_CLAUSE__CILK_FOR_COUNT_, | |
451 | |
452 /* OpenACC clause: independent. */ | 434 /* OpenACC clause: independent. */ |
453 OMP_CLAUSE_INDEPENDENT, | 435 OMP_CLAUSE_INDEPENDENT, |
454 | 436 |
455 /* OpenACC clause: worker [( [num:] integer-expression)]. */ | 437 /* OpenACC clause: worker [( [num:] integer-expression)]. */ |
456 OMP_CLAUSE_WORKER, | 438 OMP_CLAUSE_WORKER, |
470 /* OpenACC clause: tile ( size-expr-list ). */ | 452 /* OpenACC clause: tile ( size-expr-list ). */ |
471 OMP_CLAUSE_TILE, | 453 OMP_CLAUSE_TILE, |
472 | 454 |
473 /* OpenMP internal-only clause to specify grid dimensions of a gridified | 455 /* OpenMP internal-only clause to specify grid dimensions of a gridified |
474 kernel. */ | 456 kernel. */ |
475 OMP_CLAUSE__GRIDDIM_ | 457 OMP_CLAUSE__GRIDDIM_, |
458 | |
459 /* OpenACC clause: if_present. */ | |
460 OMP_CLAUSE_IF_PRESENT, | |
461 | |
462 /* OpenACC clause: finalize. */ | |
463 OMP_CLAUSE_FINALIZE | |
476 }; | 464 }; |
477 | 465 |
478 #undef DEFTREESTRUCT | 466 #undef DEFTREESTRUCT |
479 #define DEFTREESTRUCT(ENUM, NAME) ENUM, | 467 #define DEFTREESTRUCT(ENUM, NAME) ENUM, |
480 enum tree_node_structure_enum { | 468 enum tree_node_structure_enum { |
487 OMP_CLAUSE_SCHEDULE_STATIC, | 475 OMP_CLAUSE_SCHEDULE_STATIC, |
488 OMP_CLAUSE_SCHEDULE_DYNAMIC, | 476 OMP_CLAUSE_SCHEDULE_DYNAMIC, |
489 OMP_CLAUSE_SCHEDULE_GUIDED, | 477 OMP_CLAUSE_SCHEDULE_GUIDED, |
490 OMP_CLAUSE_SCHEDULE_AUTO, | 478 OMP_CLAUSE_SCHEDULE_AUTO, |
491 OMP_CLAUSE_SCHEDULE_RUNTIME, | 479 OMP_CLAUSE_SCHEDULE_RUNTIME, |
492 OMP_CLAUSE_SCHEDULE_CILKFOR, | |
493 OMP_CLAUSE_SCHEDULE_MASK = (1 << 3) - 1, | 480 OMP_CLAUSE_SCHEDULE_MASK = (1 << 3) - 1, |
494 OMP_CLAUSE_SCHEDULE_MONOTONIC = (1 << 3), | 481 OMP_CLAUSE_SCHEDULE_MONOTONIC = (1 << 3), |
495 OMP_CLAUSE_SCHEDULE_NONMONOTONIC = (1 << 4), | 482 OMP_CLAUSE_SCHEDULE_NONMONOTONIC = (1 << 4), |
496 OMP_CLAUSE_SCHEDULE_LAST = 2 * OMP_CLAUSE_SCHEDULE_NONMONOTONIC - 1 | 483 OMP_CLAUSE_SCHEDULE_LAST = 2 * OMP_CLAUSE_SCHEDULE_NONMONOTONIC - 1 |
497 }; | 484 }; |
630 TI_FENV_T_PTR_TYPE, | 617 TI_FENV_T_PTR_TYPE, |
631 TI_CONST_FENV_T_PTR_TYPE, | 618 TI_CONST_FENV_T_PTR_TYPE, |
632 TI_FEXCEPT_T_PTR_TYPE, | 619 TI_FEXCEPT_T_PTR_TYPE, |
633 TI_CONST_FEXCEPT_T_PTR_TYPE, | 620 TI_CONST_FEXCEPT_T_PTR_TYPE, |
634 TI_POINTER_SIZED_TYPE, | 621 TI_POINTER_SIZED_TYPE, |
635 | |
636 TI_POINTER_BOUNDS_TYPE, | |
637 | 622 |
638 TI_DFLOAT32_TYPE, | 623 TI_DFLOAT32_TYPE, |
639 TI_DFLOAT64_TYPE, | 624 TI_DFLOAT64_TYPE, |
640 TI_DFLOAT128_TYPE, | 625 TI_DFLOAT128_TYPE, |
641 TI_DFLOAT32_PTR_TYPE, | 626 TI_DFLOAT32_PTR_TYPE, |
849 all_kinds | 834 all_kinds |
850 }; | 835 }; |
851 | 836 |
852 enum annot_expr_kind { | 837 enum annot_expr_kind { |
853 annot_expr_ivdep_kind, | 838 annot_expr_ivdep_kind, |
839 annot_expr_unroll_kind, | |
854 annot_expr_no_vector_kind, | 840 annot_expr_no_vector_kind, |
855 annot_expr_vector_kind, | 841 annot_expr_vector_kind, |
842 annot_expr_parallel_kind, | |
856 annot_expr_kind_last | 843 annot_expr_kind_last |
857 }; | 844 }; |
858 | 845 |
859 /*--------------------------------------------------------------------------- | 846 /*--------------------------------------------------------------------------- |
860 Type definitions | 847 Type definitions |
973 } int_length; | 960 } int_length; |
974 | 961 |
975 /* VEC length. This field is only used with TREE_VEC. */ | 962 /* VEC length. This field is only used with TREE_VEC. */ |
976 int length; | 963 int length; |
977 | 964 |
978 /* Number of elements. This field is only used with VECTOR_CST. */ | 965 /* This field is only used with VECTOR_CST. */ |
979 unsigned int nelts; | 966 struct { |
967 /* The value of VECTOR_CST_LOG2_NPATTERNS. */ | |
968 unsigned int log2_npatterns : 8; | |
969 | |
970 /* The value of VECTOR_CST_NELTS_PER_PATTERN. */ | |
971 unsigned int nelts_per_pattern : 8; | |
972 | |
973 /* For future expansion. */ | |
974 unsigned int unused : 16; | |
975 } vector_cst; | |
980 | 976 |
981 /* SSA version number. This field is only used with SSA_NAME. */ | 977 /* SSA version number. This field is only used with SSA_NAME. */ |
982 unsigned int version; | 978 unsigned int version; |
983 | 979 |
984 /* CHREC_VARIABLE. This field is only used with POLYNOMIAL_CHREC. */ | 980 /* CHREC_VARIABLE. This field is only used with POLYNOMIAL_CHREC. */ |
1108 LABEL_DECL | 1104 LABEL_DECL |
1109 | 1105 |
1110 SSA_NAME_IS_VIRTUAL_OPERAND in | 1106 SSA_NAME_IS_VIRTUAL_OPERAND in |
1111 SSA_NAME | 1107 SSA_NAME |
1112 | 1108 |
1109 EXPR_LOCATION_WRAPPER_P in | |
1110 NON_LVALUE_EXPR, VIEW_CONVERT_EXPR | |
1111 | |
1113 private_flag: | 1112 private_flag: |
1114 | 1113 |
1115 TREE_PRIVATE in | 1114 TREE_PRIVATE in |
1116 all decls | 1115 all decls |
1117 | 1116 |
1206 BLOCK, STRING_CST | 1205 BLOCK, STRING_CST |
1207 | 1206 |
1208 SSA_NAME_OCCURS_IN_ABNORMAL_PHI in | 1207 SSA_NAME_OCCURS_IN_ABNORMAL_PHI in |
1209 SSA_NAME | 1208 SSA_NAME |
1210 | 1209 |
1211 EXPR_CILK_SPAWN in | |
1212 CALL_EXPR | |
1213 AGGR_INIT_EXPR | |
1214 | |
1215 used_flag: | 1210 used_flag: |
1216 | 1211 |
1217 TREE_USED in | 1212 TREE_USED in |
1218 all expressions | 1213 all expressions |
1219 all decls | 1214 all decls |
1241 all types | 1236 all types |
1242 | 1237 |
1243 IDENTIFIER_TRANSPARENT_ALIAS in | 1238 IDENTIFIER_TRANSPARENT_ALIAS in |
1244 IDENTIFIER_NODE | 1239 IDENTIFIER_NODE |
1245 | 1240 |
1241 SSA_NAME_POINTS_TO_READONLY_MEMORY in | |
1242 SSA_NAME | |
1243 | |
1246 visited: | 1244 visited: |
1247 | 1245 |
1248 TREE_VISITED in | 1246 TREE_VISITED in |
1249 all trees (used liberally by many passes) | 1247 all trees (used liberally by many passes) |
1250 | 1248 |
1330 tree imag; | 1328 tree imag; |
1331 }; | 1329 }; |
1332 | 1330 |
1333 struct GTY(()) tree_vector { | 1331 struct GTY(()) tree_vector { |
1334 struct tree_typed typed; | 1332 struct tree_typed typed; |
1335 tree GTY ((length ("VECTOR_CST_NELTS ((tree) &%h)"))) elts[1]; | 1333 tree GTY ((length ("vector_cst_encoded_nelts ((tree) &%h)"))) elts[1]; |
1334 }; | |
1335 | |
1336 struct GTY(()) tree_poly_int_cst { | |
1337 struct tree_typed typed; | |
1338 tree coeffs[NUM_POLY_INT_COEFFS]; | |
1336 }; | 1339 }; |
1337 | 1340 |
1338 struct GTY(()) tree_identifier { | 1341 struct GTY(()) tree_identifier { |
1339 struct tree_common common; | 1342 struct tree_common common; |
1340 struct ht_identifier id; | 1343 struct ht_identifier id; |
1476 | 1479 |
1477 struct GTY(()) tree_block { | 1480 struct GTY(()) tree_block { |
1478 struct tree_base base; | 1481 struct tree_base base; |
1479 tree chain; | 1482 tree chain; |
1480 | 1483 |
1481 unsigned abstract_flag : 1; | 1484 unsigned block_num; |
1482 unsigned block_num : 31; | |
1483 | 1485 |
1484 location_t locus; | 1486 location_t locus; |
1485 location_t end_locus; | 1487 location_t end_locus; |
1486 | 1488 |
1487 tree vars; | 1489 tree vars; |
1529 so we need to store the value 32 (not 31, as we need the zero | 1531 so we need to store the value 32 (not 31, as we need the zero |
1530 as well), hence six bits. */ | 1532 as well), hence six bits. */ |
1531 unsigned align : 6; | 1533 unsigned align : 6; |
1532 unsigned warn_if_not_align : 6; | 1534 unsigned warn_if_not_align : 6; |
1533 unsigned typeless_storage : 1; | 1535 unsigned typeless_storage : 1; |
1534 unsigned spare : 18; | 1536 unsigned empty_flag : 1; |
1537 unsigned spare : 17; | |
1535 | 1538 |
1536 alias_set_type alias_set; | 1539 alias_set_type alias_set; |
1537 tree pointer_to; | 1540 tree pointer_to; |
1538 tree reference_to; | 1541 tree reference_to; |
1539 union tree_type_symtab { | 1542 union tree_type_symtab { |
1540 int GTY ((tag ("TYPE_SYMTAB_IS_ADDRESS"))) address; | 1543 int GTY ((tag ("TYPE_SYMTAB_IS_ADDRESS"))) address; |
1541 const char * GTY ((tag ("TYPE_SYMTAB_IS_POINTER"))) pointer; | |
1542 struct die_struct * GTY ((tag ("TYPE_SYMTAB_IS_DIE"))) die; | 1544 struct die_struct * GTY ((tag ("TYPE_SYMTAB_IS_DIE"))) die; |
1543 } GTY ((desc ("debug_hooks->tree_type_symtab_field"))) symtab; | 1545 } GTY ((desc ("debug_hooks->tree_type_symtab_field"))) symtab; |
1544 tree canonical; | 1546 tree canonical; |
1545 tree next_variant; | 1547 tree next_variant; |
1546 tree main_variant; | 1548 tree main_variant; |
1608 unsigned lang_flag_5 : 1; | 1610 unsigned lang_flag_5 : 1; |
1609 unsigned lang_flag_6 : 1; | 1611 unsigned lang_flag_6 : 1; |
1610 unsigned lang_flag_7 : 1; | 1612 unsigned lang_flag_7 : 1; |
1611 unsigned lang_flag_8 : 1; | 1613 unsigned lang_flag_8 : 1; |
1612 | 1614 |
1613 /* In VAR_DECL and PARM_DECL, this is DECL_REGISTER. */ | 1615 /* In VAR_DECL and PARM_DECL, this is DECL_REGISTER |
1616 IN TRANSLATION_UNIT_DECL, this is TRANSLATION_UNIT_WARN_EMPTY_P. */ | |
1614 unsigned decl_flag_0 : 1; | 1617 unsigned decl_flag_0 : 1; |
1615 /* In FIELD_DECL, this is DECL_BIT_FIELD | 1618 /* In FIELD_DECL, this is DECL_BIT_FIELD |
1616 In VAR_DECL and FUNCTION_DECL, this is DECL_EXTERNAL. | 1619 In VAR_DECL and FUNCTION_DECL, this is DECL_EXTERNAL. |
1617 In TYPE_DECL, this is TYPE_DECL_SUPPRESS_DEBUG. */ | 1620 In TYPE_DECL, this is TYPE_DECL_SUPPRESS_DEBUG. */ |
1618 unsigned decl_flag_1 : 1; | 1621 unsigned decl_flag_1 : 1; |
1619 /* In FIELD_DECL, this is DECL_NONADDRESSABLE_P | 1622 /* In FIELD_DECL, this is DECL_NONADDRESSABLE_P |
1620 In VAR_DECL, PARM_DECL and RESULT_DECL, this is | 1623 In VAR_DECL, PARM_DECL and RESULT_DECL, this is |
1621 DECL_HAS_VALUE_EXPR_P. */ | 1624 DECL_HAS_VALUE_EXPR_P. */ |
1622 unsigned decl_flag_2 : 1; | 1625 unsigned decl_flag_2 : 1; |
1623 /* 1 bit unused. */ | 1626 /* In FIELD_DECL, this is DECL_PADDING_P. */ |
1624 unsigned decl_flag_3 : 1; | 1627 unsigned decl_flag_3 : 1; |
1625 /* Logically, these two would go in a theoretical base shared by var and | 1628 /* Logically, these two would go in a theoretical base shared by var and |
1626 parm decl. */ | 1629 parm decl. */ |
1627 unsigned gimple_reg_flag : 1; | 1630 unsigned gimple_reg_flag : 1; |
1628 /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE. */ | 1631 /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE. */ |
1783 unsigned no_limit_stack : 1; | 1786 unsigned no_limit_stack : 1; |
1784 unsigned disregard_inline_limits : 1; | 1787 unsigned disregard_inline_limits : 1; |
1785 unsigned pure_flag : 1; | 1788 unsigned pure_flag : 1; |
1786 unsigned looping_const_or_pure_flag : 1; | 1789 unsigned looping_const_or_pure_flag : 1; |
1787 unsigned has_debug_args_flag : 1; | 1790 unsigned has_debug_args_flag : 1; |
1788 unsigned tm_clone_flag : 1; | |
1789 unsigned versioned_function : 1; | 1791 unsigned versioned_function : 1; |
1792 unsigned lambda_function: 1; | |
1790 /* No bits left. */ | 1793 /* No bits left. */ |
1791 }; | 1794 }; |
1792 | 1795 |
1793 struct GTY(()) tree_translation_unit_decl { | 1796 struct GTY(()) tree_translation_unit_decl { |
1794 struct tree_decl_common common; | 1797 struct tree_decl_common common; |
1858 desc ("tree_node_structure (&%h)"), variable_size)) tree_node { | 1861 desc ("tree_node_structure (&%h)"), variable_size)) tree_node { |
1859 struct tree_base GTY ((tag ("TS_BASE"))) base; | 1862 struct tree_base GTY ((tag ("TS_BASE"))) base; |
1860 struct tree_typed GTY ((tag ("TS_TYPED"))) typed; | 1863 struct tree_typed GTY ((tag ("TS_TYPED"))) typed; |
1861 struct tree_common GTY ((tag ("TS_COMMON"))) common; | 1864 struct tree_common GTY ((tag ("TS_COMMON"))) common; |
1862 struct tree_int_cst GTY ((tag ("TS_INT_CST"))) int_cst; | 1865 struct tree_int_cst GTY ((tag ("TS_INT_CST"))) int_cst; |
1866 struct tree_poly_int_cst GTY ((tag ("TS_POLY_INT_CST"))) poly_int_cst; | |
1863 struct tree_real_cst GTY ((tag ("TS_REAL_CST"))) real_cst; | 1867 struct tree_real_cst GTY ((tag ("TS_REAL_CST"))) real_cst; |
1864 struct tree_fixed_cst GTY ((tag ("TS_FIXED_CST"))) fixed_cst; | 1868 struct tree_fixed_cst GTY ((tag ("TS_FIXED_CST"))) fixed_cst; |
1865 struct tree_vector GTY ((tag ("TS_VECTOR"))) vector; | 1869 struct tree_vector GTY ((tag ("TS_VECTOR"))) vector; |
1866 struct tree_string GTY ((tag ("TS_STRING"))) string; | 1870 struct tree_string GTY ((tag ("TS_STRING"))) string; |
1867 struct tree_complex GTY ((tag ("TS_COMPLEX"))) complex; | 1871 struct tree_complex GTY ((tag ("TS_COMPLEX"))) complex; |
1924 /* Whether this attribute requires a function (or method) type. If it does, | 1928 /* Whether this attribute requires a function (or method) type. If it does, |
1925 it will be passed from a function pointer type to the target type, | 1929 it will be passed from a function pointer type to the target type, |
1926 and from a function return type (which is not itself a function | 1930 and from a function return type (which is not itself a function |
1927 pointer type) to the function type. */ | 1931 pointer type) to the function type. */ |
1928 bool function_type_required; | 1932 bool function_type_required; |
1933 /* Specifies if attribute affects type's identity. */ | |
1934 bool affects_type_identity; | |
1929 /* Function to handle this attribute. NODE points to the node to which | 1935 /* Function to handle this attribute. NODE points to the node to which |
1930 the attribute is to be applied. If a DECL, it should be modified in | 1936 the attribute is to be applied. If a DECL, it should be modified in |
1931 place; if a TYPE, a copy should be created. NAME is the name of the | 1937 place; if a TYPE, a copy should be created. NAME is the canonicalized |
1932 attribute (possibly with leading or trailing __). ARGS is the TREE_LIST | 1938 name of the attribute i.e. without any leading or trailing underscores. |
1933 of the arguments (which may be NULL). FLAGS gives further information | 1939 ARGS is the TREE_LIST of the arguments (which may be NULL). FLAGS gives |
1934 about the context of the attribute. Afterwards, the attributes will | 1940 further information about the context of the attribute. Afterwards, the |
1935 be added to the DECL_ATTRIBUTES or TYPE_ATTRIBUTES, as appropriate, | 1941 attributes will be added to the DECL_ATTRIBUTES or TYPE_ATTRIBUTES, as |
1936 unless *NO_ADD_ATTRS is set to true (which should be done on error, | 1942 appropriate, unless *NO_ADD_ATTRS is set to true (which should be done on |
1937 as well as in any other cases when the attributes should not be added | 1943 error, as well as in any other cases when the attributes should not be |
1938 to the DECL or TYPE). Depending on FLAGS, any attributes to be | 1944 added to the DECL or TYPE). Depending on FLAGS, any attributes to be |
1939 applied to another type or DECL later may be returned; | 1945 applied to another type or DECL later may be returned; |
1940 otherwise the return value should be NULL_TREE. This pointer may be | 1946 otherwise the return value should be NULL_TREE. This pointer may be |
1941 NULL if no special handling is required beyond the checks implied | 1947 NULL if no special handling is required beyond the checks implied |
1942 by the rest of this structure. */ | 1948 by the rest of this structure. */ |
1943 tree (*handler) (tree *node, tree name, tree args, | 1949 tree (*handler) (tree *node, tree name, tree args, |
1944 int flags, bool *no_add_attrs); | 1950 int flags, bool *no_add_attrs); |
1945 /* Specifies if attribute affects type's identity. */ | 1951 |
1946 bool affects_type_identity; | 1952 /* Specifies the name of an attribute that's mutually exclusive with |
1953 this one, and whether the relationship applies to the function, | |
1954 variable, or type form of the attribute. */ | |
1955 struct exclusions { | |
1956 const char *name; | |
1957 bool function; | |
1958 bool variable; | |
1959 bool type; | |
1960 }; | |
1961 | |
1962 /* An array of attribute exclusions describing names of other attributes | |
1963 that this attribute is mutually exclusive with. */ | |
1964 const exclusions *exclude; | |
1947 }; | 1965 }; |
1948 | 1966 |
1949 /* These functions allow a front-end to perform a manual layout of a | 1967 /* These functions allow a front-end to perform a manual layout of a |
1950 RECORD_TYPE. (For instance, if the placement of subsequent fields | 1968 RECORD_TYPE. (For instance, if the placement of subsequent fields |
1951 depends on the placement of fields so far.) Begin by calling | 1969 depends on the placement of fields so far.) Begin by calling |
2095 | 2113 |
2096 /* Types used to represent sizes. */ | 2114 /* Types used to represent sizes. */ |
2097 extern GTY(()) tree sizetype_tab[(int) stk_type_kind_last]; | 2115 extern GTY(()) tree sizetype_tab[(int) stk_type_kind_last]; |
2098 | 2116 |
2099 /* Arrays for keeping track of tree node statistics. */ | 2117 /* Arrays for keeping track of tree node statistics. */ |
2100 extern int tree_node_counts[]; | 2118 extern uint64_t tree_node_counts[]; |
2101 extern int tree_node_sizes[]; | 2119 extern uint64_t tree_node_sizes[]; |
2102 | 2120 |
2103 /* True if we are in gimple form and the actions of the folders need to | 2121 /* True if we are in gimple form and the actions of the folders need to |
2104 be restricted. False if we are not in gimple form and folding is not | 2122 be restricted. False if we are not in gimple form and folding is not |
2105 restricted to creating gimple expressions. */ | 2123 restricted to creating gimple expressions. */ |
2106 extern bool in_gimple_form; | 2124 extern bool in_gimple_form; |