程序生成装置参照包含将块重复处理N次的、有关第i次执行的上述块内定义的变量处于在有关第j次执行的上述块内被参照的相关关系的循环处理的源程序,计算有关第i次的执行的上述块及有关第i次以外的执行的1个以上的上述块中的变量表述的等价关系,对于处于上述相关关系的全部的对象变量的表述,确定与该对象变量的表述等价的不具有上述相关关系的其他变量的表述,生成用来进行上述循环处理的M次的处理的、包括包含有所确定的其他变量的表述的命令语句的程序,其中N≥2,1≤i<N,i<j≤N,M≤N。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及参照包含循环处理的源程序来生成新的程序的技术。
技术介绍
已知有参照包含循环处理的源程序、生成用来使由该循环处理实现的规定处理由多个处理器分担执行的新的程序的编译器等(例如,专利文献1)。这里,所谓循环处理,是将由1个以上的命令语句构成的块反复处理N(N ^ 2)次。根据专利文献1的技术,例如可以生成将N次的循环处理分割为各N/2次处理的两个部分循环处理,由两个处理器独立地并行执行而构成的新的程序。因而,根据专利文献 1的技术,能够将N次的循环处理高速地执行。现有技术文献专利文献专利文献1 日本特许第3028821号专利文献2 日本特许第3234552号非专利文献非专禾丨J 文献 1 :Hans Zima 等“SupercompiIers for Parallel and Vector Computers,,,Addison Wesley Publishing Company Inc. , 1991,(日文翻译)村岡洋一: “ % — ,、一二 y ^ 4 9”,才一厶社,1995专利技术概要专利技术要解决的技术问题但是,在包含在源程序中的循环处理中,在具有在有关第j(i < j ^ N)次的执行的块内的命令语句中参照由有关第i(l ^ i <N)次的执行的块内的命令语句所定义的变量那样的相关关系的情况下,通过专利文献1的方法不能对应。即,在专利文献1的方法中,不能由包含具有这样的相关关系的循环处理的源程序生成用来使用多个处理器高速地执行循环处理的程序。
技术实现思路
所以,本专利技术是鉴于这样的问题而做出的,目的是提供一种用于对于通过参照包含具有上述相关关系的循环处理的源程序,生成用来使用多个处理器将循环处理高速地执行的程序的程序生成装置。用于解决问题的手段为了解决上述问题,有关本专利技术的程序生成装置,通过参照对象源程序而生成新的程序,该对象源程序包含将由1个以上的命令语句构成的块重复处理N次的循环处理,该循环处理的在有关第i次执行的上述块内的命令语句中定义的变量处于被有关第j次执行的上述块内的命令语句所参照的相关关系,其中N彡2,1 < i < N,i < j < N,其特征在于,该程序生成装置具备计算单元,以有关第i次执行的上述块、和有关第i次以外的执行的 1个以上的上述块为对象块,进行计算该对象块中的变量表述的等价关系的计算处理;确定单元,基于上述计算单元计算出的变量表述的等价关系,对于上述变量之中的、处于上述相关关系的全部的对象变量的表述,进行确定与该对象变量的表述等价的不具有上述相关关系的其他变量的表述的确定处理;以及生成单元,生成用来进行上述循环处理的M次的处理的、包含如下命令语句的程序,该命令语句包含有上述确定单元确定的其他变量的表述,其中M彡N。专利技术效果具备上述结构的有关本专利技术的程序生成装置,通过参照包含具有上述相关关系的循环处理的源程序,能够生成用来使用多个处理器将循环处理高速地执行的程序。附图说明图1是表示包括有关实施方式的程序生成装置100的编译器系统1000的结构的块图。图2是表示包含循环处理Rl的部分程序Pl及包含循环处理R4的部分程序P4的图。图3是用来说明数据的相关关系的图。图4是用来说明循环处理Rl中的数据的相关关系的图。图5是表示由程序生成装置100进行的程序生成处理的流程图,后接图6。图6是表示由程序生成装置100进行的程序生成处理的流程图,前接图5,后接图 7。图7是表示由程序生成装置100进行的程序生成处理的流程图,前接图6。图8是表示循环处理Rl中的迭代i及迭代i+Ι的图。图9是表示将名相关删除后的迭代i及迭代i+Ι的图。图10是表示计算关于将名相关删除后的迭代i及迭代i+Ι的各命令语句的变量表述的等价关系的结果的图。图11是表示将名相关删除后的迭代i+2以及计算关于将名相关删除后的迭代i+2 的各命令语句的变量表述的等价关系的结果的图。图12是表示将名相关删除后的迭代i+3以及计算关于将名相关删除后的迭代i+3 的各命令语句的变量表述的等价关系的结果的图。图13是表示将全部的真相关删除后的迭代i+3及迭代变形候选的图。图14是表示循环处理Rl中的迭代0 2以及将名相关删除后的迭代0 2的图。图15是表示计算关于将名相关删除后的迭代0及1的各命令语句的变量表述的等价关系的结果的图。图16是表示计算关于将名相关删除后的迭代2的各命令语句的变量表述的等价关系的结果的图。图17是表示将真相关删除后的迭代0 2及部分程序P2的图。图18是表示部分程序P3的图。图19是表示循环处理R5 R8的图。图20是用来说明进行变量表述的等价关系的计算的其他方法的例子的图。具体实施例方式以下,参照附图对本专利技术的实施方式进行说明。《实施方式》< 概要 >图2是表示在处理完成时、对于数组(array) b (0彡k彡99)能够得到相同的处理结果的等价的部分程序Pl和P4的图。有关实施方式的程序生成装置是将以往的编译器改良的结构,是通过参照包含图 2(a)所示的部分程序Pl的源程序,生成与以往的编译器通过参照由编程者预先生成的包含图2(b)所示的部分程序P4的源程序而生成得到的汇编程序同样的汇编程序的装置。这里,部分程序Pl是包含具有真相关(true dependence)的关系的循环处理Rl 的程序。关于真相关的关系,在后面详细说明,是指由在循环控制变量k是i(0 ^ i < 99) 的情况下执行的块(block) Bl内的命令语句而定义的变量、由在循环控制变量k是i+1的情况下执行的块Bl内的命令语句来参照那样的关系。具有真相关的关系的命令语句间的执行顺序如果与本来的执行顺序逆转,则不能得到正确的结果,所以该循环处理Rl —般一边使循环控制变量k每次增加1 一边依次执行。另一方面,包含在部分程序P4中的循环处理R4是不具有上述那样的真相关的关系的处理。因而,能够使用多个处理器执行。例如,可以将循环处理R4分为循环控制变量k 从0到49的部分循环处理、和循环控制变量k从50到99的部分循环处理、使两个处理器独立地并行执行。由此,与用1个处理器依次执行关于循环控制变量k从0到99的循环处理Rl的情况相比,能够更高速地执行循环处理。如上所述,有关实施方式的程序生成装置通过参照包含图2(a)所示的部分程序 Pl的源程序,能够生成与以往的编译器通过参照包含图2(b)所示的部分程序P4的源程序生成而得到的汇编程序同样的汇编程序。因而,在在如部分程序Pl那样、已经生成了包含具有真相关的关系的循环处理的源程序的情况下,能够不重新生成如部分程序P4那样、包含不具有真相关的关系的循环处理的源程序而生成适合于并行执行的汇编程序,在这一点上,有关实施方式的程序生成装置是有效的。另外,部分程序Pl虽然如上述那样包含具有真相关的关系的循环处理R1,但因为以下说明的理由,可以说是与部分程序P4相比更适合于单一的处理器中的高速执行的程序。这里,一般已知通过将程序内的变量尽量分配给寄存器、能够将程序更高速地执行。这是因为,与存储器相比,向寄存器的访问能够极高速地进行。在一般的编译器中,对于包含在部分程序Pl中的a0、al、a2那样的简单变量分配特定的寄本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:田中旭,森下广之,井上昭彦,
申请(专利权)人:松下电器产业株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。