Commit f6d1b84a by Richard Henderson Committed by Richard Henderson

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
parent 8daf2e65
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. */
......
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment