Profile-Guided Optimization (PGO) is an optimization technique which uses information about the runtime profile of an application. PGO is an area of active development in LLVM. In this talk I discuss how PGO was implemented in LDC, the LLVM-based D compiler, and which speedup the use of PGO can give.
Profile-Guided Optimization (PGO) is an optimization technique which uses information about the runtime profile of an application. The binary of an application is instrumented to collect data like number of times a function is called. This additional information is used to apply advanced optimizations to the application. PGO is an area of active development in LLVM. A recent update of LDC, the LLVM-based D compiler, is able to use PGO. In this talk I discuss which additonal IR code must be generated for PGO and how it was implemented in LDC. I also show the effect of PGO on a test application and the compiler itself.
Speakers: Kai Nacke