diff options
author | Nathan Sidwell <nathan@gcc.gnu.org> | 2017-10-11 15:33:51 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2017-10-11 15:33:51 +0000 |
commit | 4e7d02606ea8b0dac11887b1f759ea61d5394d86 (patch) | |
tree | d02ed206b4fdcfc4796f611f2578941e141fa903 /gcc | |
parent | 64766e8dc78b92fc906e21429b1befd2b248f96e (diff) | |
download | gcc-4e7d02606ea8b0dac11887b1f759ea61d5394d86.zip gcc-4e7d02606ea8b0dac11887b1f759ea61d5394d86.tar.gz gcc-4e7d02606ea8b0dac11887b1f759ea61d5394d86.tar.bz2 |
[PATCH] DECL_ASSEMBLER_NAME and friends
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html
* tree.h (DECL_ASSEMBLER_NAME_RAW): New.
(SET_DECL_ASSEMBLER_NAME): Use it.
(DECL_ASSEMBLER_NAME_SET_P): Likewise.
(COPY_DECL_ASSEMBLER_NAME): Likewise.
* tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
lto/
* lto.c (mentions_vars_p_decl_with_vis): Use
DECL_ASSEMBLER_NAME_RAW.
(lto_fixup_prevailing_decls): Likewise.
cp
* decl2.c (struct mangled_decl_hash): Use DECL_ASSEMBLER_NAME_RAW.
(record_mangling): Likewise.
From-SVN: r253647
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 8 | ||||
-rw-r--r-- | gcc/lto/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto/lto.c | 4 | ||||
-rw-r--r-- | gcc/tree.c | 2 | ||||
-rw-r--r-- | gcc/tree.h | 13 |
7 files changed, 36 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d09e10..273f561 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2017-10-11 Nathan Sidwell <nathan@acm.org> + + * tree.h (DECL_ASSEMBLER_NAME_RAW): New. + (SET_DECL_ASSEMBLER_NAME): Use it. + (DECL_ASSEMBLER_NAME_SET_P): Likewise. + (COPY_DECL_ASSEMBLER_NAME): Likewise. + * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW. + 2017-10-11 Jan Hubicka <hubicka@ucw.cz> * config.gcc (i386, x86_64): Add extra objects. @@ -221,8 +229,9 @@ 2017-10-10 Jan Hubicka <hubicka@ucw.cz> - * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, X86_TUNE_ADJUST_UNROLL, - X86_TUNE_ONE_IF_CONV_INSN): Move to right spot in the file. + * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, + X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right + spot in the file. 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org> diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c0ca1f8..611742d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2017-10-11 Nathan Sidwell <nathan@acm.org> + + * decl2.c (struct mangled_decl_hash): Use DECL_ASSEMBLER_NAME_RAW. + (record_mangling): Likewise. + 2017-10-10 Nathan Sidwell <nathan@acm.org> * name-lookup.c (extern_c_fns): Rename to ... diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 3c93d5c..bc50962 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -103,7 +103,7 @@ static GTY(()) vec<tree, va_gc> *no_linkage_decls; static GTY(()) vec<tree, va_gc> *mangling_aliases; /* hash traits for declarations. Hashes single decls via - DECL_ASSEMBLER_NAME. */ + DECL_ASSEMBLER_NAME_RAW. */ struct mangled_decl_hash : ggc_remove <tree> { @@ -112,11 +112,11 @@ struct mangled_decl_hash : ggc_remove <tree> static hashval_t hash (const value_type decl) { - return IDENTIFIER_HASH_VALUE (DECL_ASSEMBLER_NAME (decl)); + return IDENTIFIER_HASH_VALUE (DECL_ASSEMBLER_NAME_RAW (decl)); } static bool equal (const value_type existing, compare_type candidate) { - tree name = DECL_ASSEMBLER_NAME (existing); + tree name = DECL_ASSEMBLER_NAME_RAW (existing); return candidate == name; } @@ -4399,7 +4399,7 @@ record_mangling (tree decl, bool need_warning) mangled_decls = hash_table<mangled_decl_hash>::create_ggc (499); gcc_checking_assert (DECL_ASSEMBLER_NAME_SET_P (decl)); - tree id = DECL_ASSEMBLER_NAME (decl); + tree id = DECL_ASSEMBLER_NAME_RAW (decl); tree *slot = mangled_decls->find_slot_with_hash (id, IDENTIFIER_HASH_VALUE (id), INSERT); diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index fef0f9c..3e6b00b 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2017-10-11 Nathan Sidwell <nathan@acm.org> + + * lto.c (mentions_vars_p_decl_with_vis): Use + DECL_ASSEMBLER_NAME_RAW. + (lto_fixup_prevailing_decls): Likewise. + 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org> * lto.c (compare_tree_sccs_1): Use wi::to_wide when diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index cc36851..63ba73c 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -591,7 +591,7 @@ mentions_vars_p_decl_with_vis (tree t) return true; /* Accessor macro has side-effects, use field-name here. */ - CHECK_NO_VAR (t->decl_with_vis.assembler_name); + CHECK_NO_VAR (DECL_ASSEMBLER_NAME_RAW (t)); return false; } @@ -2557,7 +2557,7 @@ lto_fixup_prevailing_decls (tree t) } if (CODE_CONTAINS_STRUCT (code, TS_DECL_WITH_VIS)) { - LTO_NO_PREVAIL (t->decl_with_vis.assembler_name); + LTO_NO_PREVAIL (DECL_ASSEMBLER_NAME_RAW (t)); } if (CODE_CONTAINS_STRUCT (code, TS_DECL_NON_COMMON)) { @@ -671,7 +671,7 @@ decl_assembler_name (tree decl) { if (!DECL_ASSEMBLER_NAME_SET_P (decl)) lang_hooks.set_decl_assembler_name (decl); - return DECL_WITH_VIS_CHECK (decl)->decl_with_vis.assembler_name; + return DECL_ASSEMBLER_NAME_RAW (decl); } /* When the target supports COMDAT groups, this indicates which group the @@ -2721,6 +2721,10 @@ extern void decl_value_expr_insert (tree, tree); LTO compilation and C++. */ #define DECL_ASSEMBLER_NAME(NODE) decl_assembler_name (NODE) +/* Raw accessor for DECL_ASSEMBLE_NAME. */ +#define DECL_ASSEMBLER_NAME_RAW(NODE) \ + (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.assembler_name) + /* Return true if NODE is a NODE that can contain a DECL_ASSEMBLER_NAME. This is true of all DECL nodes except FIELD_DECL. */ #define HAS_DECL_ASSEMBLER_NAME_P(NODE) \ @@ -2731,11 +2735,11 @@ extern void decl_value_expr_insert (tree, tree); yet. */ #define DECL_ASSEMBLER_NAME_SET_P(NODE) \ (HAS_DECL_ASSEMBLER_NAME_P (NODE) \ - && DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.assembler_name != NULL_TREE) + && DECL_ASSEMBLER_NAME_RAW (NODE) != NULL_TREE) /* Set the DECL_ASSEMBLER_NAME for NODE to NAME. */ #define SET_DECL_ASSEMBLER_NAME(NODE, NAME) \ - (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.assembler_name = (NAME)) + (DECL_ASSEMBLER_NAME_RAW (NODE) = (NAME)) /* Copy the DECL_ASSEMBLER_NAME from DECL1 to DECL2. Note that if DECL1's DECL_ASSEMBLER_NAME has not yet been set, using this macro will not cause @@ -2747,10 +2751,7 @@ extern void decl_value_expr_insert (tree, tree); which will try to set the DECL_ASSEMBLER_NAME for DECL1. */ #define COPY_DECL_ASSEMBLER_NAME(DECL1, DECL2) \ - (DECL_ASSEMBLER_NAME_SET_P (DECL1) \ - ? (void) SET_DECL_ASSEMBLER_NAME (DECL2, \ - DECL_ASSEMBLER_NAME (DECL1)) \ - : (void) 0) + SET_DECL_ASSEMBLER_NAME (DECL2, DECL_ASSEMBLER_NAME_RAW (DECL1)) /* Records the section name in a section attribute. Used to pass the name from decl_attributes to make_function_rtl and make_decl_rtl. */ |