惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
人人都是产品经理
人人都是产品经理
V
V2EX
爱范儿
爱范儿
PCI Perspectives
PCI Perspectives
T
Troy Hunt's Blog
Stack Overflow Blog
Stack Overflow Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
SecWiki News
SecWiki News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Hacker News
The Hacker News
小众软件
小众软件
雷峰网
雷峰网
D
Docker
NISL@THU
NISL@THU
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
腾讯CDC
B
Blog RSS Feed
C
CERT Recently Published Vulnerability Notes
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
U
Unit 42
有赞技术团队
有赞技术团队
P
Palo Alto Networks Blog
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
S
Security @ Cisco Blogs
量子位
I
InfoQ
Application and Cybersecurity Blog
Application and Cybersecurity Blog
大猫的无限游戏
大猫的无限游戏
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Latest news
Latest news
The Register - Security
The Register - Security
S
Securelist
W
WeLiveSecurity
A
Arctic Wolf
Security Latest
Security Latest
AWS News Blog
AWS News Blog
L
LINUX DO - 热门话题
S
Secure Thoughts
T
Tenable Blog
Know Your Adversary
Know Your Adversary
月光博客
月光博客
M
MIT News - Artificial intelligence

C++ Team Blog

Pure Virtual C++ 2026 Is a Wrap - C++ Team Blog Pure Virtual C++ 2026 Is Now Live! - C++ Team Blog C++ Dependencies Without the Headache: vcpkg + Copilot CLI - C++ Team Blog Pure Virtual C++ 2026 Is Tomorrow and On-Demand Sessions Are Now Available - C++ Team Blog Faster C++ iterative builds with GitHub Copilot - C++ Team Blog Pure Virtual C++ 2026 [Meet the Speakers, Part 3]: Modernizing C++ - C++ Team Blog MSVC Build Tools Preview updates - July 2026 - C++ Team Blog Rethinking C++ Performance: Faster Code Navigation and GitHub Copilot Tools with Whole Codebase Indexing - C++ Team Blog Pure Virtual C++ 2026 [Meet the Speakers, Part 2]: The AI-Native C++ Developer Workflow - C++ Team Blog Pure Virtual C++ 2026 [Meet the Speakers, Part 1]: Build Faster, Run Faster - C++ Team Blog What's New in vcpkg (June 2026) - C++ Team Blog Pure Virtual C++ 2026 Talks Announced - C++ Team Blog Save the Date: Pure Virtual C++ 2026 - C++ Team Blog Streamline C++ Code Intelligence Setup in Copilot CLI - C++ Team Blog Boosting Adobe Photoshop’s Performance with MSVC and SPGO - C++ Team Blog GitHub Copilot modernization for C++ is out of preview MSVC Build Tools Preview updates – June 2026 What’s New in vcpkg (May 2026) What’s New for C++ Developers in Visual Studio 2026 (18.1 – 18.6) Introducing Sample Profile Guided Optimization in MSVC NuGet PackageReference for C++ Projects in Visual Studio Segment Heap support for C++ projects in Visual Studio MSVC Build Tools Preview updates – May 2026 MSVC Build Tools version 14.51 (GA) now available Project-Specific Build Optimizations with GitHub Copilot What's New in vcpkg (Apr 2026) - C++ Team Blog Giving Copilot more C++ context using custom instructions in VS Code Take the 2026 ISO C++ Developer Survey! - C++ Team Blog C++ Code Intelligence for GitHub Copilot CLI (Preview) - C++ Team Blog C++23 Support in MSVC Build Tools 14.51 What’s New in vcpkg (Feb 2026 – Mar 2026): Parallel file installation and more! Visual Studio at GDC Festival of Gaming 2026 C++ Performance Improvements in MSVC Build Tools v14.51 C++ symbol context and CMake build configuration awareness for GitHub Copilot in VS Code Microsoft C++ (MSVC) Build Tools v14.51 Preview Released: How to Opt In What’s New in vcpkg (Nov 2025 – Jan 2026) MSVC Build Tools Versions 14.30 – 14.43 Now Available in Visual Studio 2026 GitHub Copilot app modernization for C++ is now in Public Preview Visual Studio Code CMake Tools 1.22: Target bookmarks and better CTest output
MSVC Build Tools Version 14.51 Release Candidate Now Available
2026-04-14 · via C++ Team Blog

April 14th, 2026

heart1 reaction

Software Engineering Manager

