Hi,
this patch fixes chkp ICE when we try to inline into an instrumentation thunk.
This is not really a thunk and ths can't be hanled as such.

Bootstrapped/regtested x86_64-linux

Honza

2016-05-16  Jan Hubicka  <hubi...@ucw.cz>

        * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
        into instrumentation thunks.
        * cif-code.def (CIF_CHKP): New.

Index: ipa-inline-analysis.c
===================================================================
--- ipa-inline-analysis.c       (revision 236275)
+++ ipa-inline-analysis.c       (working copy)
@@ -2943,7 +2943,13 @@ compute_inline_parameters (struct cgraph
       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
     {
Index: cif-code.def
===================================================================
--- cif-code.def        (revision 236275)
+++ cif-code.def        (working copy)
@@ -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"))

Reply via email to