Re: GCC options for kernel live-patching (Was: Add a new option to control inlining only on static functions)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, Oct 03 2018, Jan Hubicka wrote:
>> 
>> That was promised to be done by Honza Hubička. He's very skilled in IPA optimizations and he's aware
>> of optimizations that cause troubles for live-patching.
>
> :) I am not sure how skilful I am, but here is what I arrived to.
>
>  We have transformations that are modeled as clonning, which are
>   - inlining  (can't be disabled completely because of always inline, but -fno-inline
>     does most of stuff)
>   - cloning (disabled via -fno-ipa-cp)
>   - ipa-sra (-fno-ipa-sra)
>   - splitting (-fno-partial-inlining)
>  These should play well with Martin's tracking code
>
>  We propagate info about side effects of function:
>   - function attribute discovery (pure, const, nothrow, malloc)
>     Some of this can be disabled by -fno-ipa-pure-const, but not all
>     of it.  Nothrow does not have flag but it is obviously not a concern
>     for C++
>   - ipa-pta (disabled by default, -fno-ipa-pta)
>   - ipa-reference (list of accessed/modified global vars), disable by -fno-ipa-refernece
>   - stack alignment requirements (no flag to disable)
>   - inter-procedural register allocation (-fno-ipa-ra)

I was thinking a bit more about this and recalled that not all stuff
that IPA-CP nowadays does involves creating clones, so we have to add
also:
  - -fno-ipa-bit-cp, and
  - -fno-ipa-vrp.

These two just record info in the parameters of *callees* of functions
from which it extracted info, without any cloning involved.  Both were
introduced in GCC 7.

Thanks,

Martin



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux