From 19322a8706b14dd29f2a8ac925e32356ca6d3112 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 16 May 2016 21:33:02 +0200 Subject: [PATCH] ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig into instrumentation thunks. * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig into instrumentation thunks. * cif-code.def (CIF_CHKP): New. From-SVN: r236299 --- gcc/ChangeLog | 6 ++++++ gcc/cif-code.def | 4 ++++ gcc/ipa-inline-analysis.c | 8 +++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index db88e2864f0..170333157c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-05-16 Jan Hubicka + + * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig + into instrumentation thunks. + * cif-code.def (CIF_CHKP): New. + 2016-05-16 Uros Bizjak * config/i386/xopintrin.h: Correct "unsinged" typo in the comments. diff --git a/gcc/cif-code.def b/gcc/cif-code.def index 196151fe8d2..b5e019ffb7b 100644 --- a/gcc/cif-code.def +++ b/gcc/cif-code.def @@ -135,3 +135,7 @@ DEFCIFCODE(CILK_SPAWN, CIF_FINAL_ERROR, /* We proved that the call is unreachable. */ DEFCIFCODE(UNREACHABLE, CIF_FINAL_ERROR, N_("unreachable")) + +/* We can't inline because of instrumentation thunk. */ +DEFCIFCODE(CHKP, CIF_FINAL_ERROR, + N_("caller is instrumetnation thunk")) diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 82d1774abcb..8b5ca86c0d6 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -2943,7 +2943,13 @@ compute_inline_parameters (struct cgraph_node *node, bool early) info->self_size = info->size; info->self_time = info->time; /* We can not inline instrumetnation clones. */ - info->inlinable = !node->thunk.add_pointer_bounds_args; + if (node->thunk.add_pointer_bounds_args) + { + info->inlinable = false; + node->callees->inline_failed = CIF_CHKP; + } + else + info->inlinable = true; } else {