用于管理试探特性的方法和系统技术方案

技术编号:2843256 阅读:241 留言:0更新日期:2012-04-11 18:40
提供用于管理试探特性的方法、系统和计算机程序产品,该试探特性用于控制数据处理系统中的编译器中或其它用试探方式控制的软件中的优化变换。用于控制用试探方式控制的软件中的优化变换的计算机实现的方法包括:限定用于控制优化变换的行为的至少一个试探特性,和为优化变换的行为的各希望的变化产生至少一个试探特性修改元。然后通过使用至少一个试探特性修改元,修改至少一个试探特性中的至少一个以实现优化变换的行为的每一希望的变化。

【技术实现步骤摘要】

本专利技术一般涉及数据处理领域,更具体地,涉及用于管理试探特性的计算机实现的方法、系统和计算机程序产品,该试探特性用于控制数据处理系统中的编译器中或其它用试探方式控制的软件中的优化变换。
技术介绍
编译器是将以高级、人可读的程序设计语言写成的源代码程序翻译成可被计算机执行的机器语言形式的等同的对象代码程序的机构。对于各个主源程序和多个附加的源程序或子例程,编译器将程序中的各个语句翻译成等同的机器语言。编译器的输出是与输入的源代码程序对应的多个对象代码程序。链接程序然后组合由编译器产生的对象代码程序(即,供给程序部分之间的互连链接),以产生单个机器可执行程序。多个编译器优化使用试探值以控制例如对多个分支、缺省展开因子(default unroll factor)的限制等的行为。这些试探值通常基于从编译基准程序和其它程序积累的经验被调整。在一些情况下,基于命令行选项选择不同的试探值,例如,可以根据目标处理器选择不同的缺省展开因子。除了试探特性的缺省值,诸如请求产生的代码变得简洁(即,相对于较快的代码,更偏爱较小的尺寸)的一些命令行修改元(modifier)要求修改或重设某些试探值,例如,限制展开因子。当前的使得各个优化变换在逻辑上确定其试探特性的缺省的方法具有在变换代码内封装缺省值选择的优点。但这样做具有变得更加难以从中心位置控制多个探试特性的缺点。结果,需要在代码中的这些试探值被确定(和使用)的每个位置处理如何对不同的情况选择这些试探值的策略的任何变化。由于需要对可能受新的控制影响的每一种试探特性定位和更新,因此对编译器添加诸如紧致控制或新的优化级的对多个试探值具有广泛影响的功能会十分麻烦且易于出错。试探值的替代性解决方案是,包含中心数据库(或数据结构,类似于Java特性的思想-Java开发工具箱中的用于管理特性的类,该类可被存储、被转储(dump)到文件和被读回;和系统特性-可通过-D命令行选项不被考虑(override)的特定子集)中的所有的试探值,然后,当添加或修改新的优化控制时,将它们适当更新/修改。这种方法的缺点是缺少封装,即,如果对需要改变其试探特性的缺省的变换的逻辑做任何变化,编译器编写员(writer)需要确定在管理这些试探法的中心数据库中也反映这些变化。中心数据库的另一缺点在于,访问会被频繁访问的试探特性增加开销。虽然这些值可被缓存,但这样做使代码增加不必要的复杂性,并要求编译器编写员知道缓存技术。因此,存在对于更有效地管理试探特性的机构的需要,该试探特性用于控制数据处理系统中的编译器中或其它用试探方式控制的软件中的优化变换。
技术实现思路
本专利技术提供用于管理试探特性的方法、系统和计算机程序产品,该试探特性用于控制数据处理系统中的编译器中或其它用试探方式控制的软件中的优化变换。用于控制用试探方式控制的软件中的优化变换的计算机实现的方法包括限定用于控制优化变换的行为的至少一个试探特性,和为优化变换的行为的各希望的变化产生至少一个试探特性修改元。然后通过使用至少一个试探特性修改元,修改至少一个试探特性中的至少一个以实现优化变换的行为的每一希望的变化。附图说明在所附的权利要求书中阐述认为表示本专利技术的特征的新型性特征。但是,通过结合附图阅读示例性实施例的以下详细说明,将最好地理解本专利技术本身、优选的使用方式及其目的和优点,其中,图1是可实现本专利技术的多个方面的数据处理系统的图示;图2是表示可实现本专利技术的多个方面的数据处理系统的框图;图3是示意性地表示可实现本专利技术的多个方面的编译器系统的框图;图4是表示根据本专利技术的示例性实施例的、用于控制数据处理系统中的用试探方式控制的软件中的优化变换的方法的流程图;图5是表示根据本专利技术的示例性实施例的、用于限定用于控制用试探方式控制的软件中的优化变换的方法的流程图。具体实施例方式提供的图1~2是可实现本专利技术的实施例的数据处理环境的示例性示图。应当理解,图1~2仅是示例性的,意图不在于关于可实现本专利技术的方面或实施例的环境声明或意旨任何限制。在不背离本专利技术的精神和范围的情况下,可以对解释的环境做各种修改。现在参照附图,特别是参照图1,示出可实现本专利技术的多个方面的数据处理系统的图示。图中的计算机100包括系统单元102、视频显示终端104、键盘106、可包含软盘驱动器和其它类型的固定和可移动存储介质的存储设备108、和鼠标110。个人计算机100可包括其它输入设备,诸如,例如,游戏杆、触摸板、触摸屏、跟踪球和麦克风等。可通过使用任何适当的计算机,诸如作为位于Armonk,New York的国际商用机器公司(International Business Machines Corporation)的产品的IBM eServer计算机或IntelliStation计算机,实现计算机100。虽然示出的示图表示计算机,但也可以以诸如网络计算机的其它类型的数据处理系统实现本专利技术的其它实施例。计算机100还优选包括在计算机100内在操作中通过驻留在计算机可读介质中的系统软件实现的图形用户界面(GUI)。现在参照图2,示出可实现本专利技术的多个方面的数据处理系统的框图。数据处理系统200是诸如图1中的计算机100的计算机的例子,其中,可放置实现本专利技术的处理的代码或指令。在示出的例子中,数据处理系统200使用包含北桥和存储控制器集线器(MCH)202和南桥和输入/输出(I/O)控制器集线器(ICH)204的集线器结构。处理器206、主存储器208和图形处理器210与北桥和存储控制器集线器202连接。例如,图形处理器210可通过加速图形端口(AGP)与MCH连接。在示出的例子中,局域网(LAN)适配器212与南桥和I/O控制器集线器204连接,音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口,其它通信端口232和PCI/PCIe设备234通过总线238和总线240与南桥和I/O控制器集线器204连接。PCI/PCIe设备可包括例如以太网适配器、内插式卡、和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe则不。ROM 224可以为例如闪速二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM驱动器230可使用例如集成驱动电子技术(IDE)或串行高级技术配件(SATA)接口。超级I/O(SIO)设备236可与南桥和I/O控制器集线器204连接。操作系统在处理器206上运行,并协调和提供图2中的数据处理系统200内的各种部件的控制。操作系统可以为市售的操作系统,诸如MicrosoftWindowsXP(Microsoft和Windows是在美国、其它国家或同时在美国和其它国家的Microsoft Coporation的商标)。面向对象的程序设计系统,诸如JavaTM程序设计系统,可与操作系统一起运行,并提供从Java的操作程序或在数据处理系统200上执行的应用到该操作系统的调用(Java是在美国、其它国家或同时在美国和其它国家的Sun Microsystems,Inc.的商标)。用于操作系统、面向对象的程序设计系统、应用或程序的指令位于诸如硬盘驱本文档来自技高网
...

【技术保护点】
一种计算机实现的方法,用于控制用试探方式控制的软件中的优化变换,该计算机实现的方法包括:    限定用于控制优化变换的行为的至少一个试探特性;    为优化变换的行为的各希望的变化产生至少一个试探特性修改元;和    通过使用至少一个试探特性修改元,修改至少一个试探特性中的至少一个以实现优化变换的行为的每一希望的变化。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:阿里泰尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1