summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-13 17:46:21 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-05-13 17:46:21 +0000
commit0b49f8f8e6a6354ca047371ed355830edb5b556d (patch)
tree3884c0ff2e94f7f3453e5f2b7585aa6c80cebf1f
parenta396c3410940208ba03595909137ef5ae52a6f8f (diff)
downloadgcc-0b49f8f8e6a6354ca047371ed355830edb5b556d.tar.gz
* final.c (output_addr_const): Do not call mark_decl_referenced.
* cgraphunit.c (process_function_and_variable_attributes): Use mark_needed_node dirrectly. (assemble_thunk): Do not call mark_decl_referenced. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159370 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cgraphunit.c8
-rw-r--r--gcc/final.c5
3 files changed, 9 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 944989514bc..9a77193f6be 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-05-13 Jan Hubicka <jh@suse.cz>
+
+ * final.c (output_addr_const): Do not call mark_decl_referenced.
+ * cgraphunit.c (process_function_and_variable_attributes): Use
+ mark_needed_node dirrectly.
+ (assemble_thunk): Do not call mark_decl_referenced.
+
2010-05-13 Anatoly Sokolov <aesok@post.ru>
* targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index b97a33e274d..7618dd00743 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -959,11 +959,7 @@ process_function_and_variable_attributes (struct cgraph_node *first,
{
tree decl = node->decl;
if (DECL_PRESERVE_P (decl))
- {
- mark_decl_referenced (decl);
- if (node->local.finalized)
- cgraph_mark_needed_node (node);
- }
+ cgraph_mark_needed_node (node);
if (lookup_attribute ("externally_visible", DECL_ATTRIBUTES (decl)))
{
if (! TREE_PUBLIC (node->decl))
@@ -979,7 +975,6 @@ process_function_and_variable_attributes (struct cgraph_node *first,
tree decl = vnode->decl;
if (DECL_PRESERVE_P (decl))
{
- mark_decl_referenced (decl);
vnode->force_output = true;
if (vnode->finalized)
varpool_mark_needed_node (vnode);
@@ -1602,7 +1597,6 @@ assemble_thunk (struct cgraph_node *node)
cgraph_remove_same_body_alias (node);
/* Since we want to emit the thunk, we explicitly mark its name as
referenced. */
- mark_decl_referenced (thunk_fndecl);
cgraph_add_new_function (thunk_fndecl, true);
bitmap_obstack_release (NULL);
}
diff --git a/gcc/final.c b/gcc/final.c
index 5011b6c5cac..e9c8748c448 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -3529,10 +3529,7 @@ output_addr_const (FILE *file, rtx x)
case SYMBOL_REF:
if (SYMBOL_REF_DECL (x))
- {
- mark_decl_referenced (SYMBOL_REF_DECL (x));
- assemble_external (SYMBOL_REF_DECL (x));
- }
+ assemble_external (SYMBOL_REF_DECL (x));
#ifdef ASM_OUTPUT_SYMBOL_REF
ASM_OUTPUT_SYMBOL_REF (file, x);
#else