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