Instrumentation and optimization tools for heterogeneous programs
    1.
    发明授权
    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代码,将插入的指令与原始中间表示指令进行连接。 当中间表示指令被转换为特定于平台的指令并执行时,对中间表示的修改提供异构程序的检测和/或优化。

    Translation and transformation of heterogeneous programs
    2.
    发明授权
    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
    3.
    发明授权
    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代码被添加到被转换成不同架构的连续块。 修改的二进制文件可以通过翻译和转换过程进行迭代,以生成异构程序的多个版本。

    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中。 共享库优化过程使用转发指针和地址替换保留通过重定位代码块传递的原始控制流。 共享库优化过程还可以将代码块从多个共享库重新定位到现有的共享库中,或者从一个共享库转移到空的共享库中。 要优化的共享库由用户指定,以及要执行的优化类型。

    Application program interface for transforming heterogeneous programs
    5.
    发明授权
    Application program interface for transforming heterogeneous programs 失效
    用于转换异构程序的应用程序接口

    公开(公告)号:US06662356B1

    公开(公告)日:2003-12-09

    申请号:US09343276

    申请日:1999-06-30

    IPC分类号: G06F944

    CPC分类号: G06F9/54 Y10S707/99952

    摘要: An application program interface (API) into an hierarchical intermediate representation (IR) of a heterogeneous program enables the navigation and modification of the IR at all levels of the hierarchy. Additional functions provide information about the IR that can be employed by a user in understanding the logic flow of the program and by an output translator to convert the IR into blocks of platform-specific instructions for a new version of the heterogeneous program. The API functions are also utilized by pre-defined program tools to instrument and optimize the IR, and thus the heterogeneous program created from the IR.

    摘要翻译: 将应用程序接口(API)转换为异构程序的分层中间表示(IR)使得能够在层次结构的所有级别上导航和修改IR。 附加功能提供有关IR的信息,用户可以使用这些信息来理解程序的逻辑流程,以及输出转换器将IR转换为特定于平台的指令块,用于新版异构程序。 预定义的程序工具还利用API函数来对IR进行仪器和优化,从而从IR创建的异构程序。

    Cross module representation of heterogeneous programs
    6.
    发明授权
    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)修改为针对不同体系结构的特定于平台的指令来提供异构程序中的组件的交叉模块表示。 中间表示是与程序中的指令,代码块,过程和组件相对应的基本元素的层次。 最初为一个架构编写的指令块可以从中间表示转换为针对不同架构的平台特定指令。 输出转换器提供任何必要的代码来接口在不同的指令集中发出的连续代码块。

    Method and apparatus for prioritizing software tests

    公开(公告)号:US07028290B2

    公开(公告)日:2006-04-11

    申请号:US10133427

    申请日:2002-04-29

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3676

    摘要: A computer system and method is provided for prioritizing software tests. Software tests are prioritized based on coverage indicators for the software tests and an indication of impacted areas of the software. Each of the coverage indicators indicates which portions of the software are executed for a respective one of the software tests. The portions of the software include at least one of a plurality of blocks. The indication of impacted areas of the software indicates ones of the plurality of blocks that are modified or new with respect to a previous version of the software. A prioritized list of software tests is output. The prioritized list includes at least one test sequence.

    System for monitoring compute system performance
    8.
    发明授权
    System for monitoring compute system performance 失效
    监控计算机系统性能的系统

    公开(公告)号:US5732273A

    公开(公告)日:1998-03-24

    申请号:US778648

    申请日:1997-01-03

    IPC分类号: G06F11/34 G06F11/36 G06F1/34

    摘要: A program for monitoring computer system performance includes a collection of source code modules in the form of a high level language. Each of the source code modules is compiled into a corresponding object code module. The object code modules are assembled into machine dependent code. The machine code is translated into a program module in the form of a machine independent register translation language. The program module is partitioned into basic program components. The basic program components include procedures, basic blocks within procedures, and instructions within basic blocks. Fundamental instrumentation routines identify, locate, and modify specific program components to be monitored. The modified basic program components are converted to an instrumented machine executable code to be executed in the computer system so that performance dam can be collected while the program is executing in the computer.

    摘要翻译: 用于监视计算机系统性能的程序包括以高级语言形式的源代码模块的集合。 每个源代码模块被编译成相应的目标代码模块。 目标代码模块被组装成与机器相关的代码。 机器代码以机器独立的注册翻译语言的形式转换为程序模块。 程序模块分为基本程序组件。 基本程序组件包括程序,程序中的基本块和基本块中的指令。 基本的仪器程序识别,定位和修改要监控的特定程序组件。 修改的基本程序组件被转换为在计算机系统中执行的仪器化机器可执行代码,使得在程序在计算机中执行时可以收集性能阻塞。

    Mining dependencies for testing and risk management
    9.
    发明授权
    Mining dependencies for testing and risk management 失效
    挖掘依赖关系进行测试和风险管理

    公开(公告)号:US07496904B2

    公开(公告)日:2009-02-24

    申请号:US10608985

    申请日:2003-06-26

    IPC分类号: G06F9/44

    CPC分类号: G06F11/368

    摘要: Programs are rarely self-contained in software environments. They depend on other programs or shared subsystems like language run time and operating system libraries for various functionalities. A change in one of the external subsystems may affect the program and one or more other external subsystems.A method or system collects and propagates information about dependency between logical abstractions within a binary file (e.g., basic block, procedure, etc.), dependency between binary files, and dependency between subsystems (e.g., programs, component libraries, system services, etc,) In one example, such dependency information is exposed to a tool (e.g., test tool, software development tool, etc.) via an application programming interface. A tool mines this information to manage testing, determine risks of change, or manage software development. The tool may also be integrated into the method or system.

    摘要翻译: 程序很少在软件环境中自包含。 它们依赖于其他程序或共享子系统,如语言运行时和各种功能的操作系统库。 一个外部子系统的改变可能会影响程序和一个或多个其他外部子系统。 一种方法或系统收集和传播关于二进制文件(例如,基本块,过程等)之间的逻辑抽象,二进制文件之间的依赖性和子系统之间的依赖关系(例如,程序,组件库,系统服务等)之间的依赖关系的信息 ,)在一个示例中,这种依赖性信息通过应用编程接口暴露于工具(例如,测试工具,软件开发工具等)。 一个工具挖掘这些信息来管理测试,确定变更的风险或管理软件开发。 该工具也可以集成到方法或系统中。

    Link time optimization with translation to intermediate program and
