

In VS 2017 and prior, most vector operations would go through the main optimizer without any special handling, similar to function calls, although they are represented as intrinsics – special functions known to the compiler. One of the most significant improvements in the code optimizer is handling of vector (SIMD) intrinsics, both from source code and as a result of automated vectorization. More details and additional benchmarks can be found in this blog post. The table below shows the speedup measured in linking a large, popular AAA game: Speed up type merging by using a fast hash function to identify identical types.Type pruning in the backend removes type information that is not referenced by any variables and reduces the amount of work the linker must do during type merging.Two significant changes to the linker help speed up the generation of debug information (PDB files): One of the focus points of the C++ toolset team in the VS 2019 release is improving linking time, which in turn allows faster iteration builds and quicker debugging.

Although the focus of this blog post is on the game industry, these improvements apply to most C++ applications and C++ developers. The C++ compiler in Visual Studio 2019 includes several new optimizations and improvements geared towards increasing the performance of games and making game developers more productive by reducing the compilation time of large projects.
