[RFC] Using function clones for Pointer Bounds Checker

Ilya Enkovich enkovich.gnu@gmail.com
Wed May 14 08:18:00 GMT 2014


2014-05-13 23:21 GMT+04:00 Jeff Law <law@redhat.com>:
> On 05/13/14 02:38, Ilya Enkovich wrote:
>>>>
>>>> propagate constant bounds value and remove checks in called function).
>>>
>>>
>>> So from a linking standpoint, presumably you have to mangle the
>>> instrumented
>>> caller/callee in some manner.  Right?  Or are you dynamically dispatching
>>> somehow?
>>
>>
>> Originally the idea was o have instrumented clone to have the same
>> assembler name as the original function. Since instrumented code is
>> fully compatible with not instrumented code, we always emit only one
>> version. Usage of the same assembler name allows instrumented and not
>> instrumented calls to look similar in assembler. It worked fine until
>> I tried it with LTO where assembler name is used as a unique
>> identifier. With linker resolutions files it became even more harder
>> to use such approach. To resolve these issues I started to use new
>> assembler name with postfix, but linked with the original name using
>> IDENTIFIER_TRANSPARENT_ALIAS. It gives different assembler names for
>> clones and originals during compilation, but both clone and original
>> functions have similar name in output assembler.
>
> OK.  So if I read that correctly, it implies that the existence of bounds
> information does not change the signature of the callee.   This is obviously
> important for C++.
>
> Sounds like I need to sit down with the branch and see how this works in the
> new scheme.

Both mpx branch and Wiki
(http://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler)
page are up-to-date now and may be tried out either in NOP mode or
with simulator. Let me know if you have any troubles with using it.

Ilya

>
> jeff



More information about the Gcc-patches mailing list