Translation and transformation of heterogeneous programs
    1.
    发明授权
    Translation and transformation of heterogeneous programs 有权
    异构程序的翻译和转换

    公开(公告)号:US07197748B2

    公开(公告)日:2007-03-27

    申请号:US10911901

    申请日:2004-08-04

    IPC分类号: G06F9/45

    CPC分类号: G06F8/52

    摘要: Each component binary in a heterogeneous program is translated from a platform-specific instruction set into a set of intermediate representation (IR) instructions that are platform-neutral. The IR instructions are grouped into IR code blocks, the IR code blocks into IR procedures, and the IR procedures into IR components to create an intermediate representation hierarchy for the program. An application program interface is provided that permits user access to the IR hierarchy for instrumentation, optimization, navigation, and manipulation of the IR hierarchy. The transformed IR hierarchy is then translated into platform-specific instructions and output as a modified binary. The user can designate a different platform for the output translation of a code block than the platform for which the code block was originally written. Prologue and epilog code is added to contiguous blocks that are translated into different architectures. The modified binary can be iterated through the translation and transformation process to produce multiple versions of the heterogeneous program.

    摘要翻译: 异构程序中的每个组件二进制文件从平台特定的指令集转换为平台中立的一组中间表示(IR)指令。 IR指令分为IR代码块,IR代码块转换为IR程序,IR程序分为IR组件,以创建程序的中间表示层次结构。 提供了一个应用程序接口,允许用户访问IR层次结构,以进行IR层次结构的检测,优化,导航和操作。 转换的IR层次结构然后被转换为平台特定的指令并作为修改的二进制输出。 用户可以为代码块的输出转换指定与代码块最初写入的平台不同的平台。 序言和epilog代码被添加到被转换成不同架构的连续块。 修改的二进制文件可以通过翻译和转换过程进行迭代,以生成异构程序的多个版本。

    Translation and transformation of heterogeneous programs
    2.
    发明授权
    Translation and transformation of heterogeneous programs 失效
    异构程序的翻译和转换

    公开(公告)号:US06802056B1

    公开(公告)日:2004-10-05

    申请号:US09343805

    申请日:1999-06-30

    IPC分类号: G06F945

    CPC分类号: G06F8/52

    摘要: Each component binary in a heterogeneous program is translated from a platform-specific instruction set into a set of intermediate representation (IR) instructions that are platform-neutral. The IR instructions are grouped into IR code blocks, the IR code blocks into IR procedures, and the IR procedures into IR components to create an intermediate representation hierarchy for the program. An application program interface is provided that permits user access to the IR hierarchy for instrumentation, optimization, navigation, and manipulation of the IR hierarchy. The transformed IR hierarchy is then translated into platform-specific instructions and output as a modified binary. The user can designate a different platform for the output translation of a code block than the platform for which the code block was originally written. Prologue and epilog code is added to contiguous blocks that are translated into different architectures. The modified binary can be iterated through the translation and transformation process to produce multiple versions of the heterogeneous program.

    摘要翻译: 异构程序中的每个组件二进制文件从平台特定的指令集转换为平台中立的一组中间表示(IR)指令。 IR指令分为IR代码块,IR代码块转换为IR程序,IR程序分为IR组件,以创建程序的中间表示层次结构。 提供了一个应用程序接口,允许用户访问IR层次结构,以进行IR层次结构的检测,优化,导航和操作。 转换的IR层次结构然后被转换为平台特定的指令并作为修改的二进制输出。 用户可以为代码块的输出转换指定与代码块最初写入的平台不同的平台。 序言和epilog代码被添加到被转换成不同架构的连续块。 修改的二进制文件可以通过翻译和转换过程进行迭代,以生成异构程序的多个版本。

    Instrumentation and optimization tools for heterogeneous programs
    3.
    发明授权
    Instrumentation and optimization tools for heterogeneous programs 有权
    用于异构程序的仪器和优化工具

    公开(公告)号:US06481008B1

    公开(公告)日:2002-11-12

    申请号:US09343298

    申请日:1999-06-30

    IPC分类号: G06F945

    摘要: Pre-defined performance tools enable instrumentation and optimization of a heterogeneous program by modifying a platform-neutral intermediate representation (IR) of the program. The intermediate representation is hierarchy of base elements that correspond to instructions, code blocks, procedures and components within the program. Each base element exports an application program interface that provides for navigation, querying and modification of the corresponding element in the hierarchy. An application program interface for the entire intermediate representation includes the application program interfaces for the individual elements along with additional functionality. A user can request instrumentation and optimization of any level of the intermediate representation hierarchy and the performance tools perform the required modifications to the intermediate representation. When a modification requires inserting instructions, the performance tools add prologue and epilog code to connect the inserted instructions with the original intermediate representation instructions. When the intermediate representation instructions are translated into platform-specific instructions and executed, the modifications made to the intermediate representation provide the instrumentation and/or optimization of the heterogeneous program.

    摘要翻译: 预定义的性能工具可以通过修改程序的平台中立中间表示(IR)来对异构程序进行测试和优化。 中间表示是与程序中的指令,代码块,过程和组件相对应的基本元素的层次。 每个基本元素导出一个应用程序接口,该界面提供层次结构中相应元素的导航,查询和修改。 用于整个中间表示的应用程序接口包括用于各个元素的应用程序接口以及附加的功能。 用户可以请求对中间表示层次结构的任何级别的仪器和优化,并且性能工具对中间表示执行所需的修改。 当修改需要插入指令时,性能工具会添加序言和epilog代码,将插入的指令与原始中间表示指令进行连接。 当中间表示指令被转换为特定于平台的指令并执行时,对中间表示的修改提供异构程序的检测和/或优化。

    Shared library optimization for heterogeneous programs
    4.
    发明授权
    Shared library optimization for heterogeneous programs 有权
    异构程序共享库优化

    公开(公告)号:US06460178B1

    公开(公告)日:2002-10-01

    申请号:US09343279

    申请日:1999-06-30

    IPC分类号: G06F945

    CPC分类号: G06F9/44521

    摘要: A shared library optimization process relocates a code block in a platform-neutral intermediate representation (IR) of a library into the IR of another library. The shared library optimization process preserves the original control flow that passed through the relocated code block using forwarding pointers and address substitution. The shared library optimization process can also relocate code blocks from multiple shared libraries into an existing shared library, or from one shared library into an empty shared library. The shared libraries to be optimized are specified by a user, as is the type of optimization to be performed.

    摘要翻译: 共享库优化过程将库的平台中立中间表示(IR)中的代码块重定位到另一个库的IR中。 共享库优化过程使用转发指针和地址替换保留通过重定位代码块传递的原始控制流。 共享库优化过程还可以将代码块从多个共享库重新定位到现有的共享库中,或者从一个共享库转移到空的共享库中。 要优化的共享库由用户指定,以及要执行的优化类型。

    Cross module representation of heterogeneous programs
    5.
    发明授权
    Cross module representation of heterogeneous programs 有权
    异构程序的交叉模块表示

    公开(公告)号:US06609248B1

    公开(公告)日:2003-08-19

    申请号:US09343287

    申请日:1999-06-30

    IPC分类号: G06F945

    CPC分类号: G06F8/447

    摘要: An output translator provides for cross module representations of components within a heterogeneous program by translating modifying a platform-neutral intermediate representation (IR) of the program into platform-specific instructions for different architectures. The intermediate representation is hierarchy of base elements that correspond to instructions, code blocks, procedures and components within the program. Blocks of instructions that were originally written for one architecture can be translated from the intermediate representation into platform-specific instructions for a different architecture. The output translator provides any necessary code to interface contiguous code blocks that are emitted in different instruction sets.

    摘要翻译: 输出转换器通过将程序的平台中立中间表示(IR)修改为针对不同体系结构的特定于平台的指令来提供异构程序中的组件的交叉模块表示。 中间表示是与程序中的指令,代码块,过程和组件相对应的基本元素的层次。 最初为一个架构编写的指令块可以从中间表示转换为针对不同架构的平台特定指令。 输出转换器提供任何必要的代码来接口在不同的指令集中发出的连续代码块。

    Patching of in-use functions on a running computer system
    6.
    发明授权
    Patching of in-use functions on a running computer system 有权
    在正在运行的计算机系统上修补正在使用的功能

    公开(公告)号:US07784044B2

    公开(公告)日:2010-08-24

    申请号:US10307902

    申请日:2002-12-02

    IPC分类号: G06F9/45

    CPC分类号: G06F8/658 G06F8/656

    摘要: A system and method for automatically updating software components on a running computer system without requiring any interruption of service. A software module is hotpatched by loading a patch into memory and modifying an instruction in the original module to jump to the patch. A coldpatching technique places a coldpatch version of the module on disk for subsequent loading by processes, after hotpatching occurred. The coldpatch has the entry points to its functions at the same relative locations within the module as the hotpatch, which facilitates subsequent hotpatching. A hotpatch and coldpatch are automatically generated by deriving differences between changed and original binary files, and establishing the point to insert the jump. Validation is performed to ensure that the hotpatch is applied to the correct version, and that the coldpatch is replacing the correct version. Version management is also provided to control the number of patches via support rules.

    摘要翻译: 一种用于在运行中的计算机系统上自动更新软件组件而不需要任何中断服务的系统和方法。 通过将补丁加载到内存中并修改原始模块中的指令以跳转到修补程序来对软件模块进行热补丁。 冷发技术将冷却版本的模块放在磁盘上,以便在热补丁发生后随后加载进程。 冷补物具有在模块内与热补丁相同的相对位置的入口点,这有助于随后的热补丁。 通过导出更改和原始二进制文件之间的差异,并建立点来插入跳转,自动生成热补丁和冷补。 执行验证以确保热补丁应用于正确的版本,并且冷补正在替换正确的版本。 还提供版本管理以通过支持规则控制补丁的数量。

    System and method for using data address sequences of a program in a software development tool
    7.
    发明授权
    System and method for using data address sequences of a program in a software development tool 失效
    在软件开发工具中使用程序的数据地址序列的系统和方法

    公开(公告)号:US07096462B2

    公开(公告)日:2006-08-22

    申请号:US10144947

    申请日:2002-05-13

    IPC分类号: G06F9/45

    CPC分类号: G06F8/447

    摘要: Rapid determination of placement for code and data for optimal access of the code and data during execution of software applications. An application that is to be efficiently arranged in a software carrier medium is instrumented such that the status of whether a particular unit of code or data has been accessed during a time interval is recorded in a time-ordered bit sequence for each such unit. A sort routine is used to sort the order of time-ordered bit sequences within an array of such sequences. The sort routine invokes a comparison function that operates upon the temporal information stored in the two time-ordered bit sequences that are being compared for the routine. The order of the code and data in the software application is reordered in accordance with the results of the sort routine.

    摘要翻译: 快速确定代码和数据的位置,以便在执行软件应用程序期间最佳地访问代码和数据。 将被有效地安排在软件载体介质中的应用程序进行装配,使得在时间间隔期间是否访问了特定的代码或数据单元的状态被记录在每个这样的单元的时间有序的位序列中。 排序例程用于对这样的序列的阵列内的时间有序的比特序列的顺序进行排序。 排序例程调用比较函数,该比较函数根据存储在例程中被比较的两个时间有序的比特序列中的时间信息进行操作。 软件应用程序中的代码和数据的顺序根据排序例程的结果重新排序。