aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cif-code.def4
-rw-r--r--gcc/ipa-inline-analysis.c8
3 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index db88e28..1703331 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-05-16 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
+ into instrumentation thunks.
+ * cif-code.def (CIF_CHKP): New.
+
2016-05-16 Uros Bizjak <ubizjak@gmail.com>
* config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
diff --git a/gcc/cif-code.def b/gcc/cif-code.def
index 196151f..b5e019f 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 82d1774..8b5ca86 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
{