This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Inlines, LTO and GCC


> 
> But then inlining / cloning is no longer cheap, no?  And will be
> disabled at -O2?

If you declare it "inline" and not "static inline" it will be inlined pretty
much as before, only it will get unified if it ends up out of line in multiple
units.  

Main difference in between static and non-static is in logic deciding when
inlining into all callers will lead to removing the offline copy from the
program.  This is controlable by comdat-sharing-probability parameter.

We won't clone at -O2 unless we know code will shrink that may be something to
revisit.  I think it would be resonable to enable clonning at -O2 for functions
declared inline.

I was also playing with idea adding a GCC decision to function mangling, so
comdat clones can be inlined.  I.e. having something like
mangled_foo->mangled_foo.__gcc_cprop_clone.arg0_0.arg1_17 It would need to
invent unique textual representations of all/most our substitutions that can
get tricky.

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]