aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline-transform.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-03-26 20:54:44 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-03-26 19:54:44 +0000
commit5058c037581a2015d2e2ea86c50628dcde72f646 (patch)
treeff4f08f1aba0f9a9dd96795eaa4ede3df6b92be8 /gcc/ipa-inline-transform.c
parent082276588e742c74af0216ae824b112b8ec7bb97 (diff)
downloadgcc-5058c037581a2015d2e2ea86c50628dcde72f646.zip
gcc-5058c037581a2015d2e2ea86c50628dcde72f646.tar.gz
gcc-5058c037581a2015d2e2ea86c50628dcde72f646.tar.bz2
ipa-inline-analysis.c (redirect_to_unreachable): New function.
* ipa-inline-analysis.c (redirect_to_unreachable): New function. (edge_set_predicate): Use it to mark unreachable edges. (inline_summary_t::duplicate): Remove unnecesary code. (remap_edge_summaries): Likewise. (dump_inline_summary): Report contains_cilk_spawn. (compute_inline_parameters): Compute contains_cilk_spawn. (inline_read_section, inline_write_summary): Stream contains_cilk_spawn. * ipa-inline.c (can_inline_edge_p): Do not tuch DECL_STRUCT_FUNCTION that may not be available; use CIF_CILK_SPAWN for cilk; fix optimization attribute checks; remove check for callee_fun->can_throw_non_call_exceptions and replace it by optimization attribute check; check for flag_exceptions. * ipa-inline-transform.c (inline_call): Maintain DECL_FUNCTION_PERSONALITY * ipa-inline.h (inline_summary): Add contains_cilk_spawn. From-SVN: r221706
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r--gcc/ipa-inline-transform.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c
index 43bb41f..952659c 100644
--- a/gcc/ipa-inline-transform.c
+++ b/gcc/ipa-inline-transform.c
@@ -322,6 +322,10 @@ inline_call (struct cgraph_edge *e, bool update_original,
if (to->global.inlined_to)
to = to->global.inlined_to;
+ if (DECL_FUNCTION_PERSONALITY (callee->decl))
+ DECL_FUNCTION_PERSONALITY (to->decl)
+ = DECL_FUNCTION_PERSONALITY (callee->decl);
+
/* If aliases are involved, redirect edge to the actual destination and
possibly remove the aliases. */
if (e->callee != callee)