ThinLTO is there. I think that should settle the final/virtual debate
angel via Digitalmars-d
digitalmars-d at puremagic.com
Sun Dec 4 02:36:30 PST 2016
On Sunday, 4 December 2016 at 01:36:50 UTC, deadalnix wrote:
> First, presentation:
> https://www.youtube.com/watch?v=9OIEZAj243g
>
> Some of this is available in LLVM today, and everything
> presented here will be in 4.0 . The long story short: ThinLTO
> can do most of what LTO does but with a price that is much
> closer to the one of a regular build than the one of a classic
> LTO build.
>
> LTO optimization can devirtualize all function that do not need
> to be virtual, and even use profile infos to speculatively
> devirtualize - aka JVM grade devirtualization.
>
> I would love to see this leveraged to finally put to rest the
> final vs virtual debate. If we use this tech properly,
> everything that do not need to be virtual can be finalized -
> except across shared object, which shouldn't be too much of an
> issue in practice.
IMHO it was always obvious that the proper way is
"devirtualization" within compiler optimization process. The
distinction between virtual and non-virtual methods is a break-in
into optimization domain, which should be "transparent" to the
developer. From the developer's POV, the correct semantics is
when each method is virtual.
More information about the Digitalmars-d
mailing list