Just-in-time Compiling Or Dynamic Compiling (e.g., Compiling Java Bytecode On A Virtual Machine) Patents (Class 717/148)
-
Patent number: 8850412Abstract: Methods and systems are described for generating event data records by using aspects. Cross cutting concerns are applied in order to generate the EDRs. In various embodiments, the EDRs are generated within a gateway or another type of software application that processes various communications. In processing data, the gateway can generate data records, which capture information regarding traffic flow within the gateway. The event data records are generated at various points in the gateway by using an aspect to weave code at compile time. Once generated, the EDRs can be picked up by an external listener and filtered based on various criteria, such as Java type-based filtering and classification. The listener can use predefined filtering coming from the gateway or customize the filtering according to specific needs. The EDRs can also be classified by using a configuration file, which can be modified without altering any programming code within the gateway.Type: GrantFiled: May 14, 2009Date of Patent: September 30, 2014Assignee: Oracle International CorporationInventors: Jean Bovet, Boris Selitser
-
Patent number: 8843895Abstract: The subject matter of this specification can be embodied in, among other things, a method that includes establishing a connection with one or more virtual machines using a debugger protocol configured to communicate debug commands to applications executed by the one or more virtual machines. The method also includes transmitting a request for a current state of the one or more virtual machines using the connection. Information associated with the current state includes state variables not controlled by an application receiving debug commands. The method includes outputting the current state of the one or more virtual machines for display to a user.Type: GrantFiled: September 12, 2012Date of Patent: September 23, 2014Assignee: Google Inc.Inventors: Andrew T. McFadden, David P. Bort
-
Patent number: 8843911Abstract: Apparatus, systems, and methods for a compiler are described. One such compiler generates machine code corresponding to a set of elements including a general purpose element and a special purpose element. The compiler identifies a portion in an arrangement of relationally connected operators that corresponds to a special purpose element. The compiler also determines whether the portion meets a condition to be mapped to the special purpose element. The compiler also converts the arrangement into an automaton comprising a plurality of states, wherein the portion is converted using a special purpose state that corresponds to the special purpose element if the portion meets the condition. The compiler also converts the automaton into machine code. Additional apparatus, systems, and methods are disclosed.Type: GrantFiled: January 24, 2012Date of Patent: September 23, 2014Assignee: Micron Technology, Inc.Inventors: Junjuan Xu, Paul Glendenning
-
Patent number: 8843944Abstract: Determining a class of an object is disclosed. A pointer of the object is obtained. One or more bits that are not implemented as address bits are extracted from the pointer. The one or more bits are interpreted as an identifier of the class of the object. The class of the object is determined to correspond to the identifier.Type: GrantFiled: June 9, 2011Date of Patent: September 23, 2014Assignee: Azul Systems, Inc.Inventors: Gil Tene, Murali Sundaresan, Michael A. Wolf
-
Publication number: 20140282449Abstract: Disclosed here are methods, systems, paradigms and structures for incrementally compiling scripts at runtime to generate executable code. In a first phase, an executable block for a basic block of the script is generated for a set of types of variables of the basic block. In a second phase, a set of executable blocks whose profiling information, such as frequency of (a) execution, (b) transition between executable blocks, or (c) execution of a path, satisfies an optimization criterion is identified, and an executable control region is generated. In a third phase, profiling information from a number of systems in a distributed environment is aggregated, and an executable control region corresponding to the aggregated profile is generated. The executable code generated in each of the phases is more optimal than the code generated in a previous phase, and is used for execution until replaced by the code of a subsequent phase.Type: ApplicationFiled: March 12, 2013Publication date: September 18, 2014Inventors: Ali-Reza Adl-Tabatabai, Guilherme de Lima Ottoni, Keith Adams
-
Patent number: 8839274Abstract: Handling a virtual method call includes extracting, from a pointer to an object, an identifier associated with the class of the object, the pointer to the object being associated with the virtual method call, and the identifier being embedded within the pointer; using the identifier to obtain a virtual method table, including locating a first entry in a class identifier table mapping a plurality of class identifiers to a corresponding plurality of class data, the first entry being associated with the identifier and comprising the virtual method table or a pointer used to obtain the virtual method table; locating a second entry in the virtual method table, the second entry being associated with the virtual method call; and jumping to an address associated with the second entry to execute code at the address.Type: GrantFiled: September 7, 2011Date of Patent: September 16, 2014Assignee: Azul Systems, Inc.Inventors: Gil Tene, Cliff N. Click, Jr., Murali Sundaresan, Michael A. Wolf
-
Patent number: 8838874Abstract: A method, an article of manufacture, and system for heapifying an object. The method includes: storing, in a working set, a first address of a certain object in a stack frame, copying the certain object into the heap area and holding a second address of the certain object in the heap area, following each stack frame to find a pointer pointing to the first address stored in the working set, converting the address that the pointer points to into the second address, proceeding to a next stack frame, where the address conversion includes storing an address of another object in the working set if the converted address is stored as a value of a field of the other object in the stack frame, and terminating the process in response to a lack of pointers found in the stack frame to point to the addresses stored in the working set.Type: GrantFiled: November 2, 2011Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventors: Hiroshi Horii, Kiyokuni Kawachiya
-
Patent number: 8839215Abstract: A method, system and computer program product for optimizing memory usage associated with duplicate string objects in a Java virtual machine. The method comprises scanning a heap of the Java virtual machine at the end of the start-up process of the virtual machine to identify duplicate strings associated with the virtual machine, storing the identified strings in a string cache file, and determining whether a new string that needs to be created during start-up already exists in the string cache file. The duplicate strings are added to an interned strings table. A reference to a duplicate string is returned if a string to be created is already in the string cache file.Type: GrantFiled: July 19, 2010Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventors: Curtis E. Hrischuk, Andrew Russell Low, Peter Duncan Shipton, John Joseph Stecher
-
Patent number: 8832656Abstract: Systems and methods for providing symbolic information about fields, methods, and/or classes for a target device. A system and method may be used where the runtime processing is split between a host system and a target system. At the target device a test program uses a symbol not defined on the target device. A query is sent from the target device to a symbolic information source. The symbolic information source then provides the target device with information about the undefined symbol. The target device uses the information from the symbolic information source to complete the test program.Type: GrantFiled: September 7, 2005Date of Patent: September 9, 2014Assignee: BlackBerry LimitedInventors: John F. A. Dahms, David B. Howes, Stephen D. Woodward
-
Patent number: 8826250Abstract: 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, 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 discrete event simulation model to allow dynamic generation of high speed code blocks within one or more simulations.Type: GrantFiled: June 30, 2010Date of Patent: September 2, 2014Assignee: Bioproduction GroupInventors: Lenrick Johnston, Quint King
-
Patent number: 8826251Abstract: A method and an apparatus for dynamically generating a machine code is provided, including: sequentially storing generated instructions in a first buffer; sequentially storing data in a second buffer, when the generated instructions reference data; and flushing the first buffer and the second buffer to executable code when a distance between an instruction referencing the data and the data has reached a limit of an offset range of the data-referencing instruction.Type: GrantFiled: February 18, 2011Date of Patent: September 2, 2014Assignees: Samsung Electronics Co., Ltd, Seoul National University Industry FoundationInventors: Gyu-young Kim, Je-hyung Lee, Jin-seok Oh, Seong-won Lee, Won-ki Jung, Soo-mook Moon
-
Patent number: 8826249Abstract: In modern multi-threaded environments, threads often work cooperatively toward providing collective or aggregate throughput for an application as a whole. Optimizing in the small for “thread local” common path latency is often but not always the best approach for a concurrent system composed of multiple cooperating threads. Some embodiments provide a technique for augmenting traditional code emission with thread-aware policies and optimization strategies for a multi-threaded application. During operation, the system obtains information about resource contention between executing threads of the multi-threaded application. The system analyzes the resource contention information to identify regions of the code to be optimized. The system recompiles these identified regions to produce optimized code, which is then stored for subsequent execution.Type: GrantFiled: February 18, 2010Date of Patent: September 2, 2014Assignee: Oracle International CorporationInventors: David Dice, Virendra J. Marathe, Mark S. Moir
-
Patent number: 8826246Abstract: A system and method for partial object dematerialization within a virtual machine (VM), and particularly Java Virtual Machines. In accordance with an embodiment, the system allows for applying partial object dematerialization to situations where the object is either created locally, or is retrieved from external code where it might have already escaped. In accordance with an embodiment, the system comprises a computer; a virtual machine for executing a software application; memory space for the application byte code and the generated machine code; and a compiler with an object dematerializer, and dematerializer injector. Runtime partial object dematerialization code is injected into the intermediate code representation in such a way that additional or standard optimizer techniques can be applied to it.Type: GrantFiled: May 12, 2009Date of Patent: September 2, 2014Assignee: Oracle International CorporationInventors: Marcus Lagergren, Patrik Torstensson
-
Patent number: 8825795Abstract: Systems and methods for dynamically integrating disparate computer-aided dispatch (CAD) systems are disclosed. The systems and methods provide bi-directional interoperability between disparate CAD systems and maintain stateful ongoing interactions between interconnected CAD systems. Information objects in one CAD system are associated and bound to related objects in other CAD systems through a centralized information hub that transforms data items intelligently to facilitate communication and interaction between the CAD systems connected to the hub. The described systems and methods maintain complete and current perspectives of all relevant information for each CAD system connected to the information hub, thereby eliminating the need for point-to-point intelligence maintained by the CAD systems about the other interconnected CAD systems.Type: GrantFiled: August 22, 2011Date of Patent: September 2, 2014Inventors: Jonathan K. Wesley, Sr., Ryan Sealy, Mark Severson, Jonathan Featherstone, Nathan Daniels, Erik Cooley, Richard King
-
Publication number: 20140245272Abstract: An integrated circuit card is used with a terminal. The integrated circuit card includes a memory that stores an interpreter and an application that has a high level programming language format. A processor of the card is configured to use the interpreter to interpret the application for execution and to use a communicator of the card to communicate with the terminal.Type: ApplicationFiled: May 12, 2014Publication date: August 28, 2014Applicant: GEMALTO SAInventors: Timothy J. Wilkinson, Scott B. Guthery, Ksheerabdhi Krishna, Michael A. Montgomery
-
Patent number: 8819649Abstract: Methods, systems, and computer program products are provided for profiling source code to enable improved source code execution. A runtime engine includes a parser, a bytecode generator, an execution controller, an interpreter, a just-in-time (JIT) compiler, and a profile generator. The parser receives source code coded in a dynamic language and parses the source code to generate parsed source code. The bytecode generator converts the parsed source code to bytecode. The interpreter is configured to interpret the bytecode when enabled by the execution controller. The JIT compiler is configured to compile the bytecode when enabled by the execution controller. The profile generator generates profile information from the bytecode and stores the profile information. The execution controller enables the interpreter or the JIT compiler to perform their respective functions based on the profile information.Type: GrantFiled: September 9, 2011Date of Patent: August 26, 2014Assignee: Microsoft CorporationInventors: Louis Lafreniere, Curtis Man, Jedrzej Miadowicz, Paul Leathers, Jitendra Kumar, Arjun Bijanki
-
Patent number: 8819648Abstract: Execution of non-native operating system images within a virtualized computer system is improved by providing a mechanism for retrieving translated code physical addresses corresponding to un-translated code branch target addresses using a host code map. Hardware acceleration mechanisms, such as content-accessible look-up tables, directory hardware, or processor instructions that operate on tables in memory can be provided to accelerate the performance of the translation mechanism. The virtual address of the branch instruction target is used as a key to look up a corresponding record that contains a physical address of the translated code page containing the translated branch instruction target, and execution is directed to the physical address obtained from the record, once the physical page containing the translated code corresponding the target address is loaded in memory.Type: GrantFiled: July 20, 2012Date of Patent: August 26, 2014Assignee: International Business Machines CorporationInventor: Alexander Barraclough Brown
-
Publication number: 20140237458Abstract: Systems and methods for just-in-time (JIT) code compilation by a computer system. An example method may comprise identifying a defined pattern in a byte stream, evaluating a conditional expression associated with the pattern, and compiling the byte stream into a native code, while excluding, in view of the evaluating, a portion of byte stream associated with the pattern.Type: ApplicationFiled: February 18, 2013Publication date: August 21, 2014Applicant: RED HAT, INC.Inventors: Filip Eliás, Filip Nguyen
-
Patent number: 8813051Abstract: A method for running multiple copies of the same native code in a Java Virtual Machine is described. In one embodiment, such a method includes providing a class to enable segregating multiple copies of the same native code. The method defines, within the class, a native method configured to dispatch operation of the native code. The method further includes generating first and second instances of the class. Calling the native method in the first instance causes a first copy of the native code to run in a first remote execution container (e.g., a first process). Similarly, calling the native method in the second instance causes a second copy of the native code to run in a second remote execution container (e.g., a second process) separate from the first remote execution container. A corresponding computer program product is also disclosed.Type: GrantFiled: April 14, 2011Date of Patent: August 19, 2014Assignee: International Business Machines CorporationInventors: Michael Hilton Dawson, Graeme Johnson
-
Patent number: 8813044Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming said process definition by using a processing unit to apply said assumptions to said process definition to change the configuration of the process definition. The process definition may be transformed by using factors relating to the specific context in or for which the process definition is executed. Also, the process definition may be transformed by identifying, in a flow diagram for the service process definition, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.Type: GrantFiled: September 6, 2012Date of Patent: August 19, 2014Assignee: International Business Machines CorporationInventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
-
Patent number: 8813048Abstract: Embodiments of the claimed subject matter are directed to methods and a system that allows an application comprising a single code set under the COBOL Programming Language to execute in multiple platforms on the same multi-platform system (such as a mainframe). In one embodiment, a single code set is pre-compiled to determine specific portions of the code set compatible with the host (or prospective) platform. Once the code set has been pre-compiled to determine compatible portions, those portions may be compiled and executed in the host platform. According to these embodiments, an application may be executed from a single code set that is compatible with multiple platforms, thereby potentially reducing the complexity of developing the application for multiple platforms.Type: GrantFiled: January 5, 2010Date of Patent: August 19, 2014Assignee: Accenture Global Services LimitedInventor: Mark Neft
-
Patent number: 8806459Abstract: A method and system for performing dynamic instrumentation. At least some of the illustrative embodiments are methods comprising setting at least one monitor value (wherein the at least one monitor value is associated with a software monitoring handler), detecting a value within a register equal to the at least one monitor value, and executing the software monitoring handler based on the detecting.Type: GrantFiled: December 13, 2007Date of Patent: August 12, 2014Assignee: Texas Instruments IncorporatedInventors: Gilbert Cabillic, Jean-Philippe Lesot
-
Patent number: 8806460Abstract: The aspects enable a computing device to allocate memory space to variables during runtime compilation of a software application. A first variable associated with a code segment within code being compiled may be identified and assigned a priority tag. A second variable associated with another code segment within the code being compiled may also be assigned a priority tag. A determination may be made regarding whether the first and second variables are contemporaneously live during execution, and whether legal storage location sets for the first and second variables overlap. The assigned priority tags may be used for assigning storage locations to the first and second variables based on the determination.Type: GrantFiled: January 26, 2012Date of Patent: August 12, 2014Assignee: QUALCOMM IncorporatedInventor: Christopher A. Vick
-
Patent number: 8799878Abstract: A multi level virtual function table uses a hierarchy of chunks or segments of virtual function tables to identify methods for a particular class. At least one level of indirection pointers may point to individual virtual function table chunks, which may be shared by multiple classes. In some embodiments, fixed size chunks of virtual function tables may be used, other embodiments may use variable sized chunks of virtual function tables. In just in time compiled code, virtual function tables may be limited to sharing across parent and child classes, while in pre-compiled code, more complex sharing may be used.Type: GrantFiled: September 14, 2012Date of Patent: August 5, 2014Assignee: Microsoft CorporationInventor: David J. Hiniker
-
Patent number: 8799879Abstract: One embodiment provides a system that protects translated guest program code in a virtual machine that supports self-modifying program code. While executing a guest program in the virtual machine, the system uses a guest shadow page table associated with the guest program and the virtual machine to map a virtual memory page for the guest program to a physical memory page on the host computing device. The system then uses a dynamic compiler to translate guest program code in the virtual memory page into translated guest program code (e.g., native program instructions for the computing device). During compilation, the dynamic compiler stores in a compiler shadow page table and the guest shadow page table information that tracks whether the guest program code in the virtual memory page has been translated. The compiler subsequently uses the information stored in the guest shadow page table to detect attempts to modify the contents of the virtual memory page.Type: GrantFiled: June 30, 2009Date of Patent: August 5, 2014Assignee: Oracle America, Inc.Inventors: Gregory M. Wright, Christopher A. Vick, Peter B. Kessler
-
Patent number: 8793667Abstract: An analysis tool analyzes a software system by simulating runtime binding in order to identify function-level code dependencies. The tool receives a list of one or more entry point functions and identifies other functions that can be invoked if the entry point functions are executed. The tool generates a tracker graph having tracker nodes representing classes that can be instantiated from the entry points. Each tracker node identifies functions/methods in that class that can be invoked from the entry points. If the software system uses an object-relational mapping to a database, the tracker graph also identifies the portions of the database that can be accessed from the entry points. The tool can be used to partition the functionalities of the software system into core and non-core functionalities in order to support upgrading while maintaining high-availability.Type: GrantFiled: September 14, 2012Date of Patent: July 29, 2014Assignee: Google Inc.Inventors: Andrew Huang, Hong Yan
-
Patent number: 8793674Abstract: A method for compiler-guided optimization of MapReduce type applications that includes applying transformations and optimizations to JAVA bytecode of an original application by an instrumenter which carries out static analysis to determine application properties depending on the optimization being performed and provides an output of optimized JAVA bytecode, and executing the application and analyzing generated trace and feeds information back into the instrumenter by a trace analyzer, the trace analyzer and instrumenter invoking each other iteratively and exchanging information through files.Type: GrantFiled: September 18, 2012Date of Patent: July 29, 2014Assignee: NEC Laboratories America, Inc.Inventors: Nishkam Ravi, Jun Liu, Srimat T. Chakradhar
-
Patent number: 8793669Abstract: Processes in a message passing system may be launched when messages having data patterns match a function on a receiving process. The function may be identified by an execution pointer within the process. When the match occurs, the process may be added to a runnable queue, and in some embodiments, may be raised to the top of a runnable queue. When a match does not occur, the process may remain in a blocked or non-executing state. In some embodiments, a blocked process may be placed in an idle queue and may not be executed until a process scheduler determines that a message has been received that fulfills a function waiting for input. When the message fulfills the function, the process may be moved to a runnable queue.Type: GrantFiled: July 17, 2012Date of Patent: July 29, 2014Assignee: Concurix CorporationInventor: Charles D. Garrett
-
Patent number: 8793670Abstract: A system and method for early platform dependency preparation of intermediate code representation during bytecode compilation in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). Current techniques for separating the platform dependent intermediate representation from the platform independent intermediate representation using a watertight abstraction layer gives non-optimal side effects (such as compiler source code duplication or inefficiency in the generated code). Embodiments of the present invention enable the compiler to construct platform dependent idioms using medium level intermediate code, and maintain the platform dependent construct all the way to the final native code.Type: GrantFiled: January 7, 2013Date of Patent: July 29, 2014Assignee: Oracle International CorporationInventor: Marcus Lagergren
-
Patent number: 8782622Abstract: A system and method are disclosed for improving the performance of compiled Java code. A native code management module determines the available processor resources associated with a target information processing system, their respective instruction set architecture (ISA), and possible native code compilation optimization processes. The native code management module then generates compiler parameter permutations, which are iteratively provided to a just-in-time (JIT) compiler. Each compiler parameter permutation is used by JIT compiler to generate a native code compilation iteration. Each of the resulting native code compilation iterations are executed by the JVM and their respective performance is measured to determine the best performing native code compilation iteration.Type: GrantFiled: November 7, 2008Date of Patent: July 15, 2014Assignee: Advanced Micro Devices, Inc.Inventor: Azeem S. Jiva
-
Patent number: 8782623Abstract: 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: GrantFiled: October 14, 2011Date of Patent: July 15, 2014Assignee: International Business Machines CorporationInventors: Derek B. Inglis, Kiyokuni Kawachiya, Tamiya Onodera, Michiaki Tatsubori
-
Patent number: 8776033Abstract: 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: GrantFiled: December 23, 2010Date of Patent: July 8, 2014Assignee: International Business Machines CorporationInventors: Andrew R. Low, Marcel Mitran, Kishor V. Patil, Gavin Rolleston, Ivan Sham, Karl M. Taylor
-
Patent number: 8776036Abstract: A mechanism for determining support criteria for shared libraries based on their priority levels is described. A method of embodiments of the invention includes extracting interface provisioning detail relating to interfaces associated with shared libraries provided by an operating system running on a computer system. The interfaces include application binary interfaces (ABIs). The method further includes detecting interface usage detail associated with the interfaces. The interface usage detail is based on a frequency at which one or more interfaces are used by one or more third-party software programs running on the operating system. The method further includes comparing the interface provisioning detail with the interface usage detail to determine an importance level of each shared library, and analyzing comparison results obtained from the comparison. The analyzing includes assigning a priority level to each shared library based on its importance level.Type: GrantFiled: November 23, 2010Date of Patent: July 8, 2014Assignee: Red Hat, Inc.Inventor: Kushal Das
-
Patent number: 8776031Abstract: Embodiments of the present invention provide computer program products, methods, and systems for extracting and revising data for a resource embedded in a dynamic-link library (DLL) assembly. In various embodiments, the DLL assembly is loaded and data for a resource is extracted from the assembly. In particular embodiments, a manifest is created that includes a path for the extracted data extracted. This path includes information on placing the data for the resource into the assembly to construct a necessary DLL structure compatible with the program application. After the extracted data has been edited to create replacement data, in various embodiments, the replacement data is imported into the assembly based on the path for the extracted data and the assembly is compiled to create a revised DLL that may be read by the program application in place of or in addition to the original DLL assembly to utilize the replacement data.Type: GrantFiled: August 9, 2012Date of Patent: July 8, 2014Assignee: Noble Systems CorporationInventors: Michael Christopher Frances Goodwin, Andrew Michael Krock
-
Patent number: 8769507Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service on a specified computing device. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming the definition by using a processing unit to apply the assumptions to the definition of the process to change the way in which the process operates. The definition of the process may be transformed by using factors relating to the specific context in or for which the definition is executed. Also, the definition may be transformed by identifying, in a flow diagram for the process, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.Type: GrantFiled: May 14, 2009Date of Patent: July 1, 2014Assignee: International Business Machines CorporationInventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
-
Patent number: 8769511Abstract: A virtual machine executive (VME) system operating on a target platform that includes a virtual machine monitor (VMM) and a dynamic compiler, in particular, a trace compiler (TC). System embodiments include a virtual machine monitor configured to record a trace corresponding to a selected cycle, and configured to transform the trace into a representation of a trace tree; and a trace compiler cooperating with the virtual machine monitor to compile the representation of the trace tree into a compiled code segment of native machine code executable on the target platform, in which the trace is a linear instruction sequence traversing at least a portion of a method, a loop, or a branching node.Type: GrantFiled: February 16, 2007Date of Patent: July 1, 2014Assignee: The Regents of the University of CaliforniaInventors: Andreas Imre Gal, Michael Franz
-
Patent number: 8762973Abstract: The CPU includes a byte code interpretation unit that sequentially reads intermediate code instructions along an execution route, determining whether or not there is a compilation result of the read intermediate code instruction in the compilation result storage unit, interpreting the intermediate code instruction when there is no compilation result, and designating the compilation result if there is a compilation result; and a program execution unit that, if received the interpretation result of the intermediate code instruction from the byte code interpretation unit, executes the intermediate code instruction and, if received the designation of the compilation result, executes the program by executing designated native code. The CPU includes a compilation execution unit that compiles the intermediate code instruction interpreted by the byte code interpretation unit to generate the native code and stores them in the compilation result storage unit.Type: GrantFiled: August 22, 2012Date of Patent: June 24, 2014Assignee: Fujitsu LimitedInventor: Kiyoshi Miyazaki
-
Patent number: 8762972Abstract: Methods and apparatuses are provided for facilitating execution of kernels requiring runtime compilation. A method may include implementing a driver for a framework for handling kernels requiring runtime compilation. The method may further include receiving, by the driver, code for a kernel requiring at least partial runtime compilation for execution using the framework. The method may additionally include obtaining, by the driver, a compiled executable version of the kernel. The obtained compiled executable version of the kernel may not have been locally compiled. The method may also include causing, by the driver, the compiled executable version of the kernel to be provided for execution. Corresponding apparatuses are also provided.Type: GrantFiled: February 8, 2011Date of Patent: June 24, 2014Assignee: Nokia CorporationInventors: Jari Nikara, Eero Aho
-
Patent number: 8762965Abstract: An information processing system includes a preparation machine with an installed image; an execution machine on which the installed image is virtually installed; and a virtualizer for virtualizing the installed image on the execution machine to produce a virtually installed image by using a hierarchy of selective virtualizers, wherein the virtualizing is selective such that not all operations of the executing software of the installed image at any particular level are virtualized.Type: GrantFiled: August 31, 2012Date of Patent: June 24, 2014Assignee: International Business Machines CorporationInventors: Bowen L. Alpern, Joshua S. Auerbach, Vasanth Bala, Thomas V. Frauenhofer, Jobi George, Todd W. Mummert, Michael A. Pigott
-
Patent number: 8756589Abstract: A JIT (Just-In-Time) compiler performs dual-mode code generation by determining whether an application has opted-in to SIMD (Single Instruction Multiple Data) code generation both at JIT-time and at runtime. The application may select the code generation mode by identifying whether it has opted-in to SIMD code generation. As a result, the underlying implementation guarantees application compatibility by allowing the application to select the code generation mode. Additionally, applications have the ability to select into different code generation modes during concurrent execution.Type: GrantFiled: June 14, 2011Date of Patent: June 17, 2014Assignee: Microsoft CorporationInventors: Sachin Manchanda, Anand Rengasamy, Pratap Lakshman, Srivatsan Kidambi, Ramesha Chandrashekhar
-
Patent number: 8756581Abstract: 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.Type: GrantFiled: February 3, 2011Date of Patent: June 17, 2014Assignee: International Business Machines CorporationInventors: Jose G. Castanos, Hiroshige Hayashizaki, Hiroshi Inoue, Mauricio J. Serrano, Peng Wu
-
Patent number: 8745603Abstract: 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: May 10, 2013Date of Patent: June 3, 2014Assignee: Google Inc.Inventors: Morgan S. McGuire, Christopher G. Demetriou, Brian K. Grant, Matthew N. Papakipos
-
Publication number: 20140149971Abstract: 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: acquire respective values of one or more pieces of current execution status information; read, from the shared pool, a 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 determine whether respective values of corresponding pieces of current execution status information satisfy the conditions. The program product causes the computer to further generate an executable instruction stream by compiling the partial program to be compiled on the condition that a result of determination made is negative.Type: ApplicationFiled: December 4, 2013Publication date: May 29, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Kiyokuni Kawachiya, Kazunori Ogata
-
Patent number: 8739139Abstract: Provided is a computer-readable, non-transitory medium storing an algorithm selection program for selecting one of algorithm among of a plurality of algorithms included in an extension program for executing a predetermined function when a call-out source program calls out the extension program, the algorithm selection program causing an information processing device including a storage device to execute:acquiring, from the storage device, selection information in which a command for calling out the extension program in the call-out source program and the one of algorithm are correlated; and selecting an algorithm for executing the predetermined function based on the acquired selection information.Type: GrantFiled: December 27, 2011Date of Patent: May 27, 2014Assignee: Fujitsu LimitedInventor: Ikuo Miyoshi
-
Patent number: 8732723Abstract: An execution apparatus that executes a computer program executes the computer program and loads a class that is requested while the computer program is being executed. The loaded class is the class in response to the computer program that is being executed.Type: GrantFiled: January 26, 2007Date of Patent: May 20, 2014Assignee: Canon Kabushiki KaishaInventor: Hirokazu Oi
-
Patent number: 8726249Abstract: A bootup device and method for an application program on a mobile equipment to improve the bootup speed of the application program on the mobile equipment. The bootup device has an application management module, that boots up a virtual machine module based on the application program to be run. A virtual machine module, loads codes of the application program and Just in Time (JIT) compilation results of a bootup process of the application program into a memory, search, in the JIT compilation results, for local JIT compiled codes corresponding to the bootup process code segment to be executed, and executes the found local JIT compiled codes when executing each bootup process code segment of the application program. A storage management module, store and reads the codes of the application program and the JIT compilation results obtained from the JIT compilation of the bootup process of the application program.Type: GrantFiled: February 21, 2011Date of Patent: May 13, 2014Assignee: ZTE CorportaionInventors: Youpeng Gu, Lifeng Xu, Wei Hu, Sheng Zhong, Wei Wang, Zemin Wang
-
Patent number: 8719805Abstract: The present invention provides a method and system for producing intermediate representation of source code listings with possibly mixed syntaxes to assist software development applications in presenting and analyzing the source code listings through reading the intermediate representation. A source code processor calls Application Programming Interfaces (APIs) to preserve source code information, which includes intermediate representation data sets and is preferably stored in a file-based repository. The source code processor is of a compiler, a preprocessor, a parser, or a comment document processor. The data sets capture lexical, syntax and semantic information of source code construct elements, and comprise of location, processor identification, construct category, and attribute data.Type: GrantFiled: May 9, 2012Date of Patent: May 6, 2014Inventor: Kan Zhao
-
Patent number: 8707280Abstract: A computing device-implemented method includes receiving a program, analyzing and transforming the program, determining an inner context and an outer context of the program based on the analysis of the program, and allocating one or more portions of the inner context of the program to two or more labs for parallel execution. The method also includes receiving one or more results associated with the parallel execution of the one or more portions from the two or more labs, and providing the one or more results to the outer context of the program.Type: GrantFiled: June 29, 2012Date of Patent: April 22, 2014Assignee: The MathWorks, Inc.Inventors: Halldor N Stefansson, Brett Baker, Edric Ellis, Joseph F Hicklin, John N Little, Jocelyn Luke Martin, Piotr R Luszczek, Nausheen B Moulana, Loren Dean, Roy E. Lurie
-
Patent number: 8701097Abstract: A compiler and method of optimizing code by partial inlining of a subset of blocks of called blocks of code into calling blocks of code. A restart of the called blocks of code is provided for the case where non-inlined blocks of code are reached at run time. Blocks selected for partial inlining may include global side effects depending on the computer program environment. Global side effects in the selected blocks of code leading to a restart are sanitized in order to defer changes to the global state of the computer program.Type: GrantFiled: February 8, 2011Date of Patent: April 15, 2014Assignee: International Business Machines CorporationInventors: Patrick R. Doyle, James I. A. Gartley, Derek B. Inglis, Vijay Sundaresan
-
Patent number: 8694682Abstract: A virtual execution system that is configured to be used in a resource-constrained device. The resource-constrained device includes an operating system and an application program that includes instructions. The virtual execution system includes an execution engine that is configured to execute the application program, and to facilitate the compatibility of the application program with the operating system. Non-functional aspects characterize the instructions and the operating system. The execution engine has access to the non-functional aspects, and implements improvements during the execution of the application program based on the non-functional aspects.Type: GrantFiled: March 22, 2007Date of Patent: April 8, 2014Assignee: Microsoft CorporationInventors: Frank Siegemund, Robert Sugar, Wolfgang Manousek