The Most Underused Compiler Switches in Visual C++, March 11, 2014 Microsoft's Visual C++ team explains the nine most underused switches and why you should make sure to include them in your build.
/favor: options produce code that is optimized for a specific architecture or for the specifics of micro-architectures in the AMD and the Intel architectures. Choose from the options below based upon the micro-architecture you care most about:
/favor:blend (x86 and x64). While
/favor:blend may not give the best performance possible on a specific processor, it is designed to give the best performance across a broad range of x86 and x64 processors. By default,
/favor:blend is in effect.
/favor:ATOM (x86 and x64). This produces the code that is optimized for the specifics of the Intel Atom processor and Intel Centrino Atom Processor Technology. Code that is generated by using
/favor:ATOM may also produce Intel SSSE3, SSE3, SSE2, and SSE instructions for Intel processors.
/favor:AMD64 (x64 only), This optimizes the generated code for the AMD Opteron and Athlon processors that support 64-bit extensions. The optimized code can run on all x64 compatible platforms. Code that is generated by using
/favor:AMD64 might cause worse performance on Intel processors that support Intel64.
/favor:INTEL64 (x64 only). This optimizes the generated code for Intel processors that support Intel64, which typically yields better performance for that platform. The resulting code can run on any x64 platform. Code that is generated with
/favor:INTEL64 might cause worse performance on AMD Opteron and Athlon processors that support 64-bit extensions.
If you know your application is destined to run a lot more often on particular architectures in this list, this option can come in handy! Try it out, for example, when writing apps for the Intel Atom micro-architecture found in tablets, microservers, and smartphones. From our internal benchmarking, we know users can except low single-digit percent performance gains on CPU cycles.