[发明专利]一种编译器后端指令选择学习系统及具有该系统的编译器和指令选择方法在审
申请号: | 201811035588.9 | 申请日: | 2018-09-06 |
公开(公告)号: | CN109710226A | 公开(公告)日: | 2019-05-03 |
发明(设计)人: | 王全福;张光胜 | 申请(专利权)人: | 天翼电子商务有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 上海沪慧律师事务所 31311 | 代理人: | 朱九皋 |
地址: | 100031 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令选择 编译器 学习系统 存储模块 训练学习 指令 存储 汇编指令片段 模型存储模块 指令选择模块 交叉编译器 汇编代码 汇编指令 自动学习 硬编码 推导 替换 灵活 | ||
本发明公开了一种编译器后端指令选择学习系统及具有该系统的编译器和指令选择方法。该编译器后端指令选择学习系统包括存储所有可能的中间指令的存储模块、存储候选汇编指令片段表的存储模块、指令选择训练学习模块以及训练完成后的训练学习模型存储模块;该具有后端指令选择学习系统的编译器是在编译器后端的指令选择模块中增加了上述的后端指令选择学习系统。通过本发明的编译器后端指令选择学习系统可自动学习到中间指令与汇编指令的最优对应关系,避免了传统方案中的大量的人为手动工作。通过本发明的编译器后端指令选择学习系统,编译器后端不再硬编码这种对应关系,而是自动导入学得的模型,基于学得模型自动推导中间指令所对应的最优汇编代码。这种灵活替换机制也会使得交叉编译器更容易实现。
技术领域
本发明涉及编译器后端技术领域,特别是一种编译器后端指令选择学习系统及具有该系统的编译器和指令选择方法。
背景技术
如图1,经典的编译器在架构上分为前端,优化器与后端三个层次。其中,后端又分为指令选择,指令调度和寄存器这个阶段。
在传统的编译器中,指令选择是由编译器开发者手动确定的:编译器开发者手动确定中间指令(IR)到汇编指令(ASM)的对应关系,并在编译器的后端内采用硬编码(Hardcode)方式把这种对应关系固化到代码里边。
这种方案的弊端在于:
1.编译器开发者需要手动确定中间指令(IR)到汇编指令(ASM)的对应关系,由于一个IR可以对应多种汇编指令片段,选择最优汇编指令的调优的过程需要耗费很多人力。
2.中间指令(IR)到汇编指令(ASM)的最优对应关系被硬编码(Hardcode)方式固化到代码里边,这导致很难灵活适配新的中间或汇编指令片段。
发明内容
本发明的目的在于提供一种编译器后端指令选择学习系统及具有该系统的编译器和指令选择方法,主要解决上述现有编译器的后端指令选择是由编译器开发者手动确定所存在的弊端。实现了如下具体的发明目的:
1、通过“编译器后端指令选择学习系统”自动学习到中间指令(IR)与汇编指令(ASM)的最优对应关系,避免了传统方案中的大量的人为工作。通过“编译器后端指令选择学习系统”,编译器后端不再硬编码(Hardcode)这种对应关系,而是自动导入学得的模型,基于学得模型自动推导中间指令(IR)所对应的最优汇编代码(ASM)。
2、基于“编译器后端指令选择学习系统”的编译器构架。
3、基于“编译器后端指令选择学习系统”的指令选择方法。
为解决上述技术问题,本发明采用如下技术方案:
一种编译器后端指令选择学习系统,其特征在于:它包括存储所有可能的中间指令的存储模块、存储候选汇编指令片段表的存储模块、指令选择训练学习模块以及训练完成后的训练学习模型存储模块;
指令选择学习系统的训练过程包括如下三个环节:
A、中间代码的输入;
B、目标汇编指令的选择;
C、模型的输出与存储。
一种具有后端指令选择学习系统的编译器,其特征在于:它是在编译器后端的指令选择模块中增加了如上所述的后端指令选择学习系统,该后端指令选择学习系统,具有存储所有可能的中间指令的存储模块、存储候选汇编指令片段表的存储模块、指令选择训练学习模块以及训练完成后的训练学习模型存储模块。
一种基于上述编译器的后端指令选择方法,其特征在于:
指令选择过程中,智能指令选择模块首先加载之前已经训练好的模型到内存,然后根据从编译器前级模块传过来的中间代码实时选择对应的最优汇编代码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼电子商务有限公司,未经天翼电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811035588.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:程序语言编辑方法
- 下一篇:一种纹理图集调度的方法