qt5.3.2 msvc_Visual Studio 2019版本16.3和16.4中的MSVC后端更新

本文介绍了Visual Studio 2019版本16.3和16.4对C++构建性能的提升,包括AVX-512自动矢量化支持、增强的内联功能、编译时计算和内存优化。此外,16.4版本还增加了对AddressSanitizer的支持和C++ Build Insights工具,帮助开发者理解和改进构建时间。
摘要由CSDN通过智能技术生成

qt5.3.2 msvc

Demonstration of C++ Build Insights, a new set of build analysis tools in Visual Studio 2019 version 16.4.

C ++ Build Insights的演示,Visual Studio 2019 16.4版中的一组新的构建分析工具。

Visual Studio 2019版本16.3 (Visual Studio 2019 version 16.3)

  • AVX-512 auto vectorizer support under the /arch:AVX512 switch, enabling logical, arithmetic, memory, and reduction vector operations targeting the AVX-512 instruction set.

    在/ arch:AVX512开关下支持AVX-512自动矢量化程序,可针对AVX-512指令集启用逻辑,算术,存储器和归约矢量运算。
  • Enhancements to the general inliner by estimating the values of both variables and memory. Enabled under /Ob3.

    通过估计变量和内存的值来增强一般内衬。 在/ Ob3下启用。
  • Improvements to inlining of small functions for faster build times and smarter inlining.

    改进了小功能的内联,从而缩短了构建时间并提高了内联的智能性。

  • Partial ability to inline through indirect function calls

    通过间接函数调用内联的部分能力
  • Dataflow-driven alias package added to the SSA Optimizer, enabling more powerful SSA-based optimizations

    数据流驱动的别名程序包已添加到SSA Optimizer中,从而实现了更强大的基于SSA的优化
  • Improvements to the common sub-expression (CSE) optimization focused on eliminating more memory loads.

    通用子表达式(CSE)优化的改进集中在消除更多的内存负载上。
  • Compile-time computation of spaceship operator comparisons on string literals.

    字符串文字上的太空飞船操作员比较的编译时计算。
  • Automatic conversion of fma, fmal, fmaf, and std::fma to the intrinsic FMA implementation, when supported.

    如果支持,将fma,fmal,fmaf和std :: fma自动转换为固有FMA实现。
  • Optimized code generation when returning register-sized structs by using bit manipulations on registers instead of memory operations.

    通过对寄存器使用位操作而不是内存操作来返回寄存器大小的结构时,优化了代码生成。
  • __iso_volatile_loadxx and __iso_volatile_storexx functions, which allow direct atomic read and write of aligned integer values.

    __iso_volatile_load xx和__iso_volatile_store xx函数,它们允许直接原子读写对齐的整数值。

  • Intrinsic versions of most AVX-512 functions that were previously implemented as macros.

    大多数AVX-512功能的内部版本以前都作为宏实现。
  • Improvements to instruction selection for mm_shuffle and _mm_setps intrinsics under /arch:AVX2.

    / arch:AVX2下对mm_shuffle和_mm_setps内部函数的指令选择的改进。
  • Enabling of FrameHandler4 (FH4) by default for the AMD64 platform.

    默认情况下,为AMD64平台启用FrameHandler4(FH4)

Visual Studio 2019版本16.4 (Visual Studio 2019 version 16.4)

  • Support for AddressSanitizer (ASAN), allowing the detection of memory safety issues at runtime.

    支持AddressSanitizer(ASAN) ,允许在运行时检测内存安全问题。

  • C++ Build Insights, a new collection of tools for understanding and improving build times.

    C ++ Build Insights ,用于理解和缩短构建时间的一系列新工具。

  • Significant improvements to code generation time by using up to 24 threads instead of 4, depending on available CPU cores.

    通过使用多达24个而不是4个线程(取决于可用的CPU内核),可以显着改善代码生成时间。
  • Further improvements to code generation time through better algorithms and data structures used by the compiler.

    通过编译器使用更好的算法和数据结构,进一步改进了代码生成时间。
  • Introduction of a new /d2ReducedOptimizeHugeFunctions compiler option to improve the code generation time by omitting expensive optimizations for functions with more than 20,000 instructions. This threshold can be customized by using the /d2ReducedOptimizeThreshold:# switch.

    引入了新的/ d2ReducedOptimizeHugeFunctions编译器选项,以通过省略对20,000条以上指令的函数进行的昂贵优化来缩短代码生成时间。 可以使用/ d2ReducedOptimizeThreshold:#开关来自定义此阈值。
  • Improvements to the AVX-512 auto vectorizer, supporting more instruction forms: variable width compares, int32 multiplication, int-to-fp floating point conversion. Available under /arch:AVX512.

    对AVX-512自动矢量化器的改进,支持更多指令形式:可变宽度比较,int32乘法,int到fp浮点转换。 在/ arch:AVX512下可用。
  • Improved analysis of control flow to better determine when values are provably positive or negative.

    改进了对控制流的分析,以更好地确定何时值可证明是正的或负的。
  • Enabling of the enhanced inliner introduced in 16.3 by default, without the use of /Ob3.

    默认情况下启用16.3中引入的增强内线,而不使用/ Ob3。
  • Intrinsic support for the ENQCMD and ENQCMDS instructions, which write commands to enqueue registers.

    对ENQCMD和ENQCMDS指令的内在支持,这些指令将命令写入入队寄存器。
  • Intrinsic support for the RDPKRU and WRPKRU instructions, which read and write the PKRU register available in some Intel processors.

    对RDPKRU和WRPKRU指令的内在支持,这些指令读取和写入某些Intel处理器中可用的PKRU寄存器。
  • Intrinsic support for the VP2INTERSECTD and VP2INTERSECTQ instructions, which generate a pair of masks indicating which elements of one vector match elements of another vector.

    VP2INTERSECTD和VP2INTERSECTQ指令的内在支持,它们生成一对掩码,指示一对向量中的哪个元素与另一个向量中的元素匹配。

Do you want to benefit from all of these improvements? If so, download the latest Visual Studio 2019 and tell us what you think! We can be reached via the comments below, via email at visualcpp@microsoft.com, or via Twitter (@VisualC).

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

翻译自: https://habr.com/en/company/microsoft/blog/486436/

qt5.3.2 msvc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值