[发明专利]一种编译器后端代码自动构建方法及系统在审
申请号: | 202111563671.5 | 申请日: | 2021-12-20 |
公开(公告)号: | CN114237573A | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 钟茗;耿洪娜;吕方;冯晓兵 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/33;G06F40/186 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 编译器 后端 代码 自动 构建 方法 系统 | ||
本发明提供一种编译器后端代码自动构建方法,所述方法包括:S1、获取与目标平台同一框架下的已有样本平台的后端描述文件,构建其基于定义‑引用关系的标识符引用关系图;S2、基于标识符引用关系图,对标识符分类,其中,标识符被分为语言特定类型、平台特性信息类型、开发者定义类型;S3、将每条指令中不同类型的标识符转换为对应的敏捷标识符,并基于标识符引用关系图生成每条指令对应的以敏捷标识符表示的代码布局模板,所述代码布局模板中包含有平台特性信息的标识符定位;S4、基于代码布局模板生成目标平台的指令模块,按照定位将目标平台编码指令中的平台特性信息属性值填入指令模板中以生成当前目标平台编码指令对应的编译器后端代码。
技术领域
本发明涉及编译器技术领域,具体来说,涉及编译器后端代码构建技术,更具体地说,涉及编译器后端代码的标准化构建和自动生成技术,再具体涉及到一种编译器后端代码自动构建方法及系统。
背景技术
编译器技术是联系新型处理器以及领域应用的纽带,通常与新型处理器设计同期布局。编译技术的优劣在极大程度上决定了处理器的个性化设计、体系结构优势是否能够充分发挥出来。然而,编译器研发周期相对来说比较漫长,研发过程具有较高难度,这就是编译器研发效率上所谓的“慢、难”问题。
编译研发效率的问题实际上是由编译器自身角色引发的,编译器本身的功能特性要求编译器的研发人员需要储备大量的跨领域知识,编译器研发过程不仅要求研发人员对编译器基础架构、成熟的算法有深入了解,还需要对目标体系结构有一定了解,这就给研发人员带来很大难度:其一,在芯片研发处理器最急需的面向硬件平台的移植需要漫长的摸索期,人工成本和时间成本都很高;其二,编译器复杂难学习,编译器最核心的功能——性能分析与优化则是公认的最具难度的两个阶段,需要长时间的经验积累。
尤其是敏捷的芯片设计方法的出现,极大的加速了新架构的发展,这就意味着大量的新芯片将在短时间内问世,无法等待长时间的摸索来进行芯片对应的编译器开发,使得编译器后端开发速度远落后于芯片设计速度,因此如何高效的开发编译器以应对短时间内出现的大量新芯片成为关键的挑战,人们称之为“敏捷编译器的开发挑战”。
现有的编译器,例如GCC和LLVM。GCC(GNU Compiler Collection,GN U编译器套件)是由GNU(一个开源软件组织)开发的编译器,GCC最初是为GNU操作系统专门编写的一款编译器,现已被大多数类Unix操作系统(如Li nux、BSD、MacOS X等)采纳为标准的编译器,甚至在微软的Windows上也可以使用GCC。GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等,并已被移植到其他多种硬件平台。LLVM是构架编译器(compiler)的框架系统,以C++编写而成,LLVM提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用,可以将它看作是一个模块化和可重复使用的编译器和工具技术的集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111563671.5/2.html,转载请声明来源钻瓜专利网。