LLVM开源编译器框架的6.0.0版本已经发布。 “这个版本是过去六个月社区工作的结果,其中包括:retpoline Spectre variant 2 漏洞缓解,显著改进了Windows的CodeView调试信息,默认情况下GlobalISel在-O0的AArch64,多个x86微架构上的调度改进, Clang默认为 -std=gnu++14而不是 -std=gnu++98,支持一些即将推出的 C++2a特性,改进的优化,新的编译器警告,许多错误修复等等。

修复了许多错误:

  • 在使用负整数时,MIPS64上的fpowi给出不正确的结果。
  • asm'c'约束的用法与导致断言/崩溃的错误数据类型有关。
  • 修复了使用DSP ASE时的转换错误。
  • 修正了当micromips函数属性或使用“.set micromips”指令时对象未标记为使用microMIPS的不一致性。
  • 将MIPSR6特定的危险调度程序重新排序,以延迟时隙填充符后面的顺序排列,修复了延迟插槽填充符违反ISA限制的一类罕见边界错误。
  • 修正了使用gp相对寻址时未知大小的类型时崩溃的问题。
  • 更正了microMIPS的j宏。
  • 更正了microMIPS32r6的movep编码。
  • 修复了使用带有一组无效操作数的插入指令的问题。
  • 修复了TLS符号未被标记的问题。
  • 由于加载和存储的偏移更短,因此可以使用MSA进行寄存器清理。
  • 使用DSP ASE时更正了ELF标头。

新功能:

  • 当针对MIPSR6时,长分支传递现在生成一些R6特定指令。
  • 如果延迟槽不能被填充,则延迟槽填充器现在执行更多的分支转换。
  • 现在完全支持MIPS MT ASE。
  • 增加了对lapc伪指令的支持。
  • 改进了多个指令的选择(dext, nmadd, nmsub)。
  • 进一步改进microMIPS编码大小。


弃用声明:

  • 自5.0版开始,microMIPS64R6支持已被弃用,现在已完全删除。

原文来自:

本文地址://gulass.cn/opensource-compiler-llvm.html编辑:清蒸github,审核员:逄增宝

本文原创地址://gulass.cn/opensource-compiler-llvm.html编辑:清蒸github,审核员:暂无