Thread overview
D at FOSDEM this weekend
Feb 03, 2017
David Nadlinger
Feb 04, 2017
Johan Engelen
Feb 04, 2017
Matthias Klumpp
Feb 07, 2017
Johan Engelen
Feb 07, 2017
Johan Engelen
Feb 07, 2017
Johan Engelen
February 03, 2017
Hi all,

This year's FOSDEM is taking place Saturday–Sunday in Brussels (registration-less open source software event).

Any D heads in the area? Kai Nacke is going to give a talk on PGO in LDC in the LLVM dev room [1], and I'll also be around.

 — David


[1] https://fosdem.org/2017/schedule/event/ldc_d_optimization/
February 04, 2017
On Friday, 3 February 2017 at 06:59:32 UTC, David Nadlinger wrote:
> Hi all,
>
> This year's FOSDEM is taking place Saturday–Sunday in Brussels (registration-less open source software event).
>
> Any D heads in the area? Kai Nacke is going to give a talk on PGO in LDC in the LLVM dev room [1], and I'll also be around.

I am not there :/

Have fun!
February 04, 2017
On Friday, 3 February 2017 at 06:59:32 UTC, David Nadlinger wrote:
> Hi all,
>
> This year's FOSDEM is taking place Saturday–Sunday in Brussels (registration-less open source software event).
>
> Any D heads in the area? Kai Nacke is going to give a talk on PGO in LDC in the LLVM dev room [1], and I'll also be around.

Too bad that I am not there this year :( (first FOSDEM to miss in a while).
Would have been nice to meet!

Enjoy the conference and the Belgian beer!
February 07, 2017
On Friday, 3 February 2017 at 06:59:32 UTC, David Nadlinger wrote:
> 
> Kai Nacke is going to give a talk on PGO in LDC in the LLVM dev room [1], and I'll also be around.

How did it go?

- Johan
February 07, 2017
On Tuesday, 7 February 2017 at 16:57:26 UTC, Johan Engelen wrote:
> On Friday, 3 February 2017 at 06:59:32 UTC, David Nadlinger wrote:
>> 
>> Kai Nacke is going to give a talk on PGO in LDC in the LLVM dev room [1], and I'll also be around.
>
> How did it go?

A recording of Kai's talk is online here: https://fosdem.org/2017/schedule/event/ldc_d_optimization/
February 07, 2017
On Tuesday, 7 February 2017 at 17:05:48 UTC, Johan Engelen wrote:
>
> A recording of Kai's talk is online here: https://fosdem.org/2017/schedule/event/ldc_d_optimization/

Thanks for a nice talk Kai :-)

(please excuse the thread steal)
Some additional answers to the questions raised:

- Using LLVM IR PGO, instead of front-end PGO
Yep... I think frontend PGO is doomed... sad :/ calculating statement execution counts from a minimal set of counters was nice to work on and interesting code. VCP can be done by the backend too (and IIRC _is_ already done) if it has access to vtables, etc. To enable backend VCP, I believe clang emits a little bit extra (e.g. vtables) to IR where it is not needed otherwise. With LTO, the backend already has all the info it needs.
Performance-wise, the IR PGO should result in a better profile as it can profile optimized code which can be hugely different from non-optimized code (inlining!!!).
At the very least, we now have the PGO infrastructure ready and can easily provide an IR PGO flag (and should soon!).  When Clang/LLVM/LDC versions are in-sync, this should give us cross-language LTO+PGO. (^_^)

- Memory alloc call profiling
Something related in progress in LLVM: https://reviews.llvm.org/D28965

-Johan