The second phase can be known as the training phase. Note that the executable is bloated due to the probes. pgd file will be created with the executable this is a database file that will be used in later phases. The Backend Compiler will then inserts probe instructions wherever it is necessary. Cl.exe foo.cpp /GL) and passes the modules to the C/C++ Backend Compiler. With the instrumental phase, the linker takes the cil files (these are produced by the frontend compiler with /GL flag, eg. The first phase can be known as the instrumental phase (see figure 1). In a nutshell, PGO is optimizations based on user scenarios whereas static optimizations rely on the source file structure. Profiling is the process of gathering information of how the program is used during runtime. PGO is an approach to optimization where the compiler uses profile information to make better optimization decisions for the program. In this blog I will give a description of what PGO is, how it will improve your application and how to use it. The tool is available for Microsoft Visual C/C++ 2005 and up. For today’s topic I want to blog about a pretty cool compiler optimization called Profile Guided Optimization (PGO or Pogo as we in the C/C++ team would like to call it). My name is Lawrence Joel and I am a Software Developer Engineer in Testing working with the C/C++ Backend Compiler group. Pogo aka PGO aka Profile Guided Optimization
0 Comments
Leave a Reply. |