System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 解析方法、装置、电子设备及存储介质制造方法及图纸_技高网

解析方法、装置、电子设备及存储介质制造方法及图纸

技术编号:40000321 阅读:5 留言:0更新日期:2024-01-09 03:23
本公开涉及编译技术领域,提出一种解析方法、装置、电子设备及存储介质,解析方法用于解析确定编译器的编译指令序列是否可优化,包括:解析编译指令序列,确定每条指令所包括的字段,字段指示指令的类型、源操作数地址、目的操作数地址中的一种或多种;解析字段,判断编译指令序列的资源使用合理性,在编译指令序列的资源使用不合理时,确定编译指令序列可优化,并输出编译指令序列的优化方式。本公开实施例的解析方法,能够检测编译器的编译指令序列,自动确定资源使用合理性,并在资源使用不合理时自动输出编译指令序列的优化方式,能够降低人力资源成本,提升工作效率,且给出的优化方式的准确度更高,提高解析效果。

【技术实现步骤摘要】

本公开涉及编译,尤其涉及一种解析方法、装置、电子设备及存储介质


技术介绍

1、开发人员采用编程语言编写的程序代码,通常需要通过编译器编译成机器可执行的编译指令序列后,才能在指定机器上运行。编译指令序列的好坏与编译指令序列对资源使用的合理性相关,现有技术中可通过指令运行时间或者特定性能基准测试等解析编译指令序列,通过肉眼来观察解析的结果确定编译指令序列的好坏和编译指令序列的优化方式。

2、但实际应用中编译指令序列通常有很多指令,全靠肉眼解析确定编译指令序列的好坏和编译指令序列的优化方式,一是人力资源成本高且效率低,二是准确度可能不够,解析效果尚有提升的空间。


技术实现思路

1、有鉴于此,本公开提出了一种解析方法、装置、电子设备及存储介质,本公开实施例的解析方法,能够检测编译器的编译指令序列,自动确定资源使用合理性,并在资源使用不合理时自动输出编译指令序列的优化方式,能够降低人力资源成本,提升工作效率,且给出的优化方式的准确度更高,提高解析效果。

2、根据本公开的一方面,提供了一种解析方法,用于解析确定编译器的编译指令序列是否可优化,所述方法包括:获取所述编译器对当前程序代码进行编译得到的所述编译指令序列,所述编译指令序列包括多条指令;解析所述编译指令序列,确定每条指令所包括的字段,所述字段指示所述指令的类型、源操作数地址、目的操作数地址中的一种或多种;解析所述字段,判断所述编译指令序列的资源使用合理性,所述资源包括具备存储功能的模块;在所述编译指令序列的资源使用不合理时,确定所述编译指令序列可优化,并输出所述编译指令序列的优化方式。

3、在一种可能的实现方式中,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:针对每个资源,根据所述源操作数地址、所述目的操作数地址,统计所述编译指令序列使用的该资源的最大数量;根据预设的资源配置参数,确定按照所述最大数量为所述编译指令序列分配该资源时,允许启动的任务数量,所述任务用于执行所述编译指令序列;在各资源对应的允许启动的任务数量最小值小于任务调度所需活跃任务数量时,判断所述编译指令序列的资源使用不合理。

4、在一种可能的实现方式中,在各资源对应的允许启动的任务数量最小值小于任务调度所需活跃任务数量,且所述最小值对应的资源包括顶点存储器时,所述任务包括顶点任务,所述优化方式包括降低单个顶点任务所需要占用的顶点存储器数量;在各资源对应的允许启动的任务数量最小值小于任务调度所需活跃任务数量,且所述最小值对应的资源包括通用数据寄存器时,所述优化方式包括移出所述通用数据寄存器中的无效数据。

5、在一种可能的实现方式中,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:根据所述指令的类型、所述源操作数地址、所述目的操作数地址,确定所述编译指令序列使用的资源的生命周期,根据所述编译指令序列使用的资源的生命周期,确定执行每条指令时使用的资源的数量;根据执行每条指令时使用的资源的数量,确定执行所述编译指令序列使用的资源的最小数量;在所述最小数量小于执行所述编译指令序列使用的资源的实际数量时,判断所述编译指令序列的资源使用不合理。

6、在一种可能的实现方式中,在所述最小数量小于执行所述编译指令序列使用的资源的实际数量时,所述优化方式包括:选择生命周期小于第一阈值且仅作为所述源操作数地址使用的资源,替换仅作为所述目的操作数地址使用的资源。

7、在一种可能的实现方式中,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:根据所述源操作数地址、所述目的操作数地址,确定所述编译指令序列中各指令的依赖关系;根据存在依赖关系的指令的源操作数地址、目的操作数地址,判断所述存在依赖关系的指令是否可压缩;在所述存在依赖关系的指令可压缩时,判断所述编译指令序列的资源使用不合理。

