[CHKP] Never expand instrumentation thunks

Ilya Enkovich enkovich.gnu@gmail.com
Fri Apr 3 08:58:00 GMT 2015


2015-04-03 0:13 GMT+03:00 Jan Hubicka <hubicka@ucw.cz>:
>> On 04/02/2015 02:11 PM, Jan Hubicka wrote:
>> >>>2015-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
>> >>>
>> >>>         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
>> >>>         instrumentation thunks.
>> >>>
>> >>>
>> >>>diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
>> >>>index e640907..abc9cfe 100644
>> >>>--- a/gcc/cgraphunit.c
>> >>>+++ b/gcc/cgraphunit.c
>> >>>@@ -1508,6 +1508,10 @@ cgraph_node::expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)
>> >>>    tree thunk_fndecl = decl;
>> >>>    tree a;
>> >>>
>> >>>+  /* Instrumentation thunk is the same function with
>> >>>+     a different signature.  Never need to expand it.  */
>> >>>+  if (thunk.add_pointer_bounds_args)
>> >>>+    return false;
>> >
>> >Yeah, this is another case where we hit problem with transparent alias pretending
>> >to be thunk :)
>> >I guess the patch is OK for GCC-5 and for next stage1 we can clean this up.
>> I was actually building a compiler so I could take a look at this
>> one under a debugger ;-)
>
> I think it is really the transparent alias issue.  The comment seems pretty clear about it.
> What is confusing is that instrumentation thunks are called thunks when they are
> really not - thunk is a small hunk of code, while instrumentation thunk is a transparent
> alias.
>
> Too bad I did not notice we introduced transparent aliases, i would push out my
> code for that. I will compare Ilya's changes with mine and hopefully we can
> catch more bugs and unify the code next stage1.

Thunk was the best I could find to represent the same function but
with different signature. It would be great to have a more specialized
way for that.

Thanks,
Ilya

>
> Honza



More information about the Gcc-patches mailing list