Adaptive next-executing-cycle trace selection for trace-driven code optimizers
    1.
    发明授权
    Adaptive next-executing-cycle trace selection for trace-driven code optimizers 有权
    跟踪驱动代码优化器的自适应下一个执行周期跟踪选择

    公开(公告)号:US08756581B2

    公开(公告)日:2014-06-17

    申请号:US13020222

    申请日:2011-02-03

    IPC分类号: G06F9/44 G06F9/45 G06F11/00

    CPC分类号: G06F8/443 G06F9/4552

    摘要: An apparatus includes a processor for executing instructions at runtime and instructions for dynamically compiling the set of instructions executing at runtime. A memory device stores the instructions to be executed and the dynamic compiling instructions. A memory device serves as a trace buffer used to store traces during formation during the dynamic compiling. The dynamic compiling instructions includes a next-executing-cycle (N-E-C) trace selection process for forming traces for the instructions executing at runtime. The N-E-C trace selection process continues through an existing trace-head when forming traces without terminating a recording of a current trace if an existing trace-head is encountered.

    摘要翻译: 一种装置包括用于在运行时执行指令的处理器以及用于动态地编译在运行时执行的一组指令的指令。 存储器件存储要执行的指令和动态编译指令。 存储器件用作在动态编译期间在形成期间存储迹线的跟踪缓冲器。 动态编译指令包括下一个执行周期(N-E-C)跟踪选择过程,用于为运行时执行的指令形成轨迹。 如果遇到现有的跟踪头,N-E-C跟踪选择过程将在形成轨迹时继续通过现有跟踪头,而不终止当前轨迹的记录。

    Execution trace truncation
    2.
    发明授权
    Execution trace truncation 有权
    执行跟踪截断

    公开(公告)号:US08584110B2

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

    申请号:US13249250

    申请日:2011-09-30

    IPC分类号: G06F9/44

    CPC分类号: G06F8/443 G06F11/3636

    摘要: An execution trace of building blocks of computer code includes a head building block at which the execution trace starts, and a tail building block at which the execution trace ends. The building blocks are executable in a sequence from the head building block to the tail building block. The execution trace is truncated at a particular building block of the execution trace, which becomes the tail building block. The particular building block can correspond to a head building block of an additional execution trace, and/or to a loop header building block of a loop within the execution trace and at which the loop is entered. The execution trace is a compilation unit on which basis a trace-based compiler computer program generates an executable version of the code at least by compiling these units.

    摘要翻译: 计算机代码的构建块的执行跟踪包括执行跟踪开始的头构建块和执行跟踪结束的尾部构建块。 构建块可以从头部构造块到尾部构造块的顺序执行。 执行跟踪在执行跟踪的特定构建块处被截断,这将成为尾部构建块。 特定构建块可以对应于附加执行跟踪的头部构造块,和/或对应于执行跟踪内的循环的循环头部构造块,并且进入循环。 执行跟踪是一个编译单元,在该基础上,基于跟踪的编译器计算机程序至少通过编译这些单元来生成代码的可执行版本。

    ADAPTIVE NEXT-EXECUTING-CYCLE TRACE SELECTION FOR TRACE-DRIVEN CODE OPTIMIZERS
    3.
    发明申请
    ADAPTIVE NEXT-EXECUTING-CYCLE TRACE SELECTION FOR TRACE-DRIVEN CODE OPTIMIZERS 有权
    追踪驱动代码优化器的自适应下一步执行周期选择

    公开(公告)号:US20120204164A1

    公开(公告)日:2012-08-09

    申请号:US13020222

    申请日:2011-02-03

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F9/4552

    摘要: An apparatus includes a processor for executing instructions at runtime and instructions for dynamically compiling the set of instructions executing at runtime. A memory device stores the instructions to be executed and the dynamic compiling instructions. A memory device serves as a trace buffer used to store traces during formation during the dynamic compiling. The dynamic compiling instructions includes a next-executing-cycle (N-E-C) trace selection process for forming traces for the instructions executing at runtime. The N-E-C trace selection process continues through an existing trace-head when forming traces without terminating a recording of a current trace if an existing trace-head is encountered.

    摘要翻译: 一种装置包括用于在运行时执行指令的处理器以及用于动态地编译在运行时执行的一组指令的指令。 存储器件存储要执行的指令和动态编译指令。 存储器件用作在动态编译期间在形成期间存储迹线的跟踪缓冲器。 动态编译指令包括下一个执行周期(N-E-C)跟踪选择过程,用于为运行时执行的指令形成轨迹。 如果遇到现有的跟踪头,N-E-C跟踪选择过程将在形成轨迹时继续通过现有跟踪头,而不终止当前轨迹的记录。

    Integration of trace selection and trace profiling in dynamic optimizers
    4.
    发明授权
    Integration of trace selection and trace profiling in dynamic optimizers 有权
    在动态优化器中集成跟踪选择和跟踪分析

    公开(公告)号:US08549498B2

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

    申请号:US13215747

    申请日:2011-08-23

    IPC分类号: G06F9/45

    CPC分类号: G06F11/3612

    摘要: Integrated trace selection and profiling in dynamic optimizers may include selecting a trace head based on profile of basic blocks that are executed. The basic blocks executed from the trace head may be recorded as a trace. The trace may be added to a trace nursery in non-compiled state. The trace may be interpreted and profiled until the trace matures. Under a profiling mode, path sensitive runtime information such as values, types, targets of call-sites, and exit frequencies can be collected. The trace may be moved out of the nursery to a compilation queue in response to determining that the trace has matured based on an execution count of the profiled trace.

    摘要翻译: 动态优化器中的集成跟踪选择和分析可能包括基于执行的基本块的轮廓选择跟踪头。 从跟踪头执行的基本块可以记录为跟踪。 踪迹可以添加到非编译状态的跟踪托儿所。 跟踪可能被解释和分析,直到跟踪成熟。 在分析模式下,可以收集路径敏感的运行时信息,如值,类型,呼叫站点目标和退出频率。 响应于确定跟踪已经基于分析跟踪的执行计数而成熟,跟踪可以移出苗圃到编译队列。

    Execution trace trunction
    5.
    发明申请
    Execution trace trunction 有权
    执行跟踪功能

    公开(公告)号:US20130086567A1

    公开(公告)日:2013-04-04

    申请号:US13249250

    申请日:2011-09-30

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F11/3636

    摘要: An execution trace of building blocks of computer code includes a head building block at which the execution trace starts, and a tail building block at which the execution trace ends. The building blocks are executable in a sequence from the head building block to the tail building block. The execution trace is truncated at a particular building block of the execution trace, which becomes the tail building block. The particular building block can correspond to a head building block of an additional execution trace, and/or to a loop header building block of a loop within the execution trace and at which the loop is entered. The execution trace is a compilation unit on which basis a trace-based compiler computer program generates an executable version of the code at least by compiling these units.

    摘要翻译: 计算机代码的构建块的执行跟踪包括执行跟踪开始的头构建块和执行跟踪结束的尾部构建块。 构建块可以从头部构造块到尾部构造块的顺序执行。 执行跟踪在执行跟踪的特定构建块处被截断,这将成为尾部构建块。 特定构建块可以对应于附加执行跟踪的头部构造块,和/或对应于执行跟踪内的循环的循环头部构造块,并且进入循环。 执行跟踪是一个编译单元,在该基础上,基于跟踪的编译器计算机程序至少通过编译这些单元来生成代码的可执行版本。

    Loop detection apparatus, loop detection method, and loop detection program
    6.
    发明授权
    Loop detection apparatus, loop detection method, and loop detection program 有权
    环路检测装置,环路检测方法和环路检测程序

    公开(公告)号:US08856762B2

    公开(公告)日:2014-10-07

    申请号:US13301099

    申请日:2011-11-21

    IPC分类号: G06F9/45 G06F11/28

    摘要: A loop detection method, system, and article of manufacture for determining whether a sequence of unit processes continuously executed among unit processes in a program is a loop by means of computational processing performed by a computer. The method includes: reading address information on the sequence of unit processes; comparing an address of a unit process as a loop starting point candidate with an address of a last unit process in the sequence of unit processes; reading call stack information on the sequence of unit processes; comparing a call stack upon execution of the unit process as the loop starting point candidate with a call stack upon execution of the last unit process; outputting a determination result indicating that the sequence of unit processes forms a loop if the respective comparison results of the addresses and the call stacks match with each other.

    摘要翻译: 一种循环检测方法,系统和制品,用于通过计算机执行的计算处理来确定在程序中的单元处理中连续执行的单元处理序列是否是循环。 该方法包括:读取单元处理顺序的地址信息; 将单元处理的地址作为循环起始点候选与单元处理序列中的最后单位处理的地址进行比较; 读取单元处理顺序的调用堆栈信息; 在执行最后一个单元处理时,将作为循环起始点候选的单元处理执行时的调用堆栈与调用堆栈进行比较; 如果地址和呼叫堆栈的各个比较结果彼此匹配,则输出指示单元处理序列形成循环的确定结果。

    LOOP DETECTION APPARATUS, LOOP DETECTION METHOD, AND LOOP DETECTION PROGRAM
    7.
    发明申请
    LOOP DETECTION APPARATUS, LOOP DETECTION METHOD, AND LOOP DETECTION PROGRAM 有权
    环路检测装置,环路检测方法和环路检测程序

    公开(公告)号:US20120137111A1

    公开(公告)日:2012-05-31

    申请号:US13301099

    申请日:2011-11-21

    IPC分类号: G06F9/38

    摘要: A loop detection method, system, and article of manufacture for determining whether a sequence of unit processes continuously executed among unit processes in a program is a loop by means of computational processing performed by a computer. The method includes: reading address information on the sequence of unit processes; comparing an address of a unit process as a loop starting point candidate with an address of a last unit process in the sequence of unit processes; reading call stack information on the sequence of unit processes; comparing a call stack upon execution of the unit process as the loop starting point candidate with a call stack upon execution of the last unit process; outputting a determination result indicating that the sequence of unit processes forms a loop if the respective comparison results of the addresses and the call stacks match with each other.

    摘要翻译: 一种循环检测方法,系统和制品,用于通过计算机执行的计算处理来确定在程序中的单元处理中连续执行的单元处理序列是否是循环。 该方法包括:读取单元处理顺序的地址信息; 将单元处理的地址作为循环起始点候选与单元处理序列中的最后单位处理的地址进行比较; 读取单元处理顺序的调用堆栈信息; 在执行最后一个单元处理时,将作为循环起始点候选的单元处理执行时的调用堆栈与调用堆栈进行比较; 如果地址和呼叫堆栈的各个比较结果彼此匹配,则输出指示单元处理序列形成循环的确定结果。