发明名称 最佳化装置
摘要 藉由常数固定变数定义侦测单元7与使用表示侦测单元8,而使常数固定变数之定义及使用资讯储存于常数固定变数资讯固定单元6中。部份常数表示重写单元9将一常数固定变数重写成一常数,当变数被重写成常数时,其允许含有变数之表示被卷积成一常数。价格判断及重写单元10藉由价格而判断是否使用变数而将其载入于暂存器中,或是否进行常数传播,且如果欲进行常数传播,则以一常数来重写变数。资源分配单元ll将变数分配至一资源。记忆体变数重写单元12将分配至记忆体的常数固定变数重写成一常数值。常数固定变数定义移除单元13移除变成不需要之常数固定变数的定义。
申请公布号 TW434512 申请公布日期 2001.05.16
申请号 TW085106680 申请日期 1996.06.04
申请人 松下电器产业股份有限公司 发明人 小谷谦介;佐山旬子;田中旭
分类号 G06F9/45 主分类号 G06F9/45
代理机构 代理人 林志刚 台北巿南京东路二段一二五号七楼
主权项 1.一种最佳化装置,置于用以将由程式语言所写成的程式编译成机器语言程式或组合程式之编译器中,且使写成程式语言之程式最佳化并输出一最佳化后的程式,此最佳化装置包含:管理装置,用于管理一常数固定变数(第七图之a),其为程式中之常数(第七图之200)所替代之变数,作为常数固定变数之相关表示组,藉由结合一表示(a=200)其中常数被替代成常数固定变数,与一表示(在s2与s3之表示)其中常数固定变数为一运算元;第一重写装置(9),在其中常数固定变数为一运算元之相关表示组中的表示之间,用于将一表示(b=1000+a)其中任意其它运算元为一常数,及一单元运算之表示其中常数固定变数为一运算元,重写成一表示其中由常数固定变数所固定之常数为一运算元;第一估计装置(18),在进行该第一重写装置的重写之后,当常数固定变数(a)其没有被重写成一常数,此常数系由常数固定变数所固定的常数即时资料所取代,并被设定为机器语言运算之运算元时,用于估计执行循环且/或机器语言指令之码尺寸,此机器语言指令是从其中常数固定变数为一运算元之表示所产生而成,于常数固定变数之相关表示组中,根据常数之位元组长度;第二估计装置(17),在进行该第一重写装置的重写之后,当一暂存器储存由没有被重写成常数之常数固定变数所固定的常数,被设定为机器语言运算之运算元时,用于估计一执行循环且/或机器语言指令之码尺寸,此机器语言指令是从一表示(a=200)其中常数被替代成常数固定变数,及一表示(a1=a+x)其中常数固定变数为一运算元所产生,于常数固定变数之相关表示组中;比较装置(19),对于各相关表示组用于比较该第一估计装置之估计结果与该第二估计装置之估计结果;第二重写装置(20),在相关表示组中,其中由于该比较装置之比较的结果,该第一估计装置之估计结果不大于该第二估计装置之估计结果,用于将使用作为运算元之任意常数固定变数重写成由常数固定变数所固定之常数;及第三重写装置(13),当任意表示(在s2与s3之表示)其中常数固定变数使用作为运算元,被重写成一表示(在s2与s3之表示)其中由常数固定变数所固定之常数使用作为运算元,用于删除一表示(a=200)其中一常数被替代成常数固定变数。2.如申请专利范围第1项所述之最佳化装置,其中该最佳化装置进一步包含:第四重写装置(第三图之a5),用于将藉由该第一及第二重写装置所进行的重写而使任意运算元做成一常数的表示(10000+200),重写成一常数其为常数表示之运算结果;控制装置,用于使在由第四重写装置所进行的重写所产生的表示中欲由运算结果所替代之新常数固定变数、一表示(b=10200)其中常数被替代成常数固定变数、任意表示(在s4与s5之表示)其中常数固定变数被使用作为运算元,被该管理装置管理成常数固定变数之相关表示组;及启动装置,对新由该管理装置所管理的相关表示组而言,用于启动该第一重写装置。3.如申请专利范围第1项所述之最佳化装置,其中该最佳化装置进一步包含:资源分配装置(11),在由该第二重写装置进行重写之后,用于分配程式中之变数至暂存器或记忆体,根据变数之生命范围的重叠状态及各变数之使用频率;及第五重写装置(12),用于在变数上进行常数固定变数之判断,这些变数系被该资源分配装置分配至记忆体,且将在判断后的常数固定变数之相关表示组中是一运算元之任意常数固定变数重写成常数。4.如申请专利范围第2项所述之最佳化装置,其中该最佳化装置进一步包含:资源分配装置(11),在由该第二重写装置进行重写之后,用于分配程式中之变数至暂存器或记忆体,根据变数之生命范围的重叠状态及各变数之使用频率;及第五重写装置(12),用于在变数上进行常数固定变数之判断,这些变数系被该资源分配装置分配至记忆体,且将在判断后的常数固定变数之相关表示组中是一运算元之任意常数固定变数重写成常数。5.如申请专利范围第1项所述之最佳化装置,其中该最佳化装置进一步包含:价格储存装置(15),用于储存许多机器语言指令,及代表一执行循环之价格且/或各机器语言指令之码尺寸,将指令与价格结合,该第一估计装置包含:第一置换装置(18),在该第一重写装置进行重写之后,用于以机器语言指令来置换其中常数固定变数为运算元之相关表示组中的各表示,在此机器语言指令中表示之常数固定变数为一运算元,作为代表由常数固定变数所固定之常数的即时资料;及第一累积装置(18),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果;且该第二估计装置包含:第二置换装置(17),在该第一重写装置进行重写之后,于相关表示组中,用于以机器语言指令其中储存常数之暂存器被设定为一运算元,来置换各表示其中常数被替代成常数固定变数,及各表示其中常数固定变数为一运算元;及第二累积装置(19),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果。6.如申请专利范围第2项所述之最佳化装置,其中该最佳化装置进一步包含:价格储存装置(15),用于储存许多机器语言指令,及代表一执行循环之价格且/或各机器语言指令之码尺寸,将指令与价格结合,该第一估计装置包含:第一置换装置(18),在该第一重写装置进行重写之后,用于以机器语言指令来置换其中常数固定变数为运算元之相关表示组中的各表示,在此机器语言指令中表示之常数固定变数为一运算元,作为代表由常数固定变数所固定之常数的即时资料;及第一累积装置(18),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果;且该第二估计装置包含:第二置换装置(17),在该第一重写装置进行重写之后,于相关表示组中,用于以机器语言指令其中储存常数之暂存器被设定为一运算元,来置换各表示其中常数被替代成常数固定变数,及各表示其中常数固定变数为一运算元;及第二累积装置(19),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果。7.如申请专利范围第3项所述之最佳化装置,其中该最佳化装置进一步包含:价格储存装置(15),用于储存许多机器语言指令,及代表一执行循环之价格且/或各机器语言指令之码尺寸,将指令与价格结合,该第一估计装置包含:第一置换装置(18),在该第一重写装置进行重写之后,用于以机器语言指令来置换其中常数固定变数为运算元之相关表示组中的各表示,在此机器语言指令中表示之常数固定变数为一运算元,作为代表由常数固定变数所固定之常数的即时资料;及第一累积装置(18),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果;且该第二估计装置包含:第二置换装置(17),在该第一重写装置进行重写之后,于相关表示组中,用于以机器语言指令其中储存常数之暂存器被设定为一运算元,来置换各表示其中常数被替代成常数固定变数,及各表示其中常数固定变数为一运算元;及第二累积装置(19),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果。8.如申请专利范围第4项所述之最佳化装置,其中该最佳化装置进一步包含:价格储存装置(15),用于储存许多机器语言指令,及代表一执行循环之价格且/或各机器语言指令之码尺寸,将指令与价格结合,该第一估计装置包含:第一置换装置(18),在该第一重写装置进行重写之后,用于以机器语言指令来置换其中常数固定变数为运算元之相关表示组中的各表示,在此机器语言指令中表示之常数固定变数为一运算元,作为代表由常数固定变数所固定之常数的即时资料;及第一累积装置(18),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果;且该第二估计装置包含:第二置换装置(17),在该第一重写装置进行重写之后,于相关表示组中,用于以机器语言指令其中储存常数之暂存器被设定为一运算元,来置换各表示其中常数被替代成常数固定变数,及各表示其中常数固定变数为一运算元;及第二累积装置(19),用于从该价格储存装置读取与各置换后的机器语言指令有关之价格,累积所读出的价格,并将累积结果设定为一估计结果。图式简单说明:第一图A为编译器之造形的图形;第一图B为第一图A中所示的编译器之造形中最佳化装置200之造形的图形;第二图为本发明之实施例中的常数最佳化装置60之整体造形的图形;第三图为一流程图,指出部份常数表示重写单元9之处理;第四图A为价格判断及重写单元10之造形的图形;第四图B为记忆体变数重写单元12之造形的图形;第五图为一图形,指出价格固定单元15中所固定之常数的一个例子;第六图A为一流程图,指出在常数最佳化装置60的内部造形中的价格判断及重写单元10之处理;第六图B为一流程图,指出在常数最佳化装置60的内部造形中的记忆体变数重写单元12之处理;第七图A至第七图F为图形,指出源程式及中间语言程式的一个例子,及重写此例子的方式;第七图A指出一源程式的一个例子;第七图B指出一中间语言程式的一个例子,其已通过部份常数表示重写单元;第七图C指出一中间语言程式的一个例子,其已通过价格判断及重写单元;第七图D指出一中间语言程式的一个例子,其已通过记忆体变数重写单元;第七图E指出一中间语言程式的一个例子,其已通过常数固定变数定义移除单元;第七图F指出一中间语言程式的一个例子,其已通过常数固定变数定义移除单元;第八图A至第八图E为图形,指出定变数资讯之内容的转移方式;第八图A指出定变数资讯的一个例子,其已受到使用表示侦测单元8之处理;第八图B指出定变数资讯的一个例子,其已受到部份常数表示重写单元9之处理;第八图C指出定变数资讯的一个例子,其已受到价格判断及重写单元10之处理;第八图D指出定变数资讯的一个例子,其已受到记忆体变数重写单元12之处理;第八图E指出定变数资讯的一个例子,其已受到记忆体变数重写单元12之处理;第九图指出微处理器之指令组的一个例子;第十图指出暂存于价格固定单元15中之资讯的一个例子;第十一图A为一图形,指出一源程式及一中间语言程式的一个例子,与重写此例子之方式;第十一图B指出中间语言程式的一个例子,其已通过部份常数表示重写单元;第十一图C指出中间语言程式的一个例子,其已受到常数传播及常数折叠;第十一图D指出中间语言程式的一个例子,其已受到常数传播及常数折叠;第十一图E指出中间语言程式的一个例子,其已受到常数传播及常数折叠;第十一图F指出中间语言程式的一个例子,其已受到常数传播及常数折叠;第十二图指出中间语言程式的一个例子,其已通过本发明之最佳化装置;第十三图A为一图形,指出一源程式及一中间语言程式的一个例子,与藉由习知最佳化装置来重写此例子的方式;第十三图B指出中间语言程式的一个例子,其已受到习知技术中的常数传播及常数折叠;第十三图C指出中间语言程式的一个例子,其已受到习知技术中的常数传播及常数折叠;第十三图D指出中间语言程式的一个例子,其已受到习知技术中的常数传播及常数折叠;第十三图E指出中间语言程式的一个例子,其已受到习知技术中的常数传播及常数折叠;第十三图F指出中间语言程式的一个例子,其已受到习知技术中的常数传播及常数折叠;及第十四图为一图形指出一机器语言程式,其在习知最佳化装置进行常数传播及常数折叠之后所产生。
地址 日本