cgraphunit.c (cgraph_assemble_pending_functions): Export.
* cgraphunit.c (cgraph_assemble_pending_functions): Export. (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check. * cgraph.h: Update. * decl2.c (finish_file): Check cgraph_assemble_pending_functions during relaxation loop. From-SVN: r71360
This commit is contained in:
parent
8daf2e6526
commit
f6d1b84aa4
@ -1,4 +1,11 @@
|
||||
2003-09-13 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* cgraphunit.c (cgraph_assemble_pending_functions): Export.
|
||||
(cgraph_finalize_function): Revert TREE_ASM_WRITTEN check.
|
||||
* cgraph.h: Update.
|
||||
|
||||
2003-09-12 Dale Johannesen <dalej@apple.com>
|
||||
|
||||
* config/rs6000/rs6000.c: Fix typos in previous.
|
||||
|
||||
2003-09-12 Ziemowit Laski <zlaski@apple.com>
|
||||
|
@ -168,6 +168,7 @@ void cgraph_varpool_finalize_decl (tree);
|
||||
bool cgraph_varpool_assemble_pending_decls (void);
|
||||
|
||||
/* In cgraphunit.c */
|
||||
bool cgraph_assemble_pending_functions (void);
|
||||
void cgraph_finalize_function (tree, bool);
|
||||
void cgraph_finalize_compilation_unit (void);
|
||||
void cgraph_create_edges (tree, tree);
|
||||
|
@ -122,7 +122,8 @@ decide_is_function_needed (struct cgraph_node *node, tree decl)
|
||||
|
||||
/* When not doing unit-at-a-time, output all functions enqueued.
|
||||
Return true when such a functions were found. */
|
||||
static bool
|
||||
|
||||
bool
|
||||
cgraph_assemble_pending_functions (void)
|
||||
{
|
||||
bool output = false;
|
||||
@ -136,9 +137,12 @@ cgraph_assemble_pending_functions (void)
|
||||
|
||||
cgraph_nodes_queue = cgraph_nodes_queue->next_needed;
|
||||
if (!n->origin && !DECL_EXTERNAL (n->decl))
|
||||
cgraph_expand_function (n);
|
||||
output = true;
|
||||
{
|
||||
cgraph_expand_function (n);
|
||||
output = true;
|
||||
}
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
@ -164,7 +168,13 @@ cgraph_finalize_function (tree decl, bool nested)
|
||||
??? It may make more sense to use one body for inlining and other
|
||||
body for expanding the function but this is dificult to do. */
|
||||
|
||||
if (TREE_ASM_WRITTEN (decl))
|
||||
/* If node->output is set, then this is a unit-at-a-time compilation
|
||||
and we have already begun whole-unit analysis. This is *not*
|
||||
testing for whether we've already emitted the function. That
|
||||
case can be sort-of legitimately seen with real function
|
||||
redefinition errors. I would argue that the front end should
|
||||
never present us with such a case, but don't enforce that for now. */
|
||||
if (node->output)
|
||||
abort ();
|
||||
|
||||
/* Reset our datastructures so we can analyze the function again. */
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-09-13 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* decl2.c (finish_file): Check cgraph_assemble_pending_functions
|
||||
during relaxation loop.
|
||||
|
||||
2003-09-11 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* decl2.c (var_finalized_p): Swap arms of conditional.
|
||||
|
@ -2863,6 +2863,9 @@ finish_file ()
|
||||
&& wrapup_global_declarations (&VARRAY_TREE (pending_statics, 0),
|
||||
pending_statics_used))
|
||||
reconsider = true;
|
||||
|
||||
if (cgraph_assemble_pending_functions ())
|
||||
reconsider = true;
|
||||
}
|
||||
while (reconsider);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user