We are pleased to announce the availability of the release candidate for Microsoft C++ (MSVC) Build Tools version 14.51. This is the last MSVC v14.51 preview before it moves to stable status and full support. You can download it from the Visual Studio 2026 Insiders Channel. As this is the release candidate, it is now the default toolset installed with C++ workloads in this channel. To check if it’s installed simply make sure one or both of these components are checked in the installer:

  1. MSVC Build Tools for x64/x86 (Latest)
  2. MSVC Build Tools for ARM64/ARM64EC (Latest)

The version number printed by cl.exe and link.exe will be at least 14.51.36231.

We appreciate any feedback that you may have. Please report any issues on Visual Studio Developer Community so we can address them by the time we move out of preview.

Version 14.51 is expected to go stable in May and will ship with the 18.6 release of Visual Studio (Stable channel). Once it goes stable, this release of MSVC will receive 9 months of servicing fixes, as described in New release cadence and support lifecycle for Microsoft C++ Build Tools.

This post summarizes the work done by the MSVC team between the 14.50 and 14.51 releases. This encompasses changes across the compiler frontend, backend, linker, standard library, and related tools.

C++ Standards Conformance

The frontend team continued implementing C++23 and C++20 features and fixing conformance issues:

  • C++23 Implementations: Please see the C++23 Support in MSVC Build Tools 14.51 blog post for details.
  • Consteval Improvements: Multiple fixes to consteval function handling, constexpr new/delete in modules, initializer list backing arrays, /experimental:constevalVfuncVtable behavior now enabled by default, and better error diagnostics for failed constant expressions.
  • Coroutine Improvements: Coroutine-related globals refactoring, and deprecation of experimental coroutine headers.
  • Parser Modernization: Recursive descent parser now handles [[attributes]], with continued improvements to error recovery and removal of legacy token accessors.
  • C Language Improvements: Added _Atomic qualifier support, removed incorrect diagnostics for C99 flexible array members, and added __typeof__ support for function types.

Code Generation

The backend optimizer received significant investment across many areas:

  • Sample-based profile guided optimizations: Support for sample-based profile guided optimizations with supporting tools. More details to follow in a future blog post.
  • Static Single-Assignment (SSA) optimization improvements: Implemented dozens of new algebraic simplification patterns, including ternary operator patterns, arithmetic patterns, and min/max.
  • Common Subexpression Elimination (CSE): Improve CSE of loads of [x + C] through if/else joins, redundant stores, and has improved multibyte aliasing checks.
  • Scalar Replacement of Aggregates (SROA): More aggressive unpacking of structures.
  • Loop Optimizations: Linear Function Test Replace (LFTR) signedness fixes and counted loop optimizations when the primary induction is used after the loop.
  • Inlining: Extended limited call-site inlining, and improved propagation of parameter type information when inlining.
  • Copy Propagation: Multiple improvements to copy propagation for integer constants and sequential copies.
  • Strength Reduction: Implemented reduction of conversions as a strength-reduction optimization.
  • Predicate and Jump Threading: Improvements to predicate-based optimizations for eliminating bound checks, including better use of predicates from min patterns.
  • Stack Layout: The compiler now prefers pushing callee-saved registers onto the stack over using shadow slots, reducing function prologue/epilogue overhead.
  • PGO: Improved per-function size/speed trade-offs to mitigate unrepresentative profiles and PGO trimming improvements.
  • Restrict Pointers: Added support for restrict pointer semantics to enable additional aliasing optimizations.
  • Pattern matching optimizations: New patterns for MSUB/MADD generation, ADC/SBB for conditional add/subtraction, and CMOVE/NE variants.
  • Intel APX: Preview support of Intel APX (Advanced Performance Extensions) in the MSVC toolchain. More details to follow.

ARM64 & SVE

  • SVE (Scalable Vector Extension) Support: Major new feature bringing ARM SVE to MSVC, including frontend type support for SVE scalar and aggregated types, intrinsic lowering, callee-saved register unwinding, variadic function parameter passing, header file installation, and tryblock/funclet support. Multiple ICE and miscompilation fixes were addressed.
  • Shrink Wrapping: Fixed multiple issues including epilog-only fragment unwind info, codegen bugs with chkstk killing X15, and multi-entry shrink wrap regions.
  • Code Quality: New patterns for CSEL pow2, 0 + ORR → CSET + ORR_SHIFT, optimized NEON_DUPR, removed redundant NEON_INSR after NEON_DUPR, ARM NEON patterns for x264, instruction fusion improvements, register retyping after globregs, and function alignment tuning.
  • DIA SDK: Full SVE support in the debug interface, including RtlpGetSveContextPointers and IDiaStackWalkHelper3.

