会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 2. 发明申请
    • Method and apparatus for inlining native functions into compiled Java code
    • 将本机函数集成为编译Java代码的方法和装置
    • US20060190934A1
    • 2006-08-24
    • US11062293
    • 2005-02-18
    • Allan KielstraLevon StepanianKevin Stoodley
    • Allan KielstraLevon StepanianKevin Stoodley
    • G06F9/45
    • G06F9/45516
    • A method, apparatus, and computer instructions are provided for inlining native functions into compiled Java code. A conversion engine is provided by the present invention for converting the intermediate representation of native functions to the just-in-time (JIT) compiler's intermediate representation. With the converted intermediate representation, an inliner recursively inlines the converted JIT compiler's intermediate representation into the native callsite to remove the need of invoking the native function and subsequent native calls made by the function. The inlining process continues until either a call to an opaque function is encountered or until a JIT compiler intermediate representation growth limits are reached. The inliner also replaces calls to most native functions that are non-inlineable or opaque with calls to synthesized native functions that provide access to native libraries containing implementations of the original non-inlineable calls.
    • 提供了一种方法,装置和计算机指令,用于将本机函数内联到编译的Java代码中。 本发明提供了一种转换引擎,用于将本机函数的中间表示转换为即时(JIT)编译器的中间表示。 使用转换的中间表示法,内联函数将转换的JIT编译器的中间表示递归内嵌到本机调用现场,以消除调用本机函数和该函数进行的后续本机调用的需要。 内联过程继续,直到遇到不透明函数的调用或直到达到JIT编译器中间表示增长限制为止。 内置函数还可以通过调用合成本机函数来替换非绝对或不透明的大多数本机函数,该函数提供对包含原始非可嵌入调用的实现的本机库的访问。
    • 3. 发明授权
    • Method for improving performance of executable code
    • 提高可执行代码性能的方法
    • US07954094B2
    • 2011-05-31
    • US11389961
    • 2006-03-27
    • Gheorghe CascavalSiddhartha ChatterjeeEvelyn DuesterwaldAllan KielstraKevin Stoodley
    • Gheorghe CascavalSiddhartha ChatterjeeEvelyn DuesterwaldAllan KielstraKevin Stoodley
    • G06F9/45
    • G06F9/45516
    • A computer-implemented method, computer program product and data processing system to improve runtime performance of executable program code when executed on the data-processing system. During execution, data is collected and analyzed to identify runtime behavior of the program code. Heuristic models are applied to select region(s) of the program code where application of a performance improvement algorithm is expected to improve runtime performance. Each selected region is recompiled using selected performance improvement algorithm(s) for that region to generate corresponding recompiled region(s), and the program code is modified to replace invocations of each selected region with invocations of the corresponding recompiled region. Alternatively or additionally, the program code may be recompiled to be adapted to characteristics of the execution environment of the data processing system. The process may be carried out in a continuous recursive manner while the program code executes, or may be carried out a finite number of times.
    • 一种计算机实现的方法,计算机程序产品和数据处理系统,用于在数据处理系统上执行时提高可执行程序代码的运行时性能。 在执行期间,收集和分析数据以识别程序代码的运行时行为。 启发式模型被应用于选择程序代码的区域,其中应用性能改进算法预期将提高运行时性能。 使用针对该区域的所选择的性能改进算法重新编译每个所选择的区域,以生成相应的重新编译区域,并且修改程序代码以用相应重新编译区域的调用来替换每个所选区域的调用。 或者或另外,可以重新编译程序代码以适应数据处理系统的执行环境的特性。 该过程可以在程序代码执行时以连续递归的方式执行,或者可以执行有限次数。
    • 4. 发明申请
    • Method for improving performance of executable code
    • 提高可执行代码性能的方法
    • US20070226698A1
    • 2007-09-27
    • US11389961
    • 2006-03-27
    • Gheorghe CascavalSiddhartha ChatterjeeEvelyn DuesterwaldAllan KielstraKevin Stoodley
    • Gheorghe CascavalSiddhartha ChatterjeeEvelyn DuesterwaldAllan KielstraKevin Stoodley
    • G06F9/44
    • G06F9/45516
    • A computer-implemented method, computer program product and data processing system to improve runtime performance of executable program code when executed on the data-processing system. During execution, data is collected and analyzed to identify runtime behavior of the program code. Heuristic models are applied to select region(s) of the program code where application of a performance improvement algorithm is expected to improve runtime performance. Each selected region is recompiled using selected performance improvement algorithm(s) for that region to generate corresponding recompiled region(s), and the program code is modified to replace invocations of each selected region with invocations of the corresponding recompiled region. Alternatively or additionally, the program code may be recompiled to be adapted to characteristics of the execution environment of the data processing system. The process may be carried out in a continuous recursive manner while the program code executes, or may be carried out a finite number of times.
    • 一种计算机实现的方法,计算机程序产品和数据处理系统,用于在数据处理系统上执行时提高可执行程序代码的运行时性能。 在执行期间,收集和分析数据以识别程序代码的运行时行为。 启发式模型被应用于选择程序代码的区域,其中应用性能改进算法预期将提高运行时性能。 使用针对该区域的所选择的性能改进算法重新编译每个所选择的区域,以生成相应的重新编译区域,并且修改程序代码以用对应的重新编译区域的调用来替换每个所选区域的调用。 或者或另外,可以重新编译程序代码以适应数据处理系统的执行环境的特性。 该过程可以在程序代码执行时以连续递归的方式执行,或者可以执行有限次数。
    • 6. 发明申请
    • RUN-TIME INSTRUMENTATION DIRECTED SAMPLING
    • 运行时间仪表指示采样
    • US20130246741A1
    • 2013-09-19
    • US13422532
    • 2012-03-16
    • Charles W. Gainey, JR.Marcel M. MitranChung-Lung K. ShumKevin Stoodley
    • Charles W. Gainey, JR.Marcel M. MitranChung-Lung K. ShumKevin Stoodley
    • G06F9/312
    • G06F11/3466G06F9/3005G06F11/3636G06F11/3644G06F11/3648
    • Embodiments of the invention relate to implementing run-time instrumentation directed sampling. An aspect of the invention includes fetching a run-time instrumentation next (RINEXT) instruction from an instruction stream. The instruction stream includes the RINEXT instruction followed by a next sequential instruction (NSI) in program order. The method further includes executing the RINEXT instruction by a processor. The executing includes determining whether a current run-time instrumentation state enables setting a sample point for reporting run-time instrumentation information during program execution. Based on the current run-time instrumentation state enabling setting the sample point, the NSI is a sample instruction for causing a run-time instrumentation event. Based on executing the NSI sample instruction, the run-time instrumentation event causes recording of run-time instrumentation information into a run-time instrumentation program buffer as a reporting group.
    • 本发明的实施例涉及实现运行时仪表定向采样。 本发明的一个方面包括从指令流获取运行时仪器下一个(RINEXT)指令。 指令流包括RINEXT指令,后面是程序顺序的下一个顺序指令(NSI)。 该方法还包括由处理器执行RINEXT指令。 该执行包括确定当前运行时仪表状态是否能够在程序执行期间设置用于报告运行时仪表信息的采样点。 根据当前的运行时仪器状态设置采样点,NSI是一个用于引起运行时仪表事件的示例指令。 基于执行NSI示例指令,运行时仪表事件将运行时仪表信息记录到作为报告组的运行时仪表程序缓冲区中。
    • 7. 发明申请
    • Programmatic compiler optimization of glacial constants
    • 编程优化的冰川常数
    • US20070240135A1
    • 2007-10-11
    • US11371724
    • 2006-03-09
    • Kevin StoodleyMark Stoodley
    • Kevin StoodleyMark Stoodley
    • G06F9/45
    • G06F9/45516
    • Optimizations are programmatically applied by a compiler (preferably, a just-in-time or “JIT” compiler), and enable achieving improved performance while a variable acts as a global constant, yet also allow code to execute correctly if the global constant's run-time value changes from the value on which the optimization was originally based. Code snippets that dynamically patch executable code are described, where these code snippets take corrective actions to enable correct program execution following a run-time change to the value of a glacial constant. A backup recovery path may also be maintained, where this path provides code that is executed in the event of a change to a glacial constant and that treats the glacial constant as a variable. Recompilation may also be used after a change to a glacial constant, where the originally-compiled code has made an assumption about the glacial constant's value that is no longer accurate. Combinations of these approaches may be used.
    • 优化由编译器(最好是即时或“JIT”编译器)以编程方式应用,并且当变量充当全局常量时,可以实现改进的性能,而且如果全局常量的运行 - 时间值从优化最初所基于的值变化。 描述了动态修补可执行代码的代码片段,其中这些代码段采取纠正措施,以便在运行时更改为冰川常数的值后启用正确的程序执行。 还可以维护备份恢复路径,其中该路径提供在对冰川常数变化的情况下执行的代码,并且将冰川常数作为变量来处理。 重新编译也可以在更改为冰川常数之后使用,其中原始编译的代码已经对不再准确的冰川常数的值作出假设。 可以使用这些方法的组合。
    • 8. 发明申请
    • Computer-implemented method and processing unit for predicting branch target addresses
    • 用于预测分支目标地址的计算机实现的方法和处理单元
    • US20070088937A1
    • 2007-04-19
    • US11250057
    • 2005-10-13
    • Roch ArchambaultR. HayJames McInnesKevin Stoodley
    • Roch ArchambaultR. HayJames McInnesKevin Stoodley
    • G06F9/00
    • G06F9/30058G06F9/3806
    • Under the present invention, a branch target address corresponding to a target instruction to be pre-fetched is predicted based on two values. The first value is a “predictor value” that is known for the branch target address. The second value is the address of the branch instruction from which the target instruction is branched to within the program code. Once these two values are provided, they can be processed (e.g., hashed) to yield an index value, which is used to obtain a predicted branch target address from a cache. This technique is generally implemented for branch instructions such as switch statements or polymorphic calls. In the case of the former, the predictor value is a selector operand, while in the case of the latter the predictor value is a class object address (in JAVA) or a virtual function table address (in C++).
    • 在本发明中,基于两个值预测与预取的目标指令对应的分支目标地址。 第一个值是分支目标地址已知的“预测值”。 第二个值是目标指令从该程序代码中分支到的分支指令的地址。 一旦提供了这两个值,就可以对它们进行处理(例如,散列)以产生索引值,该索引值用于从高速缓存获得预测的分支目标地址。 这种技术通常用于分支指令,例如switch语句或多态调用。 在前者的情况下,预测值是一个选择器操作数,而在后者的情况下,预测值是类对象地址(在JAVA中)或虚函数表地址(C ++中)。
    • 9. 发明授权
    • Run-time instrumentation directed sampling
    • 运行时间仪表定向采样
    • US09465716B2
    • 2016-10-11
    • US13422532
    • 2012-03-16
    • Charles W. Gainey, Jr.Marcel M. MitranChung-Lung K. ShumKevin Stoodley
    • Charles W. Gainey, Jr.Marcel M. MitranChung-Lung K. ShumKevin Stoodley
    • G06F11/34G06F11/36
    • G06F11/3466G06F9/3005G06F11/3636G06F11/3644G06F11/3648
    • The invention relates to implementing run-time instrumentation directed sampling. An aspect of the invention includes fetching a run-time instrumentation next (RINEXT) instruction from an instruction stream. The instruction stream includes the RINEXT instruction followed by a next sequential instruction (NSI) in program order. The method further includes executing the RINEXT instruction by a processor. The executing includes determining whether a current run-time instrumentation state enables setting a sample point for reporting run-time instrumentation information during program execution. Based on the current run-time instrumentation state enabling setting the sample point, the NSI is a sample instruction for causing a run-time instrumentation event. Based on executing the NSI sample instruction, the run-time instrumentation event causes recording of run-time instrumentation information into a run-time instrumentation program buffer as a reporting group.
    • 本发明涉及实施运行时仪表定向抽样。 本发明的一个方面包括从指令流获取运行时仪器下一个(RINEXT)指令。 指令流包括RINEXT指令,后面是程序顺序的下一个顺序指令(NSI)。 该方法还包括由处理器执行RINEXT指令。 该执行包括确定当前运行时仪表状态是否能够在程序执行期间设置用于报告运行时仪表信息的采样点。 根据当前的运行时仪器状态设置采样点,NSI是一个用于引起运行时仪表事件的示例指令。 基于执行NSI示例指令,运行时仪表事件将运行时仪表信息记录到作为报告组的运行时仪表程序缓冲区中。
    • 10. 发明申请
    • Method of efficiently performing precise profiling in a multi-threaded dynamic compilation environment
    • 在多线程动态编译环境中有效执行精确剖析的方法
    • US20070226683A1
    • 2007-09-27
    • US11388607
    • 2006-03-24
    • Kevin StoodleyVijay Sundaresan
    • Kevin StoodleyVijay Sundaresan
    • G06F9/44
    • G06F8/443
    • Synchronizing clones of a software method to be executed by at least one thread while the software method is compiled. The software method is cloned to generate a software method clone. At least one transition is created between equivalent program points in the software method and the software method clone. A lock object is inserted into one of the software method and the software method clone. Then, code that controls the at least one transition between a profiling clone and a non-profiling clone is changed to access thread-local storage. The non-profiling clone is the one of the software method and the software method clone into which the lock object was inserted. A first synchronization operation is performed at or after an entry point of the non-profiling clone. Then, the profiling clone is executed using thread-local storage.
    • 在软件方法被编译的同时,由至少一个线程执行的软件方法的克隆。 克隆软件方法以生成软件方法克隆。 在软件方法中的等效程序点和软件方法克隆之间至少创建一个转换。 将锁定对象插入到软件方法和软件方法克隆之一中。 然后,更改控制概要分析克隆和非概要分析克隆之间的至少一个转换的代码,以访问线程本地存储。 非分析克隆是插入锁定对象的软件方法和软件方法克隆之一。 在非分析克隆的入口点之前或之后执行第一同步操作。 然后,使用线程本地存储执行概要分析克隆。