Visual Studio 2013 Remembers C++ Developers
Visual Studio 2013 (VS2013) is shaping up to be an update with an impact larger than one may first assume given the proximity of its release to VS2012. C++ developers will be beneficiaries of this growing update too, first with the IDE improvements, and second with the C++ specific improvements described today at Build 2013.
Microsoft’s Tarek Madkour held a presentation titled, “Visual Studio 2013 for C++ Developers”, which looked at the forthcoming features of particular interest to C++ developers. Makour began his talk with the reasons Microsoft feels developers use C++: performance, compatibility (ability to use older C++ code today), and portability. To those three Madkour added Windows 8.1 tools and productivity as areas that he address in regards to VS2013. One item of particluare note for developers using C++11, Madkour stated that the changes previewed in the November 2012 CTP will be formally part of VS2013.
Starting with Windows 8.1-focused tools, Markour highlighted an improved XAML designer:
- New and updated templates
- Improved XAML editor
- Rulers and dynamic guides
- New Windows 8.1 controls
- Improved designer performance
- Better in place style and template editing
The level of detail in WinRT call stacks can be toggled via “Just My Code” feature. This way if the entire call stack is not needed, it can be collapsed so that developers can specifically focus on the code they are developing in their project and not the entire platform.
The automatic vectorization process introduced with VS2012 has been improved with the addition of the following features:
- Statement level vectorization
- Permutation of perfect loop nests
- Range propagation optimizations
- Support for more operations: min/max, converts, shifts, byteswaps, averaging
- Reductions into array elements
- __restrict support for vector alias checking
- Improvements to data dependence analysis
- C++ pointer vectorization
- gather/scatter optimizations
Using the new “__vector” calling convention on the appropriate methods improves performance by reducing instruction count, and minimizes stack allocation. Madkour stated that by utilizing this convention, DirectX itself is running about 15% faster.
Finally C++ AMP is scheduled to receive the following improvements:
- Share memory support to eliminate/reduce copying of data between CPU and GPU
- Enhanced texture support: texture sampling, mipmap support, and staging texturs
- C++AMP Debugging on Win7 and side-by-side CPU/GPU debugging
- Faster C++ AMP runtime: improved copy performance, reduce launch overhead
- better DirectX interop support
- Improved C++ AMP runtime diagnostics
- Improvements to array_view APIs
Future C++ announcements are scheduled for this Friday (in the area of compatibility), and InfoQ will cover this as it is released.
Will it be free though?