编译优化方法、装置、编译器、编译设备、介质及程序与流程

本申请实施例涉及编译,具体涉及一种编译优化方法、装置、编译器、编译设备、介质及程序。
背景技术:
1、编译是将高级语言编写的程序代码转换为计算机的处理器可执行的机器代码的过程。向量化编译作为编译过程的一部分,可以用于将程序中能够并行处理的操作转换为向量指令,即通过向量化将程序中能够并行执行的操作转换成向量指令,以便通过向量处理单元执行向量指令,从而加快编译后程序的执行速度。
2、然而,向量化编译在进行向量化时,可能引入较大的指令开销,因此如何提供编译优化方案,以降低向量化编译引入的指令开销,从而提升编译后的程序性能,成为了本领域技术人员亟需解决的技术问题。
技术实现思路
1、有鉴于此,本申请实施例提供一种编译优化方法、装置、编译器、编译设备、介质及程序,以降低向量化编译引入的指令开销,从而提升编译后的程序性能。
2、为实现上述目的,本申请实施例提供如下技术方案。
3、第一方面,本申请实施例提供一种编译优化方法,包括:
4、在程序编译过程中,确定程序使用的混洗指令和类混洗指令;其中,混洗指令的指令操作为混洗操作,类混洗指令的指令操作包括类混洗操作,类混洗操作用于对向量执行涉及位操作的处理,且不同于混洗操作;
5、确定程序使用的混洗指令和类混洗指令之间的专门指令依赖关系,得到存在专门指令依赖关系的多条指令;
6、对于存在专门指令依赖关系的多条指令中的类混洗指令,将类混洗指令的类混洗操作转换为混洗指令,以使用转换后的混洗指令实现类混洗指令的类混洗操作相应的功能;
7、将存在专门指令依赖关系的混洗指令进行合并。
8、第二方面,本申请实施例提供一种编译优化装置,包括:
9、指令确定模块,用于在程序编译过程中,确定程序使用的混洗指令和类混洗指令;其中,混洗指令的指令操作为混洗操作,类混洗指令的指令操作包括类混洗操作,类混洗操作用于对向量执行涉及位操作的处理,且不同于混洗操作;
10、依赖关系确定模块,用于确定程序使用的混洗指令和类混洗指令之间的专门指令依赖关系,得到存在专门指令依赖关系的多条指令;
11、指令转换模块,用于对于存在专门指令依赖关系的多条指令中的类混洗指令,将类混洗指令的类混洗操作转换为混洗指令,以使用转换后的混洗指令实现类混洗指令的类混洗操作相应的功能;
12、指令合并模块,用于将存在专门指令依赖关系的混洗指令进行合并。
13、第三方面,本申请实施例提供一种编译器,包括如上述第二方面所述的编译优化装置。
14、第四方面,本申请实施例提供一种编译设备,包括至少一个处理器和至少一个存储器;所述存储器存储编译程序的指令,所述处理器调用编译程序的指令,以执行如上述第一方面所述的编译优化方法。
15、第五方面,本申请实施例提供一种存储介质,所述存储介质存储编译程序的指令,所述编译程序的指令被执行时,实现如上述第一方面所述的编译优化方法。
16、第六方面,本申请实施例提供一种计算机程序产品,包括编译程序的指令,所述编译程序的指令被执行时,实现如上述第一方面所述的编译优化方法。
17、本申请实施例提供的编译优化方法可以在程序编译过程中,确定程序使用的混洗指令和类混洗指令;其中,混洗指令的指令操作为混洗操作,类混洗指令的指令操作包括类混洗操作,类混洗操作用于对向量执行涉及位操作的处理,且不同于混洗操作;从而,确定程序使用的混洗指令和类混洗指令之间的专门指令依赖关系,得到存在专门指令依赖关系的多条指令;进而,对于存在专门指令依赖关系的多条指令中的类混洗指令,将类混洗指令的类混洗操作转换为混洗指令,以使用转换后的混洗指令实现类混洗指令的类混洗操作相应的功能;然后,将存在专门指令依赖关系的混洗指令进行合并,即对程序中连续的混洗操作进行优化,实现减少程序中的指令数量,提升编译后的程序性能。
技术特征:
1.一种编译优化方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述对于存在专门指令依赖关系的多条指令中的类混洗指令,将类混洗指令的类混洗操作转换为混洗指令包括:
3.根据权利要求2所述的方法,其特征在于,所述存在专门指令依赖关系的多条指令中的类混洗指令包括:
4.根据权利要求3所述的方法,其特征在于,所述连续类混洗指令满足连续指令转换条件包括:连续类混洗指令中的前驱指令对应的后续指令均是类混洗指令;
5.根据权利要求1所述的方法,其特征在于,所述对于存在专门指令依赖关系的多条指令中的类混洗指令,将类混洗指令的类混洗操作转换为混洗指令包括:
6.根据权利要求1所述的方法,其特征在于,在将存在专门指令依赖关系的混洗指令进行合并之前,所述方法还包括:
7.根据权利要求1-6任一项所述的方法,其特征在于,所述将存在专门指令依赖关系的混洗指令进行合并包括:
8.根据权利要求7所述的方法,其特征在于,所述将存在专门指令依赖关系的混洗指令中的前驱混洗指令迭代的合并到后续混洗指令包括:
9.根据权利要求1所述的方法,其特征在于,所述混洗指令的控制向量中的控制元素由立即数、寄存器值或从内存读取的数值指定;
10.根据权利要求1所述的方法,其特征在于,还包括:
11.根据权利要求10所述的方法,其特征在于,所述利用混洗指令的置零特性,将混洗指令需要置零的目标元素对应的控制元素赋值为预设值包括:
12.根据权利要求10或11所述的方法,其特征在于,所述混洗指令的置零特性包括如下任一项:
13.根据权利要求1所述的方法,其特征在于,所述确定程序使用的混洗指令和类混洗指令包括:
14.一种编译优化装置,其特征在于,包括:
15.一种编译器,其特征在于,包括如权利要求14所述的编译优化装置。
16.一种编译设备,其特征在于,包括至少一个处理器和至少一个存储器;所述存储器存储编译程序的指令,所述处理器调用编译程序的指令,以执行如权利要求1-13任一项所述的编译优化方法。
17.一种存储介质,其特征在于,所述存储介质存储编译程序的指令,所述编译程序的指令被执行时,实现如权利要求1-13任一项所述的编译优化方法。
18.一种计算机程序产品,其特征在于,包括编译程序的指令,所述编译程序的指令被执行时,实现如权利要求1-13任一项所述的编译优化方法。
技术总结
本申请实施例提供一种编译优化方法、装置、编译器、编译设备、介质及程序,其中方法包括:在程序编译过程中,确定程序使用的混洗指令和类混洗指令;确定程序使用的混洗指令和类混洗指令之间的专门指令依赖关系,得到存在专门指令依赖关系的多条指令;对于存在专门指令依赖关系的多条指令中的类混洗指令,将类混洗指令的类混洗操作转换为混洗指令,以使用转换后的混洗指令实现类混洗指令的类混洗操作相应的功能;将存在专门指令依赖关系的混洗指令进行合并。本申请实施例可以减少程序中的指令数量,提升编译后的程序性能。
技术研发人员:包赵泠,赖庆宽,康梦博,潘治
受保护的技术使用者:海光信息技术股份有限公司
技术研发日:
技术公布日:2024/11/28
技术研发人员:包赵泠,赖庆宽,康梦博,潘治
技术所有人:海光信息技术股份有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
