Just-in-time Compiling Or Dynamic Compiling (e.g., Compiling Java Bytecode On A Virtual Machine) Patents (Class 717/148)
-
Publication number: 20120167067Abstract: A batching mechanism is provided that batches multiple Java Native Interface calls together such that the batch crosses the Java Native Interface boundary in a single transition. The batching mechanism operates by identifying a sequence of Java Native Interface calls to be made by native code, by encapsulating the identified sequence of Java Native Interface calls into a batch, and by communicating the batch as a single transition across the Java Native Interface boundary. In this manner, each call of the batch is encapsulated by iteratively performing for each call to be made, processes including identifying the Java Native Interface function to call, identifying the arguments to pass into the Java Native Interface function, dispatching to the Java Native Interface function and capturing the return value.Type: ApplicationFiled: December 23, 2010Publication date: June 28, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Andrew R. Low, Marcel Mitran, Kishor V. Patil, Gavin Rolleston, Ivan Sham, Karl M. Taylor
-
Publication number: 20120159464Abstract: A runtime system implemented in accordance with the present invention provides an application platform for parallel-processing computer systems. Such a runtime system enables users to leverage the computational power of parallel-processing computer systems to accelerate/optimize numeric and array-intensive computations in their application programs. This enables greatly increased performance of high-performance computing (HPC) applications.Type: ApplicationFiled: February 27, 2012Publication date: June 21, 2012Inventors: Christopher G. Demetriou, Matthew N. Papakipos
-
Patent number: 8205193Abstract: The invention relates to a computer-implemented method of updating a virtual machine class file, including the steps of identifying a class file for execution by a virtual machine, accessing the class file in a class file repository, and downloading the class file to a file system associated with the virtual machine.Type: GrantFiled: June 11, 2001Date of Patent: June 19, 2012Assignee: Hewlett-Packard Development Company, L.P.Inventors: William Hertling, Michael D Whitmarsh
-
Publication number: 20120151458Abstract: A system and method for removal of array copies in Java by reusing a source array for the target array and potentially cutting the length of the source array. In accordance with an embodiment, the system comprises physical computers or similar computing devices; a computing or virtual execution environment; a virtual machine that includes a compiler and memory spaces for Java application bytecode and storage for generated machine code; and wherein the compiler performs a static analysis of the code wherever any array copy is found, and determines if the array copy can be replaced with a reuse of the source array as the target array, potentially followed by a cut operation, and if so modifies the generated machine code accordingly.Type: ApplicationFiled: December 8, 2010Publication date: June 14, 2012Applicant: ORACLE INTERNATIONAL CORPORATIONInventor: Fredrik Öhrstrõm
-
Patent number: 8201171Abstract: Various technologies and techniques are disclosed for handling data parallel operations. Data parallel operations are composed together to create a more complex data parallel operation. A fusion plan process is performed on a particular complex operation dynamically at runtime. As part of the fusion plan process, an analysis is performed of a structure of the complex operation and input data. One particular algorithm that best preserves parallelism is chosen from multiple algorithms. The structure of the complex operation is revised based on the particular algorithm chosen. A nested complex operation can also be fused, by inlining its contents into an outer complex operation so that parallelism is preserved across nested operation boundaries.Type: GrantFiled: June 27, 2007Date of Patent: June 12, 2012Assignee: Microsoft CorporationInventors: John Joseph Duffy, David Callahan
-
Patent number: 8201026Abstract: The present disclosure relates to techniques for potentially increasing the reliability and/or stability of systems having virtual machines that support multiple modes of execution. For example, as described herein, a virtual machine partitions a plurality of program instructions into a plurality of traces for execution by a virtual machine operating on a computing device, wherein the virtual machine has first and second modes of execution, and wherein each of the plurality of traces comprises one or more of the plurality of program instructions. The virtual machine applies the second mode of execution to a first trace in the plurality of traces and determines an error condition that is caused by the application of the second mode of execution to the first trace. After determining the error condition, the virtual machine applies the first mode of execution to the first trace to recover the virtual machine from the error condition.Type: GrantFiled: September 30, 2011Date of Patent: June 12, 2012Assignee: Google Inc.Inventors: Daniel R. Bornstein, Ben C. Cheng, William B. Buzbee
-
Publication number: 20120144377Abstract: A computer implemented method, apparatus, and computer program product for managing just-in-time compilation. The process designates a set of compilation threads for exclusively performing compilation functions associated with an application. A set of computation threads is designated for executing the application. Processor cycles are dynamically allocated during runtime between the set of compilation threads and the set of computation threads to maintain a ratio of processor cycles consumed by the set of compilation threads to processor cycles consumed by the set of computation threads.Type: ApplicationFiled: February 6, 2012Publication date: June 7, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Marius Pirvu
-
Publication number: 20120131562Abstract: A method and apparatus for upgrading a virtual machine in a portable terminal are provided in which an external class file different from a class file defined on a virtual machine for execution of a Java MIDlet is received and stored, then the external class file is dynamically loaded by a class loader when the Java MIDlet is executed. During operation, it is determined whether the external class file is applicable to the virtual machine by analyzing setting information of the external class file, and if so, the external class file is applied to the virtual machine.Type: ApplicationFiled: November 22, 2011Publication date: May 24, 2012Applicant: SAMSUNG ELECTRONICS CO., LTD.Inventor: Hyeon-Ho KIM
-
Patent number: 8181166Abstract: A system for determining when an EJB compiler needs to be executed, comprising: a server, including an EJB or plurality of EJBs and an EJB compiler operating thereon that determines a first snapshot of the EJB at a particular moment in time or for a particular server version, and a second snapshot of said EJB at a later moment in time or a subsequent server version, and compares the first and second snapshots to determine whether the EJB should be recompiled.Type: GrantFiled: October 29, 2007Date of Patent: May 15, 2012Assignee: Oracle International CorporationInventors: Matthew Shinn, Seth White, Rob Woollen
-
Publication number: 20120117550Abstract: The invention in particular relates to provide security for intermediate programming code for its execution by a virtual machine. After having received (200) a plurality of pseudo-instructions of the intermediate programming code, the plurality of bytecode instructions is converted (230, 235), the conversion including a step of inserting at least one bytecode instruction relative to a function for execution checking of at least one bytecode instruction of the plurality of bytecode instructions. A following step is directed to generating bytecode, the generated bytecode including the plurality of converted bytecode instructions.Type: ApplicationFiled: November 9, 2011Publication date: May 10, 2012Applicant: OBERTHUR TECHNOLOGIESInventors: Olivier CHAMLEY, Hugo GRENECHE
-
Patent number: 8171482Abstract: Systems and methods of executing an application in an application specific runtime environment are disclosed. The application specific runtime environment is defined by an application environment specification to include a minimal or reduced set of software resources required for execution of the application. The application environment is generated by determining software resource dependencies and is used to provision the application specific runtime environment in real-time in response to a request to execute the application. Use of the application specific runtime environment allows the application to be executed using fewer computing resources, e.g., memory.Type: GrantFiled: May 9, 2007Date of Patent: May 1, 2012Assignee: VMware, Inc.Inventors: Stevan Vlaovic, Richard Offer, Lynn LeBlanc
-
Patent number: 8171045Abstract: The compiled code of a computer program is stored in multiple pieces within a database. Each piece is optionally stored within a separate data record. Execution of the computer program includes using database queries to retrieve pieces of the compiled code for execution. The database and associated database management logic are used to provide numerous advantages in execution and management of the computer program. For example, in some embodiments, database queries are used to help facilitate program flow logic.Type: GrantFiled: July 31, 2008Date of Patent: May 1, 2012Assignee: XSEVO Systems, Inc.Inventor: Dustin Kurt Adler
-
Publication number: 20120096447Abstract: A technique for comprehensively acquiring calling-context information at a low cost. Call site IDs are held for each thread as a call history and used as context information. At the time of calling a method, the call history existing in a current frame is shifted left, and stacked in a new frame, with the call site ID of the call site put in the lower bits. At the time of returning from the method, the value of the original call history is returned by returning the frame. At the time of performing a virtual call, call history information is recorded into a call position profile table used to identify a method to be inlined at the time of performing JIT compiling, in addition to determined jump destination information and the number of calls.Type: ApplicationFiled: October 14, 2011Publication date: April 19, 2012Applicant: International Business Machines CorporationInventors: Derek B. Inglis, Kiyokuni Kawachiya, Tamiya Onodera, Michiaki Tatsubori
-
Patent number: 8161470Abstract: Automated injection of Java bytecode instructions for Java load time optimization via runtime checking with upcasts. Exemplary embodiments include a method including generating a stack for each of a plurality of bytecodes, generating a subclass configured to keep a history of instructions that have modified the stack, statically scanning a plurality of Java classes associated with the plurality of bytecodes to locate class file configurations and bytecode patterns that cause loading of additional classes to complete a verification of each of the classes in the plurality of Java classes, rewriting the bytecodes to delay the loading of the additional classes until required at a runtime, recording modifications that have been made to the stack by the instructions, and applying the modifications to each of the bytecodes in the plurality of bytecodes.Type: GrantFiled: August 31, 2007Date of Patent: April 17, 2012Assignee: International Business Machines CorporationInventors: T. Mark W. Bottomley, Nicholas J. Doyle, Aleksandr V. Kennberg, Orlando E. Marquez, Amey A. Shirodkar
-
Patent number: 8161465Abstract: One embodiment of the present invention provides a system that facilitates performing conditional compilation. The system operates by analyzing programming language source code prior to compilation to locate a preprocessing directive that specifies a condition to be evaluated, and also identifies source code to be conditionally included during compilation of the source code. Next, the system generates evaluation source code that evaluates the condition. The system then evaluates the condition by evaluating ordinary programming language and environmental variables within the evaluation source code. Note that the run-time variables are also available at run-time during execution of a compiled version of the original source code. Next, the system conditionally includes source code associated with a result of the evaluation and compiles the revised source code.Type: GrantFiled: July 27, 2006Date of Patent: April 17, 2012Assignee: Oracle International CorporationInventors: Minghui Yang, Chandrasekharan Iyer, Charles Wetherell
-
Patent number: 8146065Abstract: A computer implemented method, apparatus, and computer program product for managing just-in-time compilation. The process designates a set of compilation threads for exclusively performing compilation functions associated with an application. A set of computation threads is designated for executing the application. Processor cycles are dynamically allocated during runtime between the set of compilation threads and the set of computation threads to maintain a ratio of processor cycles consumed by the set of compilation threads to processor cycles consumed by the set of computation threads.Type: GrantFiled: August 13, 2007Date of Patent: March 27, 2012Assignee: International Business Machines CorporationInventor: Marius Pirvu
-
Patent number: 8140985Abstract: Through one or more transaction calls, an application domain manager enables a host application to create, initialize, customize, and otherwise manage an isolation construct within the application.Type: GrantFiled: January 20, 2005Date of Patent: March 20, 2012Assignee: Microsoft CorporationInventors: Raja Krishnaswamy, Steven J. Pratschner, Tarik Soulami
-
Patent number: 8136104Abstract: A runtime system implemented in accordance with the present invention provides an application platform for parallel-processing computer systems. Such a runtime system enables users to leverage the computational power of parallel-processing computer systems to accelerate/optimize numeric and array-intensive computations in their application programs. This enables greatly increased performance of high-performance computing (HPC) applications.Type: GrantFiled: March 5, 2007Date of Patent: March 13, 2012Assignee: Google Inc.Inventors: Matthew N. Papakipos, Brian K. Grant, Morgan S. McGuire, Christopher G. Demetriou
-
Patent number: 8136103Abstract: A method for combined static and dynamic compilation of program code to remove delinquent loads can include statically compiling source code into executable code with instrumented sections each being suspected of including a delinquent load, and also into a separate intermediate language representation with annotated portions each corresponding to one of the instrumented sections. The method also can include executing the instrumented sections repeatedly and monitoring cache misses for each execution. Finally, the method can include dynamically recompiling selected ones of the instrumented sections using corresponding ones of the annotated portions of the separate intermediate language representation only after a threshold number of executions of the selected ones of the instrumented sections, each recompilation include a pre-fetch directive at a pre-fetch distances tuned to avoid the delinquent load.Type: GrantFiled: March 28, 2008Date of Patent: March 13, 2012Assignee: International Business Machines CorporationInventors: Gheorghe C. Cascaval, Yaoqing Gao, Allan H. Kielstra, Kevin A. Stoodley
-
Patent number: 8136102Abstract: A runtime system implemented in accordance with the present invention provides an application platform for parallel-processing computer systems. Such a runtime system enables users to leverage the computational power of parallel-processing computer systems to accelerate/optimize numeric and array-intensive computations in their application programs. This enables greatly increased performance of high-performance computing (HPC) applications.Type: GrantFiled: March 5, 2007Date of Patent: March 13, 2012Assignee: Google Inc.Inventors: Matthew N. Papakipos, Brian K. Grant, Christopher G. Demetriou, Morgan S. McGuire
-
Patent number: 8132162Abstract: A runtime machine manages a selected disk space allocated to the runtime machine by the operating system and manages a separate method cache within the selected virtual disk space. The runtime machine controls caching within the method cache of a separate result of at least one method of the application marked as cache capable. For a next instance of the method detected by the runtime machine, the runtime machine accesses the cached separate result of the method in lieu of executing the method again. The runtime machine marks a method as cache capable by analyzing the types of objects within the argument object graph and result object graph of a method. If the runtime machine detects only primitive type objects, then the runtime machine marks the method so that the result of the method will be stored in the method cache.Type: GrantFiled: July 5, 2007Date of Patent: March 6, 2012Assignee: International Business Machines CorporationInventor: Robert R. Peterson
-
Publication number: 20120054725Abstract: A method and system for code generation and inlining. The method includes: scanning a code, where the code includes a method; determining whether the method includes a branch if the method is too large in size to be inlined, where the branch is based on runtime types of argument; profiling runtime types of actual arguments at a call site in the method if the method includes the branch; generating a polymorphic inline cache (PIC) code from a plurality of arguments, where the plurality of arguments are based on a result of the profiling step; generating a specialized method for a frequently appearing combination of the runtime types of argument and arguments that can be invoked from the PIC code; and inlining body of the specialized method into the call site if the specialized method has a body size within a permissible range.Type: ApplicationFiled: August 30, 2011Publication date: March 1, 2012Applicant: International Business Machines CorporationInventors: Derek B. Inglis, Kiyokuni Kawachiya, Tamiya Onodera, Michiaki Tatsubori
-
Patent number: 8127123Abstract: A system for migrating information includes a first information handling system (IHS). The first IHS is for, in response to a first boot event, booting from a computer readable medium, bypassing the first IHS user authentication requirement, and establishing a connection between the first IHS and a second IHS. The system for migrating information also includes the second IHS, coupled to the first IHS. The second IHS is for, in response to a second boot event, booting from a storage device of the second IHS, establishing the connection between the first IHS and the second IHS, and migrating information from the first IHS to the second IHS.Type: GrantFiled: September 16, 2008Date of Patent: February 28, 2012Assignee: Dell Products L.P.Inventors: Jefferson Raley, Shaofei Chen, Marc Jarvis, Craig Rones
-
Patent number: 8122440Abstract: A computer-implemented method and apparatus for enumerating program code dependencies is provided. According to an embodiment of the invention, a user selects or otherwise indicates a code base to be processed and analyzed for the purpose of enumerating those program code modules required by the code base in order to properly compile and execute the code base. Next, the code base is processed in accordance with instructions designed to mirror those of a compiler for compiling the code base. Accordingly, external program code dependencies are identified using compile time compilation parameters, as well as extensive programming language analysis.Type: GrantFiled: September 26, 2007Date of Patent: February 21, 2012Assignee: NetApp, Inc.Inventors: James Lentini, Thomas Talpey
-
Patent number: 8117601Abstract: System(s) and method(s) facilitate testing and manipulating an application internally within a client-server configuration coordinated by a communicator object. A client test-object conveys a test to a server test-object through a remoting channel and over disparate processes, e.g., a test process and designer process. A service in an application developer intermediates communication across a communicator thread and a designer thread. In response to a test, information is received in the client end as a serialized wrapper object. Manipulation is accomplished by deserializing and modifying the received information, and then transmitting the information in a serialized object through the remoting channel across processes, and via the intermediary service component across threads in the designer process. Testing and manipulation can facilitate optimizing an application, improving application's functionality as well as a user experience.Type: GrantFiled: November 14, 2007Date of Patent: February 14, 2012Assignee: Microsoft CorporationInventors: David Ernest Owens, II, Jessica Lynn Fosler
-
Patent number: 8112745Abstract: A method includes identifying one or more features of an execution environment to be used by an application during execution and determining if use of the one or more features is restricted. The method also includes, if use of the one or more features is not restricted, compiling and executing the application in the execution environment. The method further includes, if use of any of the one or more features is restricted, blocking execution of the application in the execution environment. Determining if the use of the one or more features is restricted may include using a configuration list or a profile identified using a custom attribute. The configuration list or the profile identifies features that are available for use in the execution environment and/or features that cannot be used in the execution environment.Type: GrantFiled: March 22, 2006Date of Patent: February 7, 2012Assignee: Honeywell International Inc.Inventors: Piyush Garyali, Ziad M. Kaakani, Vivek B. Varma
-
Patent number: 8108845Abstract: A computing system receives a program created by a technical computing environment, analyzes the program, generates multiple program portions based on the analysis of the program, dynamically allocates the multiple program portions to multiple software units of execution for parallel programming, receives multiple results associated with the multiple program portions from the multiple software units of execution, and provides the multiple results or a single result to the program.Type: GrantFiled: May 15, 2007Date of Patent: January 31, 2012Assignee: The Mathworks, Inc.Inventors: John N. Little, Joseph F. Hicklin, Jocelyn Luke Martin, Nausheen B. Moulana, Halldor N. Stefansson, Loren Dean, Roy E. Lurie, Stephen C. Johnson, Penelope L. Anderson, Michael E. Karr, Jason A. Kinchen
-
Patent number: 8104027Abstract: An improved architecture for a program code conversion apparatus and method for generating intermediate representations for program code conversion. The program code conversion apparatus determines which types of IR nodes to generate in an intermediate representation (IR) of subject code (10) to be translated. Depending upon the particular subject and target computing environments involved in the conversion, the program code conversion apparatus utilizes either base nodes, complex nodes, polymorphic nodes, and architecture specific nodes, or some combination thereof, in generating the intermediate representation.Type: GrantFiled: May 28, 2008Date of Patent: January 24, 2012Assignee: International Business Machines CorporationInventors: Daniel Owen, Jonathan Jay Andrews, Miles Philip Howson, David Haikney
-
Patent number: 8104028Abstract: Repetitive synchronization in program code is optimized through lock coarsening that is performed subject to a number of constraints. Using a forward pass over the program code followed by a backward pass, region extent bits may be determined that identify the points in the program where object locking can be coarsened. The program code may then be modified to realize coarsened locking regions determined based on the region extent bits. Alternatively, previously determined value numbers may provide much of the information collected by the two passes. In such a case, a single pass over the program code may locate features that limit lock coarsening opportunities. A set of synchronization operations that can be removed may then be determined and used when modifying the program code to coarsen locking regions.Type: GrantFiled: March 31, 2009Date of Patent: January 24, 2012Assignee: International Business Machines CorporationInventors: Mark Graham Stoodley, Vijay Sundaresan
-
Patent number: 8104034Abstract: Embodiments of the present invention provide an architecture for securely and efficiently executing byte code generated from a general programming language. In particular, a computer system is divided into a hierarchy comprising multiple types of virtual machines. A thin layer of software, known as a virtual machine monitor, virtualizes the hardware of the computer system and emulates the hardware of the computer system to form a first type of virtual machine. This first type of virtual machine implements a virtual operating domain that allows running its own operating system. Within a virtual operating domain, a byte code interpreter may further implement a second type of virtual machine that executes byte code generated from a program written in a general purpose programming language. The byte code interpreter is incorporated into the operating system running in the virtual operating domain.Type: GrantFiled: November 30, 2005Date of Patent: January 24, 2012Assignee: Red Hat, Inc.Inventor: Ulrich Drepper
-
Patent number: 8099723Abstract: A method, apparatus, and computer instructions for referencing a constant pool. A determination is made as to whether a bytecode references the constant pool. A relative offset to the constant pool is identified for the bytecode, in response to the bytecode referencing the constant pool. The bytecode is then replaced with a new bytecode containing the relative offset. The relative offset is used to reference the constant pool.Type: GrantFiled: April 3, 2008Date of Patent: January 17, 2012Assignee: International Business Machines CorporationInventors: Peter Wiebe Burka, Graham Alan Chapman, Trent A. Gray-Donald, Karl Michael Taylor
-
Patent number: 8099724Abstract: A patch-based mechanism is disclosed for providing fast invocations of a target method from a compiled calling method. The code for the calling method is stored into a storage. The code for the calling method comprises an instruction for invoking the target method, where the instruction comprises a parameter. In response to a state change from a current state to a new state that is experienced by the target method, the parameter is modified from a first value to a second value, where the second value indicates the correct address for facilitating the execution of the target method in its new state. Thus, the parameter in the instruction for invoking the target method always reflects the correct state of the target method, which provides for a fast invocation of the target method when the instruction is executed.Type: GrantFiled: February 28, 2006Date of Patent: January 17, 2012Assignee: Oracle America, Inc.Inventor: Christopher J. Plummer
-
Patent number: 8099729Abstract: A device (45) receives new program files (46) and uses pre-internalized images to avoid having to internalize a program file every time that program execution occurs. In one embodiment, a software Virtual Machine (50) in the device functions to implement the pre-internalization. Once the program files are pre-internalized to create images that are stored in a permanent memory (56) of the device, the images may subsequently be executed without having to perform a pre-internalization operation. Additionally, use of dynamic memory (52) is reduced in connection with subsequent program execution and execution time of new program files is reduced.Type: GrantFiled: June 5, 2006Date of Patent: January 17, 2012Assignee: Freescale Semiconductor, Inc.Inventors: Iris M. Plaxton, Samuel J. Rauch, John H. Osman, Andrew A. Bjorksten, Jason M. Bennett
-
Publication number: 20120005661Abstract: A method for a discrete event simulation model of a system utilizing a just-in-time compilation for one or more code blocks associated with an event in one or more discrete event simulation models is disclosed. The method comprises the steps of determining the event in a discrete event simulation model according to a kind of event, retrieving the code block associated with the event, compiling the code block into an object file using a compiler, linking the object file with a predetermined function in a simulation library, compiling the object file and the predetermined function into a customized dynamic link library, loading the customized dynamic link library (DLL) within a discrete event simulation program execution and linking the customized DLL to a simulation program. The method allows user entered logic to be executed in high speed by integrating a just-in-time compiler embedded into the simulation model to allow dynamic generation of high speed code blocks within one or more simulations.Type: ApplicationFiled: June 30, 2010Publication date: January 5, 2012Inventors: Lenrick Johnston, Quint King
-
Patent number: 8091077Abstract: Systems and methods for the efficient handling of rare events by modification of executable code is provided. The present invention eliminates the need for event checking code and handling in the primary execution path of compiled code by using a patch table to modify code during execution. Accordingly, event handling does not introduce additional instructions to the primary execution path, and thus will not interfere with compiler optimizations for maximal performance along the primary execution path. The present invention, therefore, provides event handling for events that occur rarely while reducing the size of the code for execution on memory-constrained devices.Type: GrantFiled: October 11, 2006Date of Patent: January 3, 2012Assignee: Oracle America, Inc.Inventors: Oleg A. Pliss, Ioi K. Lam
-
Patent number: 8082542Abstract: A computer implemented method, apparatus, and computer usable program code for processing a class file. The class file is loaded onto a target device. A determination is made whether verification is enabled. Static constraints are checked in response to determining the verification is enabled. A determination is made whether subroutines are present in a set of methods within the class file. The subroutines are in-lined in response to determining that subroutines are present in the set of methods.Type: GrantFiled: October 4, 2006Date of Patent: December 20, 2011Assignee: International Business Machines CorporationInventors: Thomas Mark Walter Bottomley, Peter Wiebe Burka, Jeffrey Michael Disher, Karl Michael Taylor
-
Patent number: 8079023Abstract: Described is a technology by which a compiler's intermediate representation is generated in a way that includes type checking to ensure safe execution. Typed representation of virtual method invocation uses an exact class name to represent objects of the class but not those of the subclasses, and a combined class type as an encoding of an existential type to represent objects of the class and subclasses of the class. Typed representation of interface method invocation is also provided, as is testing whether the object can be cast to a class, to an interface and/or to a class vector. Vector store checking is also able to be type checked. The medium-level intermediate representation is translated into a low-level intermediate representation, including choosing data representation for types, and converting medium-level intermediate representation operators into instructions in the low-level representation.Type: GrantFiled: March 22, 2007Date of Patent: December 13, 2011Assignee: Microsoft CorporationInventor: Juan Chen
-
Patent number: 8056061Abstract: A data processing device and method are provided. The data processing device includes a code storage unit storing an original code to be translated into a machine language code, a code analyzer analyzing the original code stored in the code storage unit, a register allocator allocating a predesignated register for a command included in the original code based on the result of analysis, and a code executor executing a machine language code generated using the allocated register.Type: GrantFiled: October 20, 2005Date of Patent: November 8, 2011Assignee: Samsung Electronics Co., Ltd.Inventors: Sang-gyu Lee, Chong-mok Park
-
Publication number: 20110271262Abstract: A method for detecting transient fault includes translating binary code to an intermediate language code. An instruction of interest in the intermediate language code is identified. Reliability instructions are inserted in the intermediate language code to validate values from the instruction of interest. The intermediate language code is translated to binary code. Other embodiments are described and claimed.Type: ApplicationFiled: July 13, 2011Publication date: November 3, 2011Inventors: George A. Reis, Robert Cohn, Shubhendu S. Mukherjee
-
Patent number: 8051411Abstract: A method for copy propagations of a processor including two clusters, each cluster comprising a first function unit and a second function unit, a first local register file and a second local register file being respectively accessible by the first and second function unit only, and a global register file having a ping-pong structure to access the first and second local register files, the method comprising the steps of: (a) listing possible copy propagation paths between two nodes of a data flow graph; (b) calculating a profit of machine cycles for each of the copy propagation paths according to constraints of the processor; and (c) performing a copy propagation through the copy propagation path if the profit thereof is greater than a threshold value.Type: GrantFiled: August 8, 2007Date of Patent: November 1, 2011Assignee: National Tsing Hua UniversityInventors: Jenq Kuen Lee, Chung Ju Wu, Sheng Yuan Chen
-
Publication number: 20110265067Abstract: A tracing just-in-time (TJIT) compiler system is described for performing parallelization of code in a runtime phase in the execution of code. Upon detecting a hot loop during the execution of the code, the compiler system extracts trace information from sequentially recorded traces. In a first phase, the compiler system uses the trace information to identify at least one group of operation components that can be operated on in a parallel manner. In a second phase, the compiler system provides instructions which allocate the group of operation components to plural processing resources. A native code generator module carries out those instructions by recompiling native code that directs the operation of a native system to perform parallel processing. The compiler system terminates a group if it encounters program data in a loop iteration that is not consistent with previously encountered predicated information (upon which it records a new trace in a sequential manner).Type: ApplicationFiled: April 21, 2010Publication date: October 27, 2011Applicant: Microsoft CorporationInventors: Wolfram Schulte, Nikolai Tillmann, Michal J. Moskal, Manuel A. Fahndrich, Daniel JP Leijen, Barend H. Venter
-
Patent number: 8042096Abstract: Method for automatically selecting a software application being a program for execution on a virtual machine, including the steps of receiving an exit status value from a terminating software application; translating the exit status value to an identifier for the next software application to be executed, wherein a mapping table is used; executing on the virtual machine the next software application (J4) program that is represented by the identifier.Type: GrantFiled: April 13, 2005Date of Patent: October 18, 2011Assignee: Thomson LicensingInventors: Jobst Hoerentrup, Dirk Gandolph, Ralf Ostermann, Carsten Herpel, Uwe Janssen, Hartmut Peters, Andrej Schewzow, Marco Winter
-
Patent number: 8042103Abstract: A method and apparatus for speeding the startup of applications by making available a pre-translated class file to the class loaders. The Java virtual machine (JVM) starts faster if application class loaders can use the pre-translated class files or internal representations instead of fetching classes from Java archive files or system directories. JVM understands java executable format and can start faster by using them without the user application class loaders having to know the complexities of executable files. The Java archive file format is modified to allow the pre-translated class files to be stored in the Java archive file such that the class loaders are able to process the modified Java archive file without requiring any change to the class loader.Type: GrantFiled: November 29, 2005Date of Patent: October 18, 2011Assignee: International Business Machines CorporationInventors: Peter Wiebe Burka, Ronald Servant
-
Patent number: 8037482Abstract: Reaching a determination associated with a class of an object is disclosed. An identifier associated with the class of the object is extracted from a pointer to the object. The extracted identifier is compared to a comparison value. At least in part using a result of the comparison a determination is reached.Type: GrantFiled: December 6, 2005Date of Patent: October 11, 2011Assignee: Azul Systems, Inc.Inventors: Gil Tene, Cliff N. Click, Jr., Murali Sundaresan, Michael A. Wolf
-
Patent number: 8037460Abstract: Software expressed in an intermediate level language is stored into a database and interpreted in a virtual machine in a database management system. A dynamic compilation process in the database management system asynchronously converts the software into native code when predetermined conditions are met. Thereafter, the compilation process persists the native code into the database. At the time of persisting the native code, the compilation process also stores in the database, an indication of any properties that are used in compilation of the native code. At run time, when the native code needs to be executed, the virtual machine checks if the indication stored in the database matches a new indication of the constants, and if they do the persisted code is executed or else the persisted code is invalidated. The persisted code is also invalidated when a new version of ILL software is stored into the database.Type: GrantFiled: January 26, 2007Date of Patent: October 11, 2011Assignee: Oracle International CorporationInventors: Robert H. Lee, David Unietis, Mark Jungerman
-
Publication number: 20110246974Abstract: A dynamic compiler program product, method, and device for sequentially compiling a partial computer program in a computer. The program product causes the computer to function as: an execution status acquisition unit for acquiring respective values of one or more pieces of current execution status information; a determination unit for reading, from the shared pool, the second list of the conditions associated with an executable instruction stream generated by compiling a partial program that is the same as a partial program to be compiled and determining whether respective values of corresponding pieces of current execution status information satisfy the conditions; and a dynamic compilation unit for generating an executable instruction stream by compiling the partial program to be compiled on the condition that a result of determination made by the determination unit is negative.Type: ApplicationFiled: March 31, 2011Publication date: October 6, 2011Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Kiyokuni Kawachiya, Kazunori Ogata
-
Patent number: 8028299Abstract: The present invention discloses a modified computer architecture (50, 71, 72) which enables an applications program (50) to be run simultaneously on a plurality of computers (M1, . . . Mn). Shared memory at each computer is updated with amendments and/or overwrites so that all memory read requests are satisfied locally. During initial program loading (75), or similar, instructions which result in memory being re-written or manipulated are identified (92). Additional instructions are inserted (103) to cause the equivalent memory locations at all computers to be updated. In particular, the finalization of JAVA language classes and objects is disclosed (162, 163) so finalization only occurs when the last class or object present on all machines is no longer required.Type: GrantFiled: October 25, 2005Date of Patent: September 27, 2011Assignee: Waratek Pty, Ltd.Inventor: John Matthew Holt
-
Patent number: 8024704Abstract: The present invention relates to systems and methods that facilitate dynamic programming language execution in a managed code environment. A class component is provided that declares an inheritance hierarchy for one or more tagged values associated with a dynamic programming language. During execution of the tagged values, a rules component mitigates user-defined types from inheriting or deriving properties from the tagged values in order to support a type safe runtime environment. A bifurcated class tree is provided that defines non-tagged type elements on one side of the tree and tagged type element values on an alternate branch of the tree. The rules component analyzes runtime extensions that help to prevent data from one component of the tree deriving or inheriting properties from another component of the tree. The runtime extensions include such aspects as cast class extensions, test class extensions, and conversion class extensions for converting data types from one class subtype to another.Type: GrantFiled: August 31, 2006Date of Patent: September 20, 2011Assignee: Microsoft CorporationInventor: Eric Meijer
-
Patent number: 8024720Abstract: A computer implemented method, computer usable program code, and a data processing system for selecting a candidate implementation of a virtual overridden method for inlining into a calling method. A determination as to which implementation of a virtual overridden method to inline is made based on its relative “hotness” compared to the other implementations of the same method. The relative hotness can be inferred from the invocation count and sampling count that the virtual machine and the just-in-time compiler already collect for other purposes, that is, without collecting and storing of call-edge profiling information. When a method is being compiled and it is identified that the method contains a call to an overridden method, a candidate for inlining from among the implementations of the overridden method is selected based on relative hotness values. The candidate implementation of the overridden method is then inlined, with a guard, into the calling method.Type: GrantFiled: April 17, 2006Date of Patent: September 20, 2011Assignee: International Business Machines CorporationInventors: Derek Bruce Inglis, Vijay Sundaresan, Dina Tal
-
Patent number: 8024716Abstract: A system comprising a compiler that compiles source-level code to generate an intermediate-level instruction comprising a predetermined component. The intermediate-level instruction is an at least partially optimized version of the source-level code. Execution of the predetermined component triggers the execution of a series of instructions that, when executed, generates previously-unavailable data that is used to re-generate the intermediate-level instruction. The re-generated intermediate-level instruction has a length less than or equal to that of the intermediate-level instruction.Type: GrantFiled: July 26, 2005Date of Patent: September 20, 2011Assignee: Texas Instruments IncorporatedInventors: Jean-Philippe Lesot, Mikael Peltier, Gilbert Cabillic