Introducing a new, advanced Visual C++ code optimizer

We are excited to announce the preview release of a new, advanced code optimizer for the Visual C++ compiler backend. It provides many improvements for both code size and performance, bringing the optimizer to a new standard of quality expected from a modern native compiler. This is the first public release and we are encouraging… Read more

Clang with Microsoft CodeGen (March 2016) released

We’re excited to announce the latest update of our Clang with Microsoft CodeGen (a.k.a. Clang/C2) toolset. This release brings a number of fixes for bugs reported by developers in the community as well as fixes for some bugs found in our testing. For example, many of you reported that you couldn’t use Clang/C2 with larger… Read more

New Options for Managing Character Sets in the Microsoft C/C++ Compiler

The Microsoft C/C++ compiler has evolved along with DOS, 16-bit Windows, and 32/64-bit Windows.  Its support for different characters sets, code pages, and Unicode has also changed during this time.  This post will explain how our compiler has worked in the past and also cover some new switches provided by the C/C++ compiler in Visual Studio 2015 Update… Read more

Compiler improvements in VS 2015 Update 2

The C++ compiler team is excited for you to try out the compiler in Visual Studio 2015 Update 2 CTP 1. Since Update 1 we’ve made progress on being Standards-conformant for lot of C++11 and C++14 features. One particularly big milestone is that our standard library in Update 2 supports every C++ Standard Library feature… Read more

What’s inside a PDB File?

Background We have all used the Visual Studio Debugger to step through code, in the hunt for bugs.  For C or C++ code, that Debugger relies upon a file, with the extension “.pdb”, called the “Program DataBase”, or simply “the PDB”.  The PDB is written by the Linker when you build your program; it contains line-number and symbols… Read more

Clang with Microsoft CodeGen (January 2016) released

We have just released an out-of-band update of Clang/C2 toolset that brings in some of the community fixes as well as bugs found from testing. This is one of many rapid releases to come in the future, and issues reported from customers will be addressed progressively. Here we only list the changes since the previous… Read more

Visual Studio 2015 Update 1: New Experimental Feature – MPX

Introduction This post is about Intel® Memory Protection Extensions (Intel® MPX) support in Microsoft Visual Studio* 2015; content provided by Gautham Beeraka, George Kuan, and Juan Rodriguez from Intel Corporation.    Overview Update 1 for Visual Studio 2015 was announced on November 30, 2015. This update includes experimental compiler and debugger support for Intel MPX.  Intel MPX can check… Read more

Clang with Microsoft CodeGen in VS 2015 Update 1

[This post was written by Dave Bartolomeo and the Clang/C2 feature crew] One of the challenges with developing and maintaining cross-platform C++ code is dealing with different C++ compilers for different platforms. You write some code that builds fine with the Visual C++ compiler for your Windows-targeting build, but then your Android-targeting build breaks because… Read more

Do You Prefer Fast or Precise?

What is this Blog About? My name is Jim Hogg, a Program Manager in the Compilers team. We would like your feedback on a feature of the Visual C++ compiler that affects the code we generate for floating-point operations. Your answers will help determine what we do. You can vote via survey — it should… Read more

Feedback: Making /Zc:inline default for debug/release configs in “14”

Given our strong focus on improving build times of our toolset as a part of the Visual Studio 14 preview we will be changing a few defaults for Visual C++’s debug and release configuration. These changes include making /Zc:inline (remove unreferenced COMDAT) the default for debug and release configurations. /Zc:inline was introduced as a part… Read more