【技术实现步骤摘要】
用于从代码语句生成SIMD代码的方法和系统
本公开一般地涉及用于代码生成的软件开发工具,更具体地说,涉及编译代码以便在针对单指令多数据(SIMD)执行配置的机器上执行。
技术介绍
SIMD配置的计算机包括多个处理元件,它们同时针对多个数据点执行相同的操作。SIMD处理元件通常用于同时对多组数值进行相加或相乘,以便实现多媒体编码和呈现以及科学应用。在没有编译器支持的情况下使用SIMD指令实现算法可能需要用户知道有关数据对齐、体系架构特定指令集和SIMD寄存器大小的限制。编译器可以允许用户通过从用户的标量代码生成支持SIMD的代码,利用SIMD处理元件的速度。
技术实现思路
本公开的各实施例公开一种用于从包括非同构代码语句的代码语句生成SIMD代码的方法、计算机程序产品和系统。一个或多个处理器接收多个代码语句,每个代码语句具有采用相应操作符顺序的一个或多个操作符。每个操作符具有类型和关联的操作数。所述多个代码语句中的至少两个代码语句在不同操作符顺序位置中具有相同类型的操作符。所述一个或多个处理器在所述至少两个代码语句的每一个中,针对所述相同类型的操作符标识第一操作符顺序位置。对于所述至少两个代码语句的每一个,所述一个或多个处理器针对操作符顺序位置在所述第一操作符顺序位置之前的操作符及其关联的操作数生成代码。所述一个或多个处理器至少基于所标识的第一操作符顺序位置、对应的操作符类型,以及与所标识的操作符顺序位置处的操作符类型关联的操作数,生成SIMD代码。附图说明从以下将结合附图阅读的对本专利技术的示例性实施例的详细说明,本专利技术的特性和优点将变得显而易见。附图的各 ...
【技术保护点】
一种用于从包括非同构代码语句的代码语句生成SIMD代码的方法,所述方法包括:一个或多个处理器接收多个代码语句,每个代码语句具有采用相应操作符顺序的一个或多个操作符,每个操作符具有类型和关联的操作数,所述多个代码语句中的至少两个代码语句在不同操作符顺序位置中具有相同类型的操作符;所述一个或多个处理器在所述至少两个代码语句的每一个中,针对所述相同类型的操作符标识第一操作符顺序位置;对于所述至少两个代码语句的每一个,所述一个或多个处理器针对操作符顺序位置在所述第一操作符顺序位置之前的操作符及其关联的操作数生成代码;以及所述一个或多个处理器至少基于所标识的第一操作符顺序位置、对应的操作符类型以及与所标识的操作符顺序位置处的操作符类型关联的操作数,生成SIMD代码。
【技术特征摘要】
2013.12.23 US 14/1384241.一种用于从包括非同构代码语句的代码语句生成单指令多数据SIMD代码的方法,所述方法包括:一个或多个处理器接收多个代码语句,每个代码语句具有采用相应操作符顺序的一个或多个操作符,每个操作符具有类型和关联的操作数,其中操作数包括:线性化地址表达式、非线性化地址表达式、存储器相邻操作数,以及非存储器相邻操作数,所述多个代码语句中的至少两个代码语句在不同操作符顺序位置中具有相同类型的操作符;所述一个或多个处理器在所述至少两个代码语句的每一个中,针对所述相同类型的操作符标识第一操作符顺序位置;对于所述至少两个代码语句的每一个,所述一个或多个处理器针对操作符顺序位置在所述第一操作符顺序位置之前的操作符及其关联的操作数生成代码;以及所述一个或多个处理器至少基于所标识的第一操作符顺序位置、对应的操作符类型以及与所标识的操作符顺序位置处的操作符类型关联的操作数,生成SIMD代码。2.根据权利要求1的方法,其中针对操作符及其关联的操作数生成代码包括:标识在所述第一操作符顺序位置之前的第二操作符顺序位置;在所述至少两个代码语句的每一个中,针对具有与所述第二操作符顺序位置对应的操作符类型的操作符标识第三操作符顺序位置;对于所述至少两个代码语句的每一个,针对操作符顺序位置在所述第三操作符顺序位置之前的操作符及其关联的操作数生成代码;以及至少基于所标识的第二和第三操作符顺序位置、对应的操作符类型以及与所标识的操作符顺序位置处的所述操作符类型关联的操作数,生成SIMD代码。3.根据权利要求1的方法,其中针对操作符及其关联的操作数生成代码进一步包括生成SIMD代码。4.根据权利要求2的方法,其中针对操作符及其关联的操作数生成代码进一步包括生成SIMD代码。5.根据权利要求1的方法,其中操作符顺序包括以下之一:操作符优先顺序,以及操作符在语句中的位置顺序。6.根据权利要求1的方法,其中操作符包括:加法和减法操作符、乘法和除法操作符、存储操作符、转换操作符。7.一种计算机可读存储介质,其上存储有用于从包括非同构代码语句的代码语句生成单指令多数据SIMD代码的计算机程序,所述计算机程序包括用于执行以下操作的程序指令:一个或多个处理器接收多个代码语句,每个代码语句具有采用相应操作符顺序的一个或多个操作符,每个操作符具有类型和关联的操作数,其中操作数包括:线性化地址表达式、非线性化地址表达式、存储器相邻操作数,以及非存储器相邻操作数,所述多个代码语句中的至少两个代码语句在不同操作符顺序位置中具有相同类型的操作符;所述一个或多个处理器在所述至少两个代码语句的每一个中,针对所述相同类型的操作符标识第一操作符顺序位置;对于所述至少两个代码语句的每一个,所述一个或多个处理器针对操作符顺序位置在所述第一操作符顺序位置之前的操作符及其关联的操作数生成代码;以及所述一个或多个处理器至少基于所标识的第一操作符顺序位置、对应的操作符类型以及与所标识的操作符顺序位置处的操作符类型关联的操作数,生成SIMD代码。8.根据权利要求7的计算机可读存储介质,其中针对操作符及其关联的操作数生成代码包括:标识在所述第一操作...
【专利技术属性】
技术研发人员:E·阿米里,C·M·巴顿,D·M·帕梅洛,R·希尔韦拉,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。