SIMD & Vectorization

  • SLP Vectorizer: Improvements to Superword Level Parallelism (SLP) vectorization:
    • Scalar reduction vectorization
    • Generic and oversized vector instruction support
    • Permute optimizations and oversized select support
  • Vectorizer Improvements: Hoisting of vectorized inner loop pointer overlap checks to parent loops, character-count loop support, non-contiguous memory access support for 2-byte data types, and improved low trip count heuristics on ARM64.
  • AVX/SSE: AVX512 memcpy/memset, AVX2 memcmp override, AVX10.2, and vectorized bitmasking patterns for x264.

Linker & PDB

  • DIA: COM initialization thread safety, and SVE support.
  • PDB Fuzzing: Triggered PDB fuzzing from nightly builds.
  • SPGO: Sample-based profile guided optimizations available for use.

Standard Library (STL)

On GitHub, the microsoft/STL repo tracks its status with a high level of detail; see the Changelog for MSVC Build Tools 14.51. Notable library features that are newly available:

  • P0429R9<flat_map>
  • P1222R4<flat_set>
  • P2255R2 – Type Traits To Detect References Binding To Temporaries
  • P2590R2 – Explicit Lifetime Management
  • P2674R1is_implicit_lifetime

Other notable changes:

  • We’ve massively overhauled <regex> to fix long-standing correctness and performance problems that have been present since its initial implementation in VS 2008 SP1. After almost two decades, the stack overflows are finally fixed!
  • We’ve continued to add and improve SIMD-vectorized STL algorithms, using SSE4.2 and AVX2 for x64/x86, and (newly shipping in MSVC Build Tools 14.51) using NEON for ARM64/ARM64EC.
  • We’ve implemented 18 LWG issue resolutions.
  • We’ve removed long-deprecated non-Standard features, such as TR1, <hash_map>, <hash_set>, <experimental/filesystem>, stdext::checked_array_iterator, and stdext::unchecked_array_iterator.

All of this has been possible thanks to our amazing GitHub contributors.

AddressSanitizer (ASan)

  • ARM64 Support: Improved ASan for ARM64 support with comprehensive library packaging, interception fixes, and false-positive resolutions.
  • SanitizerCoverage: Fixed blocklist handling, codegen issues, and forward declarations to ensure sancov initializers are invoked.
  • Performance: Cached walked heaps for performance improvements during shadow memory operations.

Modules & IFC

  • IFC Version Update: The MSVC frontend generates IFC files according to the 0.44 version of the IFC specification.
  • Concurrency Fix: Fixed a use-after-free race in concurrent IFC debug record resolution.

Static Analysis

  • EspX Consolidation: Merged EspX and its extensions like CppCoreCheck into a single DLL, simplifying deployment.
  • Bug Fixes: Fixed false positives from inexact location dereference, and a number of internal compiler errors (ICE) under /analyze.

ARM64EC & ARM64X

  • Coroutine Support: Fixed missing entry thunks for coroutine outlinees and ramp functions.
  • ICF: Improved identical COMDAT folding (ICF) optimization in ARM64X binaries.
  • Volatile XMM: Fixed ARM64EC volatile XMM assignment.

Diagnostics

  • Fixed C4319 not being emitted when compiling C code.
  • Removed incorrect diagnostics for C99 flexible array members.
  • Warning C4789 improved to reduce false positives.

Debug Info

  • Enabled debug info pruning to reduce PDB sizes.

Tickets Fixed

The following customer-reported issues were fixed in this release:

Try Out the MSVC Release Candidate!

Please try out the RC and let us know what you think! Installation instructions:

  1. Download Visual Studio 2026 Insiders
  2. Install the Desktop development with C++ workload and make sure one or both of these MSVC components are checked (depending on your target build architecture):
    • MSVC Build Tools for x64/x86 (Latest)
    • MSVC Build Tools for ARM64/ARM64EC (Latest)
  3. Share your feedback with us on Visual Studio Developer Community.

Category

Topics

Author

Eric Brumer

Software Engineering Manager

Software engineering manager on the Visual C++ compiler back-end team. I lead the machine-independent optimization team, as well as code generation security, including sanitizers.