LLVM 12已被释放

2021-04-16 19:57:54

LLVM.Experishive.vector.Reeduce内在的内在学系已重新命名为从名称中删除“实验”,反映其现在在IR中的完全支持。

由纯CMAKE方法删除了用于描述LLVM组件结构的内部LLVM-Build Python脚本和用于描述LLVM组件结构的关联LLVMBuild.txtfiles,其中每个组件在创建的目标中存储外曲面。将所有属性进行处理,一旦定义为解析库依赖性并生成LLVM-Config的标题,就会处理。

新的“Tablegen程序员的参考”替换了“TableGen LanguageIntroduction”和“Tablegen语言参考”文档。

在范围列表中指定整数范围的语法已经发生了变化。旧语法在范围内使用连字符(例如,{0-9})。新的语法“......”范围标点符号(例如,{0 ... 9})。连字符棘手弃用。

对Windows展出数据的产生很多改进;与LLVM 11相比,可以在可能的情况下以满足的形式进行优化和编写折叠形式,将退化数据(PDATA和XDATA部分)的大小约为60%。在瞄准窗口时,Prologs / epilogs的产生是推出的,以增加能够的机会为了elsethe展示了展示展示信息格式。

为Windows目标生成适当的装配输出,包括:LO12:重定位说明符,以允许组装输出实际组装。

将MSVC目标的装配评论字符串更改为//(由MingW和ELF目标的一致),释放;用作分离器。

改进循环展开和jam,包括修复以尊重userprovided #pragma unly-and-jam以获得arf的目标。 调度增强*如果DAG也是如此,则添加新算法以群集更多加载/存储 一般改进*完成约束的浮点操作支持。*改善LLVM-Exegesis支持。*改进堆栈冲突保护,以探测StackPtr之间的间隙 添加支持以允许数据依赖性图形的视觉检查打印DDG。 大量的错误修复包括必需的所有修复方法,以便为朱莉亚进行清洁测试运行。 编译器-TT支持*为AIX和32位电源目标添加支持构建编译器-RT-RT。*使编译器-RT-RT为AIX的默认RTLIB。 一般改进*使得AIX Extended Altivec Abi option -mabi = Vec-extabi。*添加部分C99复杂类型支持。*实现功能的回溯表(编码矢量信息,

实现C ++动态初始化和最终确定的代码生成。非本地变量用于AIX链接器的-BCDTORS选项。

“MPX”功能已从后端中删除。它已从10.0中从ClangFrontend中删除。提到IR文件中的“MPX”功能将打印Amessage至STDERR,但IR仍然应该编译。

汇编程序现在支持{disp32}和{disp8}伪前缀,用于控制内存操作数和跳转位移的位移大小。 TheastSembler还支持.d32和.d8助记符后缀。

添加了一个新的函数属性“tune-cpu”以支持-mtune,如gcc.这允许从将从“目标-CPU”属性或TargetMachine CPU独立应用的微架构优化,这些优化将用于选择型集合。如果不存在该属性,则调谐CPU将按照目标CPU进行。

LLVM-READOBJ和LLVM-veadelf行为已更改为报告错误,当没有输入文件而不是读取从stdin的输入。通过指定 - 作为输入文件仍然可以实现stdin。

LLVM-MCA支持时间轴和摘要视图的序列化。-JSON命令行选项打印对STDOUT的这些视图的JSON表示。

Integer Sacitizer -fsanitize = Integer现在有一个新的Sinitizer:-fsanitize = unsigned-shift-base。对于UnsignEdleft overflow(即转移位)来说不是未定义的行为,但它是过去的某些代码库的源源和漏洞。

许多消毒者(ASAN,CFI,LSAN,MSAN,Tsan,UBSAN)拥有支持Formusl的Linux发行版。 其中一些可能是基本的。