varasm.c (mark_decl_referenced): Revert the removal until targets are fixed.
* varasm.c (mark_decl_referenced): Revert the removal until targets are fixed. From-SVN: r199699
This commit is contained in:
parent
8f8a20576a
commit
0378bddb9a
|
@ -1,3 +1,8 @@
|
|||
2013-06-05 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* varasm.c (mark_decl_referenced): Revert the removal until targets
|
||||
are fixed.
|
||||
|
||||
2013-06-05 David Edelsohn <dje.gcc@gmail.com>
|
||||
|
||||
* config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
|
||||
|
@ -31,7 +36,6 @@
|
|||
(function_and_variable_visibility): Clear forced_by_abi as needed.
|
||||
* trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
|
||||
(ipa_tm_create_version_alias, ipa_tm_create_version): Update.
|
||||
* varasm.c (mark_decl_referenced): Remove.
|
||||
* symtab.c (dump_symtab_base): Dump forced_by_abi.
|
||||
* varpool.c (decide_is_variable_needed): Remove.
|
||||
|
||||
|
|
27
gcc/varasm.c
27
gcc/varasm.c
|
@ -2244,6 +2244,33 @@ mark_referenced (tree id)
|
|||
TREE_SYMBOL_REFERENCED (id) = 1;
|
||||
}
|
||||
|
||||
/* Set the symbol_referenced flag for DECL and notify callgraph. */
|
||||
void
|
||||
mark_decl_referenced (tree decl)
|
||||
{
|
||||
if (TREE_CODE (decl) == FUNCTION_DECL)
|
||||
{
|
||||
/* Extern inline functions don't become needed when referenced.
|
||||
If we know a method will be emitted in other TU and no new
|
||||
functions can be marked reachable, just use the external
|
||||
definition. */
|
||||
struct cgraph_node *node = cgraph_get_create_node (decl);
|
||||
if (!DECL_EXTERNAL (decl)
|
||||
&& !node->symbol.definition)
|
||||
cgraph_mark_force_output_node (node);
|
||||
}
|
||||
else if (TREE_CODE (decl) == VAR_DECL)
|
||||
{
|
||||
struct varpool_node *node = varpool_node_for_decl (decl);
|
||||
/* C++ frontend use mark_decl_references to force COMDAT variables
|
||||
to be output that might appear dead otherwise. */
|
||||
node->symbol.force_output = true;
|
||||
}
|
||||
/* else do nothing - we can get various sorts of CST nodes here,
|
||||
which do not need to be marked. */
|
||||
}
|
||||
|
||||
|
||||
/* Follow the IDENTIFIER_TRANSPARENT_ALIAS chain starting at *ALIAS
|
||||
until we find an identifier that is not itself a transparent alias.
|
||||
Modify the alias passed to it by reference (and all aliases on the
|
||||
|
|
Loading…
Reference in New Issue