styxmx 发表于 2016-10-27 10:38:48

LLVM 3.9 发布,编译器架构

欢迎加入运维网交流群:263444886  http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://my.oschina.net/img/hot3.png
  LLVM 3.9 发布了,LLVM 是 Low Level Virtual Machine (低级虚拟机)的简称,这个库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。LLVM的项目是一个模块化和可重复使用的编译器和工具技术的集合。LLVM是伊利诺伊大学的一个研究项目,提供一个现代化的,基于SSA的编译策略能够同时支持静态和动态的任意编程语言的编译目标。自那时以来,已经成长为LLVM的主干项目,由不同的子项目组成,其中许多正在生产中使用的各种商业和开源的项目,以及被广泛用于学术研究。
  该版本改进记录如下:

[*]
  The LLVMContext gains a new runtime check (seeLLVMContext::discardValueNames()) that can be set to discard Value names(other than GlobalValue). This is intended to be used in>
[*]  There is no longer a “global context” available in LLVM, except for the C API.
[*]  The autoconf build system has been removed in favor of CMake. LLVM 3.9requires CMake 3.4.3 or later to build. For information about using CMakeplease see the documentation on Building LLVM with CMake. For information about the CMakelanguage there is also a CMake Primer document available.
[*]  C API functions LLVMParseBitcode,LLVMParseBitcodeInContext, LLVMGetBitcodeModuleInContext andLLVMGetBitcodeModule having been removed. LLVMGetTargetMachineData has beenremoved (use LLVMGetDataLayout instead).
[*]  The C API function LLVMLinkModules has been removed.
[*]  The C API function LLVMAddTargetData has been removed.
[*]  The C API function LLVMGetDataLayout is deprecatedin favor of LLVMGetDataLayoutStr.
[*]  The C API enum LLVMAttribute and associated API is deprecated in favor ofthe new LLVMAttributeRef API. The deprecated functions areLLVMAddFunctionAttr, LLVMAddTargetDependentFunctionAttr,LLVMRemoveFunctionAttr, LLVMGetFunctionAttr, LLVMAddAttribute,LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute,LLVMRemoveInstrAttribute and LLVMSetInstrParamAlignment.
[*]  TargetFrameLowering::eliminateCallFramePseudoInstr now returns aniterator to the next instruction instead of void. Targets that previouslydid MBB.erase(I); return; now probably want return MBB.erase(I);.
[*]  SelectionDAGISel::Select now returns void. Out-of-tree targets willneed to be updated to replace the argument node and remove any dead nodes incases where they currently return an SDNode * from this interface.
[*]  Added the MemorySSA analysis, which hopes to replace MemoryDependenceAnalysis.It should provide higher-quality results than MemDep, and be algorithmicallyfaster than MemDep. Currently, GVNHoist (which is off by default) makes use ofMemorySSA.
[*]  The minimum density for lowering switches with jump tables has been reducedfrom 40% to 10% for functions which are not marked optsize (that is,compiled with -Os).
  了解更多改进信息,查看完整发布说明。
  使用文档:http://llvm.org/releases/3.9.0/docs/index.html
  
  下载地址:http://llvm.org/releases/download.html#3.9.0
  
页: [1]
查看完整版本: LLVM 3.9 发布,编译器架构