LLVM项目是一个编译器基础设施,它由一个庞大的代码库构成,这些代码库可以在编译器的不同阶段进行使用。LLVM的名字不是缩写,而是一个项目名称。LLVM项目提供了一套语言无关的编译技术,包括优化器、代码生成器和其它工具。这些工具支持C/C++、Objective-C、Fortran等语言,并能够支持多种硬件平台。 IR(中间表示)是编译器用于表示程序的一种数据结构,它是一种易于阅读、类似汇编的中间格式。IR对于人类具有较高的可读性,基于三地址代码,且具备了汇编语言的一些特点。IR在编译过程中扮演着非常关键的角色,因为它为各种不同的前端语言和后端硬件提供了一种统一的表示方式。 Bitcode(.bc)是LLVM的IR的二进制格式,它是为了便于存储和传输而设计的。编译器前端可以将源代码编译成IR,并进一步编译成Bitcode格式,这有利于减少文件大小并保护源代码不被轻易阅读。 JIT(即时编译器)是一种在程序运行时将源代码或字节码编译成机器代码的技术。JIT编译器在程序运行中动态编译代码,而不是在程序运行前进行编译,这种技术可以在程序执行期间优化代码,提高运行效率。 SSA(单一静态赋值)是一种用于编译器的中间表示,它能够保证每个变量只被赋值一次。SSA形式是编译器优化中的一个关键概念,它简化了变量的使用模式,使得编译器可以更方便地对程序进行分析和转换。 Michael Shah博士是一位在LLVM领域有深入研究的讲师,他在波士顿东北大学教授计算机系统、计算机图形学和游戏引擎开发课程。他的研究领域是使用静态/动态分析和软件可视化技术开发性能工具。他的演讲“LLVM-Clang”旨在介绍LLVM编译器基础设施,并提供一些交互式示例,让用户能够安装并构建LLVM,然后编写和运行自己的函数传递(function pass)。 在演讲的第二部分,Shah博士将向听众展示如何通过一步步的实例,从安装开始,最终编写并运行第一个函数传递。然后,他将基于这个基础,进一步演示如何开始输出程序的一些指标和性能数据。除此之外,他还将提供一些关于如何进一步使用LLVM,以及为工作与LLVM可用的资源的步骤。 在准备会议材料时,Shah博士提供了一些资源链接供听众下载和设置LLVM,并列出了一些优秀的学习资源。例如,***提供了获取和设置LLVM的指南,而***则提供了另一个极好的入门指南。 在演讲的Shah博士还介绍了一些基础术语,包括LLVM项目本身、IR、Bitcode、JIT和SSA。这些术语对于理解整个LLVM编译器架构是非常重要的。 此外,Shah博士还提醒听众,如果想要跟上演讲的节奏,需要提前在笔记本电脑上安装LLVM 5.0。如果无法跟上,则可以在其网站上找到相关的演示脚本和材料。Shah博士也鼓励现场观众参与和介绍自己。 Shah博士在个人简介中提到了自己在教学、吉他和研究方面的兴趣,这进一步表明他是一个在多个领域都有深入研究的专家。通过他准备的演示和学习材料,可以明确地看出他对教育和开源编译器技术的热情。
剩余192页未读,继续阅读
- 粉丝: 15
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助