LLVM 7改进了性能分析,链接

LLVM(用于构建跨平台编译器的开源框架)背后的开发人员推出了LLVM 7 。 新版本按计划每六个月发布一次,作为该项目主要版本节奏的一部分。

LLVM支持几种现代语言编译器,包括Apple的Swift,Rust语言和Clang C / C ++编译器。 LLVM 7引入了对其本机功能和配套工具的修订,使构建,调试和分析LLVM生成的软件变得更加容易。

[更深入: 如何开始使用WebAssembly WebAssembly的下一步是什么 8个使WebAssembly崭露头角的项目 •那么, WebAssembly的下一步究竟是什么? | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

LLVM核心的更改包括:

  • 在Microsoft Windows上安装时,LLVM不再提供与Visual Studio的直接集成。 而是通过Visual Studio的LLVM编译器工具链Visual Studio扩展的单独安装的插件来提供集成。
  • 改进了用于编译Microsoft Windows可执行文件资源的llvm-rc工具,使它更容易使用LLVM生成Windows应用程序,而无需使用许多Microsoft自己的工具。
  • 浮点强制转换(通过在小数点后舍弃数据将浮点数转换为整数)已得到优化,但对于依赖于此功能不确定行为的开发人员而言,这可能会引起问题。 Clang有一个新的命令行开关来检测此问题。

LLVM的链接工具lld受益于速度的大幅提高。 LLVM的创建者声称lld现在比平台本地链接器(例如Microsoft Windows上的link.exe )“快得多”,并且它已经可以在生产中生成通用的Unix,Windows和MinGW应用程序。 该项目还将lld提升为LLVM生成的WebAssembly应用程序的默认链接器,因为WebAssembly旨在成为编译器工具链的一流目标。

LLVM 7新增了llvm-mca ,它是一种性能分析工具,它可以测量生成的机器代码的行为-不仅是指令的吞吐量,还包括处理器资源的使用情况。 使用llvm-mca ,可以评估LLVM生成的代码每个周期使用多少指令。

llvm-mca工具的工作原理是接受已用内联代码注释(例如,C中的__asm_volatile__asm_volatile ,以指示应分析哪些指令。 生成的报告包括有关多次迭代(默认值为100)上的代码的统计信息,以及每条指令在通过处理器的指令流水线时的状态转换的时间线视图。 对于相同的工作,这使得更容易确定LLVM生成的代码是否比手动汇编的效率更高。

LLVM工具集还新增了llvm-exegesis ,它是一种基准测试工具,用于确定给定体系结构的指令集的性能。 它会及时编译一段代码,以在可用硬件上以最高的并行度来测试有问题的指令,并报告已测试指令的延迟。 该工具主要用于验证供应商提供的有关芯片组上指令行为的信息,但是为新架构创建LLVM后端的人可以使用它来微调那里的指令调度。

From: https://www.infoworld.com/article/3305071/llvm-7-improves-performance-analysis-linking.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值