following optimization techniques including program analysis code
motion live variable set generation order analysis, dead code
elimination and load invariant analysis
    10.
    发明授权
    Link time optimization with translation to intermediate program and following optimization techniques including program analysis code motion live variable set generation order analysis, dead code elimination and load invariant analysis 失效
    链接时间优化与中间程序的翻译和以下优化技术,包括程序分析代码运动实时变量集生成顺序分析,死码消除和负载不变分析

    公开(公告)号:US5966539A

    公开(公告)日:1999-10-12

    申请号:US963086

    申请日:1997-11-03

    IPC分类号: G06F9/45 G06F9/44

    摘要: A computer system is directed to convert a program written as a plurality of high level source code modules into corresponding machine executable code. The source code modules are compiled into an object code module, and the object code modules are translated into a single linked code module in the form of a register translation language and logical symbol table compatible with a plurality of computer system hardware architectures. The source code program structures are recovered from the linked code module, and the linked code module is partitioned into a plurality of procedure, and instructions of each of the procedures grouped into basic blocks. A procedure flow graph is constructed for each of the procedures, and a program call graph is constructed for the linked code module. The linked code module is modified by eliminating dead code and moving loop-invariant code from loops. The modified linked code is converted into machine executable code compatible with a target one of said plurality of computer system hardware architectures.

    摘要翻译: 计算机系统旨在将编写为多个高级源代码模块的程序转换为相应的机器可执行代码。 源代码模块被编译成目标代码模块,并且目标代码模块以与多个计算机系统硬件体系结构兼容的寄存器转换语言和逻辑符号表的形式被转换成单个链接代码模块。 从链接的代码模块中恢复源代码程序结构,并将链接的代码模块划分为多个过程,并将每个过程的指令分组成基本块。 为每个过程构建一个过程流程图,并为链接的代码模块构建一个程序调用图。 通过从循环中消除死代码和移动循环不变代码来修改链接代码模块。 经修改的链接代码被转换成与所述多个计算机系统硬件架构中的目标一个兼容的机器可执行代码。