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

Reply via email to