diff options
author | chrbr <chrbr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-21 06:42:05 +0000 |
---|---|---|
committer | chrbr <chrbr@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-21 06:42:05 +0000 |
commit | a522e9ebd188d7416aa383227bbd0ff714b79dec (patch) | |
tree | 8dd93dc6abd84a32b62b4e2bfae943c2c673d753 /gcc/ipa-inline-transform.c | |
parent | 03cf39fca19859fc1504deee43dbe3ad4c40a51e (diff) | |
download | gcc-a522e9ebd188d7416aa383227bbd0ff714b79dec.tar.gz |
PR middle-end/49139 fix always_inline diagnostics
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175239 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r-- | gcc/ipa-inline-transform.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c index 2e1375437d5..39c0138956e 100644 --- a/gcc/ipa-inline-transform.c +++ b/gcc/ipa-inline-transform.c @@ -348,8 +348,7 @@ inline_transform (struct cgraph_node *node) { unsigned int todo = 0; struct cgraph_edge *e; - bool inline_p = false; - + /* FIXME: Currently the pass manager is adding inline transform more than once to some clones. This needs revisiting after WPA cleanups. */ if (cfun->after_inlining) @@ -361,20 +360,17 @@ inline_transform (struct cgraph_node *node) save_inline_function_body (node); for (e = node->callees; e; e = e->next_callee) + cgraph_redirect_edge_call_stmt_to_callee (e); + + timevar_push (TV_INTEGRATION); + if (node->callees) { - cgraph_redirect_edge_call_stmt_to_callee (e); - if (!e->inline_failed || warn_inline) - inline_p = true; /* Redirecting edges might lead to a need for vops to be recomputed. */ todo |= TODO_update_ssa_only_virtuals; - } - - if (inline_p) - { - timevar_push (TV_INTEGRATION); todo = optimize_inline_calls (current_function_decl); - timevar_pop (TV_INTEGRATION); } + timevar_pop (TV_INTEGRATION); + cfun->always_inline_functions_inlined = true; cfun->after_inlining = true; return todo | execute_fixup_cfg (); |