SPIR-V 研究:编译器基本原理(一)

本文介绍了SPIR-V作为编译器中间语言的特性,探讨了其二进制格式和控制流图结构。通过复习编译器的基本结构,包括词法分析、语法分析、语义分析和中间语言生成,强调了前端在编译过程中的作用。SPIR-V的标准化统一了Vulkan中GPU Shader的表示,使得不同平台能更好地进行优化。
摘要由CSDN通过智能技术生成

SPIR-V 研究:编译器基本原理(一)

前面转过两篇关于SPIR-V 中间语言的介绍;接下来笔者准备深入学习一下SPIR-V的标准。根据标准,SPIR-V是以一种二进制格式存在的,并且函数还是以控制流图CFG的形式存在;数据结构也保留了高级语言里的层级关系。(https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation
这样做的目的是为了更好的在目标平台上进行优化;同时Khronos也放出了官方标准的开源编译器Glslang。 所以,为了更好的了解SPIR-V,我们有必要先温习一下编译器的基本原理,特别是前端的词法分析、语法分析、语义分析和中间语言生成。


编译器基本结构

下图是一个一般编译器的编译高级语言的过程。
这里写图片描述
基本上就是预处理(比如C/C++里宏汇编),编译并汇编(每个源码文件都生成对应的.o文件,这时的代码是relocatable的),链接生成可执行文件(linker,把许多.o文件以及用到的库函数.lib文件合并并作全局优化),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值