[发明专利]一种代码生成方法及装置在审
申请号: | 201910702120.9 | 申请日: | 2019-07-31 |
公开(公告)号: | CN112306502A | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 陈华;刘强;杨扬 | 申请(专利权)人: | 上海华为技术有限公司 |
主分类号: | G06F8/51 | 分类号: | G06F8/51 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 吴磊 |
地址: | 201206 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 生成 方法 装置 | ||
本发明公开了一种代码生成方法及装置,该方法包括:获取目标文本以及目标处理器的类型;将所述目标文本转换为基于C的矩阵编程语言CM的代码,并根据所述CM的代码构建有向无环图DAG;根据所述DAG和所述目标处理器从预先设置的模板库中选择矢量化方案,所述矢量化方案包括与所述处理器对应的代码;根据所述矢量化方案生成所述目标处理器的指令。该方法可以根据目标文本生成目标处理器类型的指令,当需要处理相同的业务逻辑时,可以根据该CM代码在模板库中选择该目标处理器的矢量化方案,而不需要重新编写基于目标处理器的代码,这样可以节约人力成本。
技术领域
本发明涉及计算机领域,具体涉及编译器与编程语言领域,尤其涉及一种代码生成方法及装置。
背景技术
在通信领域,有多种处理器支持基带算法开发,例如基于Intel 8086且向后兼容的中央处理器、进阶精简指令集机器(advanced RISC machine,ARM)以及数字信号处理器(digital signal processor,DSP)等。对于不同平台以及不同型号的DSP,其架构及指令的实现方式也不同。
现有的主流处理器常用的指令数较多,通常来说,大部分主流的处理器常用指令都在300条以上。对于开发人员来说,学习和掌握的周期较长。而每一种处理器的指令不同,内部数据并行方式不同。
开发人员基于A处理器编写出一套代码之后,由于A处理器与B处理器的指令不同,若想要在B处理器上实现同样的业务逻辑,则需要重新编写基于B处理器的代码。这样在开发过程中浪费了大量的人力资源。
发明内容
本发明实施例第一方面提供了一种代码生成方法,该方法包括:获取目标文本以及目标处理器的类型;将所述目标文本转换为基于C的矩阵编程语言CM的代码,并根据所述CM的代码构建有向无环图DAG;根据所述DAG和所述目标处理器从预先设置的模板库中选择矢量化方案,所述矢量化方案包括与所述处理器的类型对应的代码;根据所述矢量化方案生成所述目标处理器的指令。该方法可以根据目标文本生成目标处理器类型的指令,当需要处理相同的业务逻辑时,可以根据该CM代码在模板库中选择该目标处理器的矢量化方案,而不需要重新编写基于目标处理器的代码,这样可以节约人力。
可选的,结合第一方面,在第一方面的第一种可能的实现方式中,所述将所述目标文本转换为基于C的矩阵编程语言CM的代码,并根据所述CM的代码构建有向无环图DAG之后,所述方法还包括:将所述DAG转换为目标数据,所述目标数据是javascript对象简谱(javascript object notation,JSON)格式的数据;根据所述目标处理器确定所述目标处理器对应的数据格式;所述根据所述DAG和所述目标处理器从预先设置的模板库中选择矢量化方案包括:根据所述目标数据和所述目标处理器对应的数据格式从所述预先设置的模板库中选择矢量化方案。
可选的,结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述DAG和所述目标处理器从预先设置的模板库中选择矢量化方案之后,所述方法还包括:根据所述目标处理器将所述矢量化方案进行优化。
本发明实施例第二方面提供了一种代码生成的装置,其特征在于,包括:获取模块,用于获取目标文本以及目标处理器的类型;处理模块,用于将所述目标文本转换为基于C的矩阵编程语言CM的代码,并根据所述CM的代码构建有向无环图DAG;所述处理模块,还用于根据所述DAG和所述目标处理器从预先设置的模板库中选择矢量化方案,所述矢量化方案包括与所述处理器的类型对应的代码;所述处理模块,还用于根据所述矢量化方案生成所述目标处理器的指令。该装置可以根据目标文本生成目标处理器类型的指令,当需要处理相同的业务逻辑时,可以在模板库中选择该目标处理器的矢量化方案,而不需要重新编写基于目标处理器的代码,这样可以节约人力。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华为技术有限公司,未经上海华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910702120.9/2.html,转载请声明来源钻瓜专利网。