8、在一种可能的实现方式中,在所述存在依赖关系的指令可压缩时,所述优化方式包括:压缩所述存在依赖关系的指令,其中,将所述存在依赖关系的指令中仅作为源操作数地址的资源,作为压缩后指令的源操作数地址;将所述存在依赖关系的指令中仅作为目的操作数地址的资源,作为压缩后指令的目的操作数地址;根据所述存在依赖关系的类型,确定压缩后指令的类型。

9、在一种可能的实现方式中,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:针对所述编译指令序列中的任意指令,根据该指令的类型确定该指令的执行时间大于第二阈值,且所述编译指令序列中,在该指令之后存在与该指令无依赖关系的其他指令时,判断所述编译指令序列的资源使用不合理;所述优化方式包括将所述与该指令无依赖关系的其他指令的执行顺序前移。

10、在一种可能的实现方式中,在所述编译指令序列为多层嵌套结构时,所述方法还包括:将所述编译指令序列的任意指令作为当前指令,根据所述当前指令的源操作数地址,追踪所述编译指令序列中在所述当前指令之前执行、涉及当前指令的源操作地址的其他指令;根据追踪到的指令判断所述当前指令的源操作数地址是否出现读/写行为冲突;在出现读/写行为冲突时,将读/写行为冲突以日志形式输出。

11、在一种可能的实现方式中,所述方法还包括:确定所述编译指令序列的每条指令对应的嵌套层次的标记值;根据所述标记值,确定所述编译指令序列的嵌套层次结构的可视化数据,将所述可视化数据以日志形式输出。

12、在一种可能的实现方式中,所述资源包括临时寄存器和中继寄存器,且所述临时寄存器存储所述编译指令序列执行时使用的整型数据和/或浮点型数据时,所述优化方式包括:使用所述中继寄存器替代所述临时寄存器存储所述整型数据和/或所述浮点型数据。

13、根据本公开的另一方面,提供了一种解析装置,用于解析确定编译器的编译指令序列是否可优化,所述装置包括:获取模块,用于获取所述编译器对当前程序代码进行编译得到的所述编译指令序列,所述编译指令序列包括多条指令;第一解析模块,用于解析所述编译指令序列,确定每条指令所包括的字段,所述字段指示所述指令的类型、源操作数地址、目的操作数地址中的一种或多种;第二解析模块,用于解析所述字段,判断所述编译指令序列的资源使用合理性,所述资源包括具备存储功能的模块;第一输出模块,用于在所述编译指令序列的资源使用不合理时,确定所述编译指令序列可优化,并输出所述编译指令序列的优化方式。

14、在一种可能的实现方式中,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:针对每个资源,根据所述源操作数地址、所述目的操作数地址,统计所述编译指令序列使用的该资源的最大数量;根据预设的资源配置参数,确定按照所述最大数量为所述编译指令序列分配该资源时,允许启动的任务数量,所述任务用于执行所述编译指令序列;在各资源对应的允许启动的任务数量最小值小于任务调度所需活跃任务数量时,判断所述编译指令序列的资源使用不合理。

15、在一种可能的实现方式中,在各资源对应的允许启动的任务数量最小值小于任务调度所需本文档来自技高网...

【技术保护点】

1.一种解析方法,其特征在于,用于解析确定编译器的编译指令序列是否可优化,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:

3.根据权利要求2所述的方法,其特征在于,

4.根据权利要求1所述的方法,其特征在于,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:

5.根据权利要求4所述的方法,其特征在于,在所述最小数量小于执行所述编译指令序列使用的资源的实际数量时,所述优化方式包括:

6.根据权利要求1所述的方法,其特征在于,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:

7.根据权利要求6所述的方法,其特征在于,在所述存在依赖关系的指令可压缩时,所述优化方式包括:

8.根据权利要求1所述的方法,其特征在于,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:

9.根据权利要求1所述的方法,其特征在于,在所述编译指令序列为多层嵌套结构时,所述方法还包括:

10.根据权利要求9所述的方法,其特征在于,所述方法还包括:

11.根据权利要求1所述的方法,其特征在于,所述资源包括临时寄存器和中继寄存器,且所述临时寄存器存储所述编译指令序列执行时使用的整型数据和/或浮点型数据时,所述优化方式包括:

12.一种解析装置,其特征在于,用于解析确定编译器的编译指令序列是否可优化,所述装置包括:

13.一种电子设备,其特征在于,包括:

14.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至11中任意一项所述的方法。

...

【技术特征摘要】

1.一种解析方法,其特征在于,用于解析确定编译器的编译指令序列是否可优化,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:

3.根据权利要求2所述的方法,其特征在于,

4.根据权利要求1所述的方法,其特征在于,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:

5.根据权利要求4所述的方法,其特征在于,在所述最小数量小于执行所述编译指令序列使用的资源的实际数量时,所述优化方式包括:

6.根据权利要求1所述的方法,其特征在于,所述解析所述字段,判断所述编译指令序列的资源使用合理性,包括:

7.根据权利要求6所述的方法,其特征在于,在所述存在依赖关系的指令可压缩时,所述优化方式包括:

8.根据权利要求1所...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1