发明名称 SYSTEM AND METHOD FOR REDUNDANT ARRAY COPY REMOVAL IN A POINTER-FREE LANGUAGE
摘要 A system and method for redundant array copy removal in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). In pointer free languages array copy operations are common and time consuming. Embodiments of the present invention enable the compiler to detect situations where the compiled code can safely use the source array as the destination array without performing any copy operation. By avoiding array copy operations, the performance of the application is improved.
申请公布号 US2014201742(A1) 申请公布日期 2014.07.17
申请号 US201414222414 申请日期 2014.03.21
申请人 Oracle International Corporation 发明人 Lagergren Marcus
分类号 G06F9/445 主分类号 G06F9/445
代理机构 代理人
主权项 1. A system for redundant array copy removal in a virtual machine environment, comprising: a computer including a microprocessor; a virtual machine running on the computer, that executes one or more software applications; a bytecode compiler that compiles application bytecode into compiled bytecode for execution by the virtual machine; a memory space for storage of the application bytecode and the compiled bytecode; an escape analyzer logic that determines array equivalence guards to be added to the compiled bytecode, to allow for redundant array copy removal, including determining, within the compiled bytecode, for one or more array copy operations that include a source array and a destination array, those array copy operations that can be modified using a guarded array copy; wherein the bytecode compiler then replaces, within the compiled bytecode, one or more of those array copy operations that have been determined can be modified, with a guarded array copy operation that indicates when its source array is to be used as its destination array, including code that compares the length of the source array indicated by the array copy operation, with the length of the destination array indicated by the array copy operation, andcompares a starting position within the source array as indicated by the array copy operation with a starting position of the destination array as indicated by the array copy operation,to determine that its source array can be used as its destination array.
地址 Redwood Shores CA US