Visual Studio 2019版本16.3和16.4中的MSVC后端更新

VisualStudio2019的16.3和16.4版本在代码生成质量、构建吞吐量和安全性方面带来了许多新的改进。如果你还没有下载你的副本,这里是一个简短的概述,你已经错过了什么。

null

GIF of MSVC Build Insights

演示C++构建见解,VisualStudio 2019版本16.4中的一组新的构建分析工具。

  • AVX-512下的自动矢量器支持/arch:AVX512 switch,启用以AVX-512指令集为目标的逻辑、算术、内存和归约向量操作。
  • 通过估计变量和内存的值来增强通用内联。在/Ob3下启用。
  • 小函数内联的改进 为了更快的构建时间和更智能的内联。
  • 通过间接函数调用内联的部分功能
  • 数据流驱动的alias包添加到SSA优化器中,支持更强大的基于SSA的优化
  • 对公共子表达式(CSE)优化的改进集中在消除更多的内存负载上。
  • 太空船运算符比较的编译时计算。
  • 支持时,将fma、fmal、fmaf和std::fma自动转换为固有的fma实现。
  • 通过在寄存器上使用位操作而不是内存操作来优化返回寄存器大小的结构时的代码生成。
  • __等容性负载 xx号 和 __isoU易变存储 xx号 函数,允许直接原子读取和写入对齐的整数值。
  • 以前作为宏实现的大多数AVX-512函数的内部版本。
  • 教学选择的改进 下的mmu shuffle和u mmu setps intrinsics/arch:AVX2.
  • 使能 帧处理程序4(FH4) 默认情况下,用于AMD64平台。
  • 支持 消毒液(ASAN) ,允许在运行时检测内存安全问题。
  • 建立C++的洞察力 ,一个用于理解和改进构建时间的新工具集合。
  • 通过使用多达24个线程而不是4个线程(取决于可用的CPU内核),代码生成时间有了显著的改进。
  • 通过编译器使用更好的算法和数据结构,进一步缩短代码生成时间。
  • 引入一个新的/d2reduceoptimizehugfunctions编译器选项,省去了对指令数超过20000的函数进行的昂贵优化,从而缩短了代码生成时间。可以使用/d2ReducedOptimizeThreshold:#开关自定义此阈值。
  • 对AVX-512自动矢量器的改进,支持更多指令形式:可变宽度比较、int32乘法、int到fp浮点转换。在以下条件下提供/arch:AVX512.
  • 改进了对控制流的分析,以便更好地确定值是正的还是负的。
  • 默认情况下启用16.3中引入的增强内联线,而不使用/Ob3。
  • 对ENQCMD和ENQCMDS指令的内在支持,这些指令将命令写入排队寄存器。
  • 对RDPKRU和WRPKRU指令的内在支持,这些指令读取和写入某些英特尔处理器中提供的PKRU寄存器。
  • 对VP2INTERSECTD和VP2INTERSECTQ指令的内在支持,它们生成一对掩码,指示一个向量的哪些元素与另一个向量的元素匹配。

你想从这些改进中获益吗?如果是,请下载 最新的Visual Studio 2019 告诉我们你的想法!我们可以通过以下评论,通过电子邮件 visualcpp@microsoft.com ,或通过Twitter (@VisualC) ).

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享