LLVM 语言参考手册 概述

发布于 2021-09-16 13:21:29 字数 651 浏览 1138 评论 0

这份文档是 LLVM 汇编语言的一个参考手册。LLVM 是一个基于静态单赋值(Static Single Assignment SSA)表示提供了类型安全、低级别操作、弹性和简洁的表示所有高级语言的能力。是在LLVM编译策略中一直使用的通用代码表示。

介绍(Introduction)

LLVM代码表示被设计用作三种形式:内存中的编译器IR、磁盘上的字节码表示(适合Just-in-time编译器快速加载)、人类可读的汇编语言表示。这就允许LLVM提供一个强力的中间表示给高效编译器转换和分析,同时提供一种自然的方式来调试和可视化转化。这三种不同的表示是等价的。这份文档描述了人类可读的表示和符号。

LLVM表示旨在表达,输入和扩展同时做到轻量级和低级别。既旨在作为一个通用IR,又足够低级使得高级主意可以很简洁的映射到它(类似微处理器是通用IR,允许很多源语言映射到它们)。通过提供类型信息,LLVM可以被用作优化的目标,举例来说,可以通过指针分析,可以证明一个C自动变量永远不会在当前函数之外被访问,允许它作为一个简单的SSA值而不是一个内存位置。

良好的形式

主意到本文档描述了良好格式化的LLVM汇编语言是很重要的。编译器接受的和所认为的好格式之间存在差异。举例如下,下面的指令是语法合格的,但不是两好格式的:

%x = add i32 1, %x

因为%x的定义并没有覆盖它所有的使用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文