This is the mail archive of the 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: How to check if two symbols are from same source unit during WPA ?

On Thu, 14 Apr 2016, Ramana Radhakrishnan wrote:

> > 
> > What happens in practice?  GCC doesn't put functions in random
> > partitions.
> > 
> The data goes into a separate partition AFAIU - it means that all data 
> accesses are as though they are extern references which means there's 
> not necessarily any CSE'ing ability that's available with section 
> anchors.

No, they are added to partitions referencing them.  Actually they
end up in the first partition that references them.

> >> If it's not desired by default could we gate it on an option ?
> >> AFIAU, section anchors optimization is important for ARM and AArch64.
> > 
> > For code size or for performance?  I wonder why section anchors cannot
> > be "implemented" using some special relocations and thus as linker
> > optimization.
> For performance (and probably code size too) as you can end up CSE'ing 
> the anchor point. the difference in performance with -flto-partitions=1 
> is visible on quite a few of the spec2k benchmarks. I don't remember 
> which ones immediately but yeah it makes a difference.

Yeah, as said elsewhere for things like spec2k we should have been
less aggressive with the goal to parallelize and build larger
partitions for small programs.  Thus increase lto-min-partition
up to a point where all benchmarks end up in a single partition
(small benchmarks, so spec2k6 doesn't count at all).  After all
our inlining limits only start with large-unit-insns as well,
which is 10 times of lto-min-partition...


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