LLVM 11.0随Python 3的更新,针对RISC-V的改进等

LLVM

经过六个月的发展 介绍了新版本的LLVM 11.0项目的启动 其中提出了一些改进,例如对Python 3的更新,支持RISC-V中的实验性指令的补丁以及许多其他更改。

对于那些不熟悉LLVM的人,他们应该知道它是什么。 一个符合GCC的工具包 (编译器,优化器和代码生成器),将程序编译为类似RISC的位代码中间虚拟指令(具有多级优化系统的低级虚拟机)。

它旨在优化编译时间,绑定时间,用户想要定义的任何编程语言的执行时间。 最初实现为编译C和C ++,LLVM的语言不可知论设计和项目成功 他们产生了各种各样的语言。

生成的伪代码可以在程序执行时直接使用JIT编译器转换为机器指令。

LLVM 11.0的主要新功能

在LLVM 11.0的新版本中 构建系统已移至使用Python 3因此,由于在无法使用Python 3的情况下,不强制使用Python 2,因此回滚选项已实现为使用Python XNUMX。

属性 添加了vector-function-abi-variant 到中间表示(IR) 描述标量和向量函数之间的映射 用于矢量化调用。 从llvm :: VectorType中提取了两个单独的向量类型,即llvm :: FixedVectorType和llvm :: scalableVectorType。

未定义的行为是基于undef的分支,并从未定义的值传递到标准库函数。

在memset / memcpy / memmove中,允许传递未定义的指针,但是如果大小为零的参数。

LLJIT通过LLJIT :: initialize和LLJIT :: deinitialize方法添加了对静态初始化的支持。

添加了 向JITDylib添加静态库的能力 使用StaticLibraryDefinitionGenerator类。 为ORCv2添加了C API(用于创建JIT编译器的API)。

在改进对不同处理器体系结构的支持方面:

  • 添加 支持Cortex-A34,Cortex-A77,Cortex-A78和Cortex-X1处理器 在AArch64体系结构的后端。 已经实现了ARMv8.2-BF16(BFloat16)和ARMv8.6-A扩展,包括RMv8.6-ECV(增强型计数器虚拟化),ARMv8.6-FGT(精细陷阱),ARMv8.6-AMU(活动)监视虚拟化)和ARMv8.0-DGH(数据收集提示)。
  • 在ARM后端增加了对Cortex-M55,Cortex-A77,Cortex-A78和Cortex-X1处理器的支持。 实现了Armv8.6-A矩阵乘法和RMv8.2-AA32BF16 BFloat16扩展。
  • 在PowerPC后端增加了对POWER10处理器代码生成的支持。 改进的循环优化和对浮点运算的支持。
  • 架构后端 RISC-V可以接收具有支持的补丁 尚未正式批准的实验性扩展指令集。

除此之外 提供了生成用于绑定函数的代码的能力 集成到矢量SVE指令中。

AVR体系结构的后端已从实验类别移至基本发行版中包含的稳定类别。

x86后端 支持英特尔AMX和TSXLDTRK指令。 增强了抵御LVI攻击的保护 (负载值注入)和一般的推测性执行副作用抑制机制也已实现,以阻止由推测性执行CPU操作引起的攻击。

在其他突出的变化中:

  • SystemZ体系结构的后端增加了对MemorySanitizer和LeakSanitizer的支持。
  • Libc ++增加了对数学常量头文件的支持。
  • LLD链接器的扩展功能。
  • 改进的ELF支持,包括添加的选项“ -lto-emit-asm”,“-lto-整个程序可见”,“-print-archive-stats”,“-shuffle-section”,“-thinlto-single-module” “,” –唯一“,” –玫瑰“,” –线程= N“。
  • 添加了“ –time-trace”选项以将跟踪保存到文件,然后可以通过chrome:// Chrome中的跟踪界面对其进行解析。
  • 带有Go(llgo)编译器的接口已从发行版中删除,将来可能会进行重组。

最后 如果您想了解更多 关于这个新版本,您可以检查 以下链接中的详细信息。


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。