diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-30 11:58:01 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-30 11:58:01 +0000 |
commit | 523c1122434af355049edacf489e8da82ee7709d (patch) | |
tree | 4ee7560469c1e50ca7f51f6e50bca995ec5871a0 /gcc/passes.c | |
parent | 311a2fe08784f5d009281ab401fe4f143d4c2825 (diff) | |
download | gcc-523c1122434af355049edacf489e8da82ee7709d.tar.gz |
* cgraph.c (cgraph_exapnd_queue): Rename to...
(cgraph_new_nodes): ... this one.
(cgraph_state): New global variable.
(cgraph_add_new_function): Work in more cases.
* cgraph.h (cgraph_expand_queue): Rename to ...
(cgraph_new_nodes): ... this one.
(cgraph_state): New enum and static variable.
(cgraph_add_new_function): Update prototype.
(cgraph_process_new_functions): New.
* omp-low.c (expand_omp_parallel): Update.
* cgraphunit.c (initialize_inline_failed): Declare early.
(cgraph_process_new_functions): New function.
(cgraph_assemble_pending_functions): Use it.
(cgraph_expand_all_functions): Use it.
(cgraph_optimize): Use it; set cgraph_state.
* passes.c (execute_one_pass, execute_ipa_pass_list): Process new
functions
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120282 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 38c95cdaf2b..458842163bc 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -947,6 +947,9 @@ execute_one_pass (struct tree_opt_pass *pass) /* Run post-pass cleanup and verification. */ execute_todo (todo_after | pass->todo_flags_finish); + if (!current_function_decl) + cgraph_process_new_functions (); + /* Flush and close dump file. */ if (dump_file_name) { @@ -986,6 +989,8 @@ execute_ipa_pass_list (struct tree_opt_pass *pass) gcc_assert (!cfun); if (execute_one_pass (pass) && pass->sub) do_per_function ((void (*)(void *))execute_pass_list, pass->sub); + if (!current_function_decl) + cgraph_process_new_functions (); pass = pass->next; } while (pass); |