diff options
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 113 |
1 files changed, 59 insertions, 54 deletions
diff --git a/gcc/tree.h b/gcc/tree.h index 0e875e0a851..679cf7e42ac 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -180,6 +180,9 @@ struct tree_common GTY(()) unsigned lang_flag_5 : 1; unsigned lang_flag_6 : 1; unsigned visited : 1; + + /* APPLE LOCAL unavailable (Radar 2809697) ilr */ + unsigned unavailable_flag : 1; }; /* The following table lists the uses of each of the above flags and @@ -270,6 +273,9 @@ struct tree_common GTY(()) INTEGER_TYPE, ENUMERAL_TYPE, FIELD_DECL SAVE_EXPR_NOPLACEHOLDER in SAVE_EXPR + APPLE LOCAL weak import + IDENTIFIER_WEAK_IMPORT in + IDENTIFIER asm_written_flag: @@ -295,6 +301,13 @@ struct tree_common GTY(()) TREE_DEPRECATED in ..._DECL + APPLE LOCAL begin unavailable (Radar 2809697) ilr + unavailable_flag: + + TREE_UNAVAILABLE in + ..._DECL + APPLE LOCAL end unavailable ilr + visited: Used in tree traversals to mark visited nodes. @@ -754,6 +767,12 @@ extern void tree_operand_check_failed (int, enum tree_code, deprecated feature by __attribute__((deprecated)). */ #define TREE_DEPRECATED(NODE) ((NODE)->common.deprecated_flag) +/* APPLE LOCAL begin unavailable (Radar 2809697) ilr */ +/* Nonzero in a IDENTIFIER_NODE if the use of the name is defined as a + unavailable feature by __attribute__((unavailable)). */ +#define TREE_UNAVAILABLE(NODE) ((NODE)->common.unavailable_flag) +/* APPLE LOCAL end unavailable ilr */ + /* Value of expression is function invariant. A strict subset of TREE_CONSTANT, such an expression is constant over any one function invocation, though not across different invocations. May appear in @@ -2000,6 +2019,18 @@ struct tree_type GTY(()) /* Used to indicate that this DECL has weak linkage. */ #define DECL_WEAK(NODE) (DECL_CHECK (NODE)->decl.weak_flag) +/* APPLE LOCAL begin weak_import (Radar 2809704) ilr */ +/* Used to indicate that this DECL has weak-import linkage. */ +#define DECL_WEAK_IMPORT(NODE) (DECL_CHECK (NODE)->decl.weak_import_flag) +/* The same information in IDENTIFIERs. */ +#define IDENTIFIER_WEAK_IMPORT(NODE) (IDENTIFIER_NODE_CHECK (NODE)->common.unsigned_flag) +/* APPLE LOCAL end weak_import (Radar 2809704) ilr */ + +/* APPLE LOCAL coalescing */ +/* "coalesced" symbols are similar to, but have more restrictions than, + ELF-style "weak" symbols. */ +#define DECL_COALESCED(NODE) (DECL_CHECK (NODE)->decl.coalesced_flag) + /* Used in TREE_PUBLIC decls to indicate that copies of this DECL in multiple translation units should be merged. */ #define DECL_ONE_ONLY(NODE) (DECL_CHECK (NODE)->decl.transparent_union) @@ -2064,6 +2095,13 @@ struct tree_type GTY(()) #define DECL_POINTER_ALIAS_SET_KNOWN_P(NODE) \ (DECL_POINTER_ALIAS_SET (NODE) != - 1) +/* In a FUNCTION_DECL for which DECL_BUILT_IN does not hold, this is + the approximate number of statements in this function. There is + no need for this number to be exact; it is only used in various + heuristics regarding optimization. */ +#define DECL_ESTIMATED_INSNS(NODE) \ + (FUNCTION_DECL_CHECK (NODE)->decl.u1.i) + /* Nonzero for a decl which is at file scope. */ #define DECL_FILE_SCOPE_P(EXP) \ (! DECL_CONTEXT (EXP) \ @@ -2142,7 +2180,12 @@ struct tree_decl GTY(()) unsigned lang_flag_7 : 1; unsigned needs_to_live_in_memory : 1; - /* 15 unused bits. */ + /* APPLE LOCAL weak_import (Radar 2809704) ilr */ + unsigned weak_import_flag : 1; + /* APPLE LOCAL coalescing */ + unsigned coalesced_flag : 1; + /* APPLE LOCAL unused bits */ + /* 13 unused bits. */ union tree_decl_u1 { /* In a FUNCTION_DECL for which DECL_BUILT_IN holds, this is @@ -2336,33 +2379,6 @@ enum tree_index TI_VOID_LIST_NODE, - TI_UV4SF_TYPE, - TI_UV4SI_TYPE, - TI_UV8HI_TYPE, - TI_UV8QI_TYPE, - TI_UV4HI_TYPE, - TI_UV2HI_TYPE, - TI_UV2SI_TYPE, - TI_UV2SF_TYPE, - TI_UV2DI_TYPE, - TI_UV1DI_TYPE, - TI_UV16QI_TYPE, - - TI_V4SF_TYPE, - TI_V16SF_TYPE, - TI_V4SI_TYPE, - TI_V8HI_TYPE, - TI_V8QI_TYPE, - TI_V4HI_TYPE, - TI_V2HI_TYPE, - TI_V2SI_TYPE, - TI_V2SF_TYPE, - TI_V2DF_TYPE, - TI_V2DI_TYPE, - TI_V1DI_TYPE, - TI_V16QI_TYPE, - TI_V4DF_TYPE, - TI_MAIN_IDENTIFIER, TI_MAX @@ -2438,31 +2454,6 @@ extern GTY(()) tree global_trees[TI_MAX]; #define main_identifier_node global_trees[TI_MAIN_IDENTIFIER] #define MAIN_NAME_P(NODE) (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node) -#define unsigned_V16QI_type_node global_trees[TI_UV16QI_TYPE] -#define unsigned_V4SI_type_node global_trees[TI_UV4SI_TYPE] -#define unsigned_V8QI_type_node global_trees[TI_UV8QI_TYPE] -#define unsigned_V8HI_type_node global_trees[TI_UV8HI_TYPE] -#define unsigned_V4HI_type_node global_trees[TI_UV4HI_TYPE] -#define unsigned_V2HI_type_node global_trees[TI_UV2HI_TYPE] -#define unsigned_V2SI_type_node global_trees[TI_UV2SI_TYPE] -#define unsigned_V2DI_type_node global_trees[TI_UV2DI_TYPE] -#define unsigned_V1DI_type_node global_trees[TI_UV1DI_TYPE] - -#define V16QI_type_node global_trees[TI_V16QI_TYPE] -#define V4SF_type_node global_trees[TI_V4SF_TYPE] -#define V4SI_type_node global_trees[TI_V4SI_TYPE] -#define V8QI_type_node global_trees[TI_V8QI_TYPE] -#define V8HI_type_node global_trees[TI_V8HI_TYPE] -#define V4HI_type_node global_trees[TI_V4HI_TYPE] -#define V2HI_type_node global_trees[TI_V2HI_TYPE] -#define V2SI_type_node global_trees[TI_V2SI_TYPE] -#define V2SF_type_node global_trees[TI_V2SF_TYPE] -#define V2DI_type_node global_trees[TI_V2DI_TYPE] -#define V2DF_type_node global_trees[TI_V2DF_TYPE] -#define V16SF_type_node global_trees[TI_V16SF_TYPE] -#define V1DI_type_node global_trees[TI_V1DI_TYPE] -#define V4DF_type_node global_trees[TI_V4DF_TYPE] - /* An enumeration of the standard C integer types. These must be ordered so that shorter types appear before longer ones, and so that signed types appear before unsigned ones, for the correct @@ -2671,6 +2662,8 @@ extern tree build_pointer_type_for_mode (tree, enum machine_mode); extern tree build_pointer_type (tree); extern tree build_reference_type_for_mode (tree, enum machine_mode); extern tree build_reference_type (tree); +extern tree build_vector_type_for_mode (tree, enum machine_mode); +extern tree build_vector_type (tree innertype, int nunits); extern tree build_type_no_quals (tree); extern tree build_index_type (tree); extern tree build_index_2_type (tree, tree); @@ -2783,6 +2776,10 @@ enum attribute_flags name indicates known behavior, and should be silently ignored if they are not in fact compatible with the function type. */ ATTR_FLAG_BUILT_IN = 16 + /* APPLE LOCAL begin weak_import (Radar 2809704) ilr */ + /* The attributes are being applied to a function definition. */ + ,ATTR_FLAG_FUNCTION_DEF = 16 + /* APPLE LOCAL end weak_import ilr */ }; /* Default versions of target-overridable functions. */ @@ -3626,6 +3623,13 @@ enum tree_dump_index TDI_dot, /* create a dot graph file for each function's flowgraph. */ TDI_xml, /* dump function call graph. */ + /* APPLE LOCAL begin new tree dump */ + TDI_dmp_tu, /* dmp the whole translation unit */ + TDI_dmp_class, /* dmp class hierarchy */ + TDI_dmp_original, /* dmp each function before optimizing it */ + TDI_dmp_optimized, /* dmp each function after optimizing it */ + TDI_dmp_inlined, /* dmp each function after inlining within it */ + /* APPLE LOCAL end new tree dump */ TDI_all, /* enable all the dumps. */ TDI_end }; @@ -3644,7 +3648,8 @@ enum tree_dump_index #define TDF_VOPS (1 << 6) /* display virtual operands */ #define TDF_LINENO (1 << 7) /* display statement line numbers */ #define TDF_UID (1 << 8) /* display decl UIDs */ - +/* APPLE LOCAL new tree dump ilr */ +#define TDF_DMP_TREE (1 << 9) /* use dmp_tree() to display nodes */ typedef struct dump_info *dump_info_p; |