MSVC更新汇总
在Visual Studio 2019 v16.5中,我们已经对C++后端进行了持续的改进更新,包括新增了一些新特性和优化点,编译时间优化,以及更好的安全性。
下面我们来汇总一下目前关于MSVC编译器后端更新的要点:
> Intel JCC缺陷修复,具体是通过提供编译器开关来实现修复。
> 新增对AMD Zen3架构指令集的支持。
> 新增AVX2浮点优化:向量指令已优化为具有已知初始参数的单个常量。
> ARM64 NEON 内部函数(intrinsics)优化:
>> 实现所有剩余的ARM64 NEON内部函数。
>> 对某些现存的NEON内部函数的性能优化。
>> 对NEON内部函数的错误报告的优化,可以支持在编译器提供常量参数。
> 新增memset预测式优化,另外,当源地址和目的地址不重叠时,通过对memcpy进行预测式优化提升2~18倍的内存操作性能。
> 新增/Qspectre-load和/Qspectre-load-cf这两个编译开关来对抗指令预测的旁路攻击。
> 新增称之为”跳转线程”的强大新优化功能,可以通过它来简化控制流程。它消除了不必要的中间跳转和程序路径上的分支,这些中间跳转和分支可以在编译期根据变量和其他编译时信息的值进行评估。
总结
不由得抒发感叹:MSVC,你大爷还是你大爷。