Just-in-time Compiling Or Dynamic Compiling (e.g., Compiling Java Bytecode On A Virtual Machine) Patents (Class 717/148)
  • Patent number: 8620991
    Abstract: Technologies for enabling a continuation based runtime to accept or reject external stimulus and, in addition, to determine if an external stimulus may be valid for processing at a later point in execution.
    Type: Grant
    Filed: August 1, 2012
    Date of Patent: December 31, 2013
    Assignee: Microsoft Corporation
    Inventors: Kenneth David Wolf, Justin David Brown, Karthik Raman, Nathan Christopher Talbert, Edmund Samuel Victor Pinto
  • Publication number: 20130346952
    Abstract: Aspects of the disclosure provide a method for profiling. The method includes collecting symbol information to map traces of codes in a program to memory addresses storing corresponding native codes that are dynamically compiled from the traces of codes during an execution of the program, and making the symbol information available after the dynamic compilation to analyze profiling data sampled during the execution of the program.
    Type: Application
    Filed: June 25, 2013
    Publication date: December 26, 2013
    Inventors: Haitao HUANG, Ningsheng JIAN
  • Patent number: 8612948
    Abstract: A dynamic compiling method, and device for sequentially compiling a partial computer program in a computer. The computer runs methods 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 computer runs methods 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: Grant
    Filed: March 31, 2011
    Date of Patent: December 17, 2013
    Assignee: International Business Machines Corporation
    Inventors: Kiyokuni Kawachiya, Kazunori Ogata
  • Patent number: 8612970
    Abstract: 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: Grant
    Filed: November 30, 2005
    Date of Patent: December 17, 2013
    Assignee: Red Hat, Inc.
    Inventor: Ulrich Drepper
  • Patent number: 8601449
    Abstract: One set of instructions is generated in part by compiling application-specific source code. When natively executed on a platform provided by a device, the set of instructions provides an application. Another set of instructions is generated in part by compiling the same business logic source code. When natively executed on another platform provided by another device, the other set of instructions provides the same application. The business logic source code is substantially free of code specific to any platform. Moreover, the business logic source code defines substantially all application-specific functionality of the application.
    Type: Grant
    Filed: April 15, 2011
    Date of Patent: December 3, 2013
    Assignee: ITR Group, Inc.
    Inventor: Nathan J. Clevenger
  • Publication number: 20130311980
    Abstract: A method and compiling device are provided for compiling a software application to be executed on a virtual machine of a physical platform. The software application originally is in the form of a set of codes to be compiled. The method includes a phase of selectively compiling the set of codes to be compiled, outputting a compiled application including a first application part which is executed by the virtual machine using commands from the virtual machine, and a second application part including binary commands which can be executed directly on the physical platform.
    Type: Application
    Filed: June 27, 2011
    Publication date: November 21, 2013
    Applicant: Google Inc.
    Inventors: Gilbert Cabillic, Jean-Philippe Lesot
  • Patent number: 8589899
    Abstract: A system, method and article of manufacture of increasing access speed of frequently accessed variables (symbols) in a dynamic language program. The system includes a range identifying unit to identify a range for communizing symbol accesses in the program; an instruction generating unit to generate instructions to access a symbol table using a key, to get an address of a symbol entry, and to store the address; an instruction extracting unit to fetch instructions from the identified range; and an instruction judging unit to determine whether or not each of the fetched instructions is an instruction to access the symbol. If the fetched instruction is an instruction to access the symbol, and the symbol is present when generating an instruction to access the symbol by using an address of the stored symbol entry, an instruction is generated allowing access to the symbol without checking whether the symbol is present.
    Type: Grant
    Filed: August 31, 2011
    Date of Patent: November 19, 2013
    Assignee: International Business Machines Corporation
    Inventor: Kazuaki Ishizaki
  • Patent number: 8589889
    Abstract: A method and apparatus for detecting errors in an application software of an embedded system are provided. The method of detecting errors in an application software includes determining a development language of the application software and an operating system on which the application software is executed; replacing an error detection syntax inserted in order to examine an error in a predetermined function of the application software, with an error detection syntax according to the result of the determination; and performing exception handling for an error occurring in the function according to the result of the replacement, and logging error information according to the exception handling. According to the method and apparatus, an error can be automatically detected and logged irrespective of a development language and an operating system.
    Type: Grant
    Filed: November 13, 2007
    Date of Patent: November 19, 2013
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Han-cheol Kim, Keun-soo Yim, Seung-won Lee, Jeong-joon Yoo, Jae-don Lee, Young-sam Shin
  • Patent number: 8584106
    Abstract: 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: Grant
    Filed: February 9, 2012
    Date of Patent: November 12, 2013
    Assignee: Google Inc.
    Inventors: Matthew N. Papakipos, Brian K. Grant, Christopher G. Demetriou, Morgan S. McGuire
  • Patent number: 8584104
    Abstract: The disclosed embodiments provide a system that facilitates the compilation of a software program. During operation, the system uses a directory hierarchy for the software program to infer a compilation unit to be used in the software program as a member of a module. Next, the system obtains a module declaration for the module using the directory hierarchy. Finally, the system enables compilation of the software program by dynamically identifying and locating one or more dependencies of the module using the module declaration and the directory hierarchy.
    Type: Grant
    Filed: June 25, 2010
    Date of Patent: November 12, 2013
    Assignee: Oracle International Corporation
    Inventors: Jonathan J. Gibbons, Alexander R. Buckley, Mark B. Reinhold
  • Patent number: 8584109
    Abstract: A computer-implementable method includes providing an instruction set architecture that comprises features to generate diverse copies of a program, using the instruction set architecture to generate diverse copies of a program and providing a virtual machine for execution of one of the diverse copies of the program. Various exemplary methods, devices, systems, etc., use virtualization for diversifying code and/or virtual machines to thereby enhance software security.
    Type: Grant
    Filed: October 27, 2006
    Date of Patent: November 12, 2013
    Assignee: Microsoft Corporation
    Inventors: Bertrand Anckaert, Mariusz H. Jakubowski, Ramarathnam Venkatesan
  • Patent number: 8578352
    Abstract: A capability for limited customization that utilizes existing virtual dispatch table technology and allows selective customization is provided. Such a capability combines the usage of virtual dispatch tables with both customized and non-customized code to reduce, or even eliminate over-customization. Further, such a capability may employ a runtime system that decides what methods to customize based on several factors including, but not limited to the size of a class hierarchy, the amount of available space for compiled code, and the amount of available time for compilation.
    Type: Grant
    Filed: March 31, 2011
    Date of Patent: November 5, 2013
    Assignee: Google, Inc.
    Inventors: Srdjan Mitrovic, Lars Bak
  • Patent number: 8578389
    Abstract: Methods and systems facilitating a programmer to program parts of a program in data flow programming to produce directed acyclic graphs (“DAGs”), and then merge the graphs at runtime for efficiency and scalability. Large merged DAG can typically be processed with greater efficiency than the collection of smaller DAGs. As a result, smaller DAGs may be created while the execution of the program realizes the increased efficiency of executing a larger DAG based on the merging of the smaller DAGs. In accordance with methods and systems consistent with the present invention, a programmer creates individual data flow directed acyclic graphs in a program.
    Type: Grant
    Filed: May 4, 2004
    Date of Patent: November 5, 2013
    Assignee: Oracle America, Inc.
    Inventor: Michael L. Boucher
  • Patent number: 8578056
    Abstract: A request to send a JIT component to a streaming client is received. A network capability rating of the network over which the JIT component is to be sent to the streaming client is determined, and a client capability rating of the streaming client is determined. A transmission language format in which to send the JIT component to the streaming client is determined based on at least the network capability rating and the client capability rating. The JIT component is obtained in the transmission language format and sent to the streaming client over the network. In some embodiments, a transmission language format is determined for each sub-component of the component based on the network capability rating, the streaming client rating, and a sub-component characteristic rating.
    Type: Grant
    Filed: March 31, 2008
    Date of Patent: November 5, 2013
    Assignee: Symantec Corporation
    Inventors: Sourabh Satish, William E. Sobel
  • Patent number: 8578351
    Abstract: In a host system, a method for using instruction scheduling to efficiently emulate the operation of a target computing system includes preparing, on the host system, an instruction sequence to interpret an instruction written for execution on the target computing system. An instruction scheduling on the instruction sequence is performed, to achieve an efficient instruction level parallelism, for the host system. A separate and independent instruction sequence is inserted, which, when executed simultaneously with the instruction sequence, performs to copy to a separate location a minimum instruction sequence necessary to execute an intent of an interpreted target instruction, the interpreted target instruction being a translation; and modifies the interpreter code such that a next interpretation of the target instruction results in execution of the translated version, thereby removing execution of interpreter overhead.
    Type: Grant
    Filed: December 6, 2011
    Date of Patent: November 5, 2013
    Assignee: International Business Machines Corporation
    Inventors: Ravi Nair, John Kevin O'Brien, Kathryn Mary O'Brien, Peter Howland Oden, Daniel Arthur Prener
  • Publication number: 20130290941
    Abstract: Technologies are generally provided for optimizing virtual machine performances at a datacenter and managing sudden resource demand changes by co-residing applications on same virtual machines through a flexible resource demand certification approach. A flexible resource demand certificate may be generated for applications including predetermined operating compilation architectures that run well but have different resource demands. A Just In Time (JIT) compiler may be directed to selected target settings for a combination of operational parameter settings such that the co-residing applications can share resources without overloading system resources. Applications to be migrated to a new datacenter or a new virtual machine at a datacenter may be assigned and adjusted according to their and potential co-residing applications' certificates providing optimized resource usage.
    Type: Application
    Filed: April 25, 2012
    Publication date: October 31, 2013
    Applicant: Empire Technology Development, LLC
    Inventor: Ezekiel Kruglick
  • Patent number: 8572579
    Abstract: Embodiments of the invention provide systems and methods for optimizing handling of breakpoints in a Java debugger agent. Embodiments provide a novel command that allows execution of the application in the debugger to stop or break at the beginning of a next called function or method (e.g., a “break on next called function” or “BNCF” command). When the BNCF command is given to the debugger, a flag may be set in the interpreter of the virtual machine to which the debugger is attached. On encountering a new method or function call, the flag is examined by the interpreter to determine whether it should stop or break in that call. If the flag is set, the interpreter will stop; otherwise the interpreter proceeds.
    Type: Grant
    Filed: August 19, 2010
    Date of Patent: October 29, 2013
    Assignee: Oracle International Corporation
    Inventors: Kumar Ashish, Nataraju Neeluru
  • Patent number: 8566811
    Abstract: A method, system and computer program product for performance configuration of an application by setting at least one performance preference for a performance-sensitive class in the application, specifying performance preference propagation policy of the class in the application based on the at least one performance preference, and calling the class to perform performance configuration for application according to the performance preference propagation policy.
    Type: Grant
    Filed: June 29, 2011
    Date of Patent: October 22, 2013
    Assignee: International Business Machines Corporation
    Inventors: Jun J. Cai, Jing Lv, Yue H. Wu, Rui Z. Xu
  • Patent number: 8561027
    Abstract: Methods and computer program products for enabling reflection capability in the C programming language are provided. One method includes generating a database for a program written in the C programming language when compiling the program, wherein the database is based on structures included within the program. The method further includes storing the database in memory and utilizing the database during run-time to enable the program to observe and modify its own structure and behavior. One computer program product includes executable portions for performing the above method. Another method includes creating a database for a program written in the C programming language, wherein the type database is based on structures included within the program and is created prior to the program being compiled. This method further comprises storing the database in memory and utilizing the database during run-time to enable the program to observe and modify its own structure and behavior.
    Type: Grant
    Filed: March 17, 2010
    Date of Patent: October 15, 2013
    Assignee: International Business Machines Corporation
    Inventor: Liran Zvibel
  • Patent number: 8561020
    Abstract: An embodiment of the present invention discloses a method for the computer-aided determination of the dependencies of a plurality of modules of a technical system, especially of a software system. Every module of the system has a known, first consumption of resources. The first consumption of resources of at least one of the modules is modified according to a predetermined criterion, thereby obtaining a modified system. The modified system is executed. A second consumption of resources is measured for every module of the modified system, the consumption resulting from the modification of the first consumption of resources of the at least one module. An analysis of the second consumption of resources of a respective module and the predetermined criterion is used to determine whether there is a dependency between the respective module and the at least one module that is characterized by the modified consumption of resources.
    Type: Grant
    Filed: March 5, 2008
    Date of Patent: October 15, 2013
    Assignee: Siemens Aktiengesellschaft
    Inventors: Moritz Hammer, Kurt Majewski, Florian Mangold, Christoph Moll, Harald Rölle, Rainer Wasgint
  • Patent number: 8561040
    Abstract: In embodiments, prior to compilation into machine code, a preprocessor generates directives by processing a source code and/or bytecode representation of a program and/or selecting default directives. The preprocessor embeds the directives in a bytecode representation of the program or a separate stream associated with the bytecode representation of the program. A just-in-time compiler may compile the bytecode representation into machine code directed by the embedded directives in one pass and/or a bytecode interpreter may interpret the bytecode representation of the program. In some embodiments, a computing device generates bytecodes during execution of a program, selects default directives, and embeds the default directives in the bytecodes or a separate stream associated with the bytecodes prior to compilation of the bytecodes into machine code.
    Type: Grant
    Filed: March 10, 2009
    Date of Patent: October 15, 2013
    Assignee: Oracle America, Inc.
    Inventor: John Robert Rose
  • Patent number: 8555265
    Abstract: A data parallel pipeline may specify multiple parallel data objects that contain multiple elements and multiple parallel operations that operate on the parallel data objects. Based on the data parallel pipeline, a dataflow graph of deferred parallel data objects and deferred parallel operations corresponding to the data parallel pipeline may be generated and one or more graph transformations may be applied to the dataflow graph to generate a revised dataflow graph that includes one or more of the deferred parallel data objects and deferred, combined parallel data operations. The deferred, combined parallel operations may be executed to produce materialized parallel data objects corresponding to the deferred parallel data objects.
    Type: Grant
    Filed: June 4, 2010
    Date of Patent: October 8, 2013
    Assignee: Google Inc.
    Inventors: Craig D. Chambers, Ashish Raniwala, Frances J. Perry, Stephen R. Adams, Robert R. Henry, Robert Bradshaw, Nathan Weizenbaum
  • Patent number: 8555264
    Abstract: A system and method for efficient compilation and invocation of function type calls in a virtual machine (VM), or other runtime environment, and particularly for use in a system that includes a Java Virtual Machine (JVM). The system comprises a virtual machine for executing a software application; a memory space for the application byte code comprising callsites generated using a function type carrier; a bytecode to machine code compiler which performs MethodHandle invocation optimizations; a memory space for the compiled machine code; and a memory space for storing software objects as part of the software application. The system enables carrying the function type from the original MethodHandle to a callsite in the generated bytecode, including maintaining generics information for a function type acquired from a target function, and generating a callsite based on the generics information for the function object invocation.
    Type: Grant
    Filed: January 14, 2011
    Date of Patent: October 8, 2013
    Assignee: Oracle International Corporation
    Inventor: Fredrik Ohrstrom
  • Patent number: 8549497
    Abstract: A process for dynamically generating browser-ready code from a high-level code description of a web page written in a first predefined language having one or more adaptive features and from one or more constraints associated with a request for such browser-ready code.
    Type: Grant
    Filed: May 5, 2008
    Date of Patent: October 1, 2013
    Assignee: University of New Brunswick
    Inventors: Ali-Akbar Ghorbani, Mehran Nadjarbashi-Noghani, Seyed-Hossein Sadat-Kooch-Mohtasham
  • Patent number: 8549500
    Abstract: A device receives, via a technical computing environment, a program that includes a parallel construct and a command to be executed by graphical processing units, and analyzes the program. The device also creates, based on the parallel construct and the analysis, one or more instances of the command to be executed in parallel by the graphical processing units, and transforms, via the technical computing environment, the one or more command instances into one or more command instances that are executable by the graphical processing units. The device further allocates the one or more transformed command instances to the graphical processing units for parallel execution, and receives, from the graphical processing units, one or more results associated with parallel execution of the one or more transformed command instances by the graphical processing units.
    Type: Grant
    Filed: September 30, 2010
    Date of Patent: October 1, 2013
    Assignee: The Mathworks, Inc.
    Inventors: Halldor N. Stefansson, Edric Ellis
  • Patent number: 8549498
    Abstract: Integrated trace selection and profiling in dynamic optimizers may include selecting a trace head based on profile of basic blocks that are executed. The basic blocks executed from the trace head may be recorded as a trace. The trace may be added to a trace nursery in non-compiled state. The trace may be interpreted and profiled until the trace matures. Under a profiling mode, path sensitive runtime information such as values, types, targets of call-sites, and exit frequencies can be collected. The trace may be moved out of the nursery to a compilation queue in response to determining that the trace has matured based on an execution count of the profiled trace.
    Type: Grant
    Filed: August 23, 2011
    Date of Patent: October 1, 2013
    Assignee: International Business Machines Corporation
    Inventors: Hiroshige Hayashizaki, Hiroshi Inoue, Peng Wu
  • Patent number: 8549502
    Abstract: Performance of a program written in dynamic languages is improved through the use of a compiler that provides type inference for methods having a user-defined element. The user-defined element may be an input in a user-defined type. Though, the user-defined element may reflect that the method is user-defined. Type inference may be performed based on a user-defined mapping, relating input types to output types for one or more methods. The mapping may be specified as a data table provided to the compiler or as one or more functions that register with the compiler such that, as the compiler processes portions of a source program and detects a method with a user-defined element, the compiler may access the mapping and infer the type of an output of the method. The inferred type may then be used to optimize code dependent on that output.
    Type: Grant
    Filed: June 21, 2010
    Date of Patent: October 1, 2013
    Assignee: Microsoft Corporation
    Inventor: Parry Jones Reginald Husbands
  • Patent number: 8543991
    Abstract: Idle processor cores can be used to compile methods that are likely to be executed by a program based on profile data that is captured during one or more previous executions. Methods that are determined by the profile data to be likely to be used can be compiled eagerly on one or more background threads. Transparency can be achieved by ensuring that module load order is not altered because of the background threads by recording the state of loaded modules after each profiled compilation, persisting that data, and waiting to eagerly compile a method until the method to be compiled and all its dependencies has been loaded by the executing program.
    Type: Grant
    Filed: March 10, 2011
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Subramanian Ramaswamy, David Hiniker-Roosa, Feng Yuan, Sedar Gokbulut, Ashok C. Kamath, Jan Kotas, Vance P. Morrison
  • Publication number: 20130247017
    Abstract: A computer implemented method and system to generate final code for execution in a runtime environment, the method including creation, via a compiler, of intermediate code from destination source code, wherein the destination source code has been compiled from original source code which includes at least one jump instruction, by omitting the at least one jump instruction, the destination source code existing in a destination programming language and the original source code in a source programming language, loading the intermediate code into an intermediate code manipulation unit, and creation, via the intermediate code manipulation unit, of the final code from the intermediate code, wherein the creation comprises an insertion of at least one jump statement into the final code, and wherein the inserted at least one jump statement is functionally equivalent to the at least one omitted jump instruction.
    Type: Application
    Filed: April 29, 2013
    Publication date: September 19, 2013
    Applicant: innoWake GmbH
    Inventor: Thorsten BERNECKER
  • Patent number: 8539461
    Abstract: A method for identifying memories of virtual machines is provided. The method is adapted to a computer system executing at least one virtual machine, and an operating system is executed on the virtual machine. The method includes the following steps. A kernel file of the operating system is obtained, and the kernel file includes version information of the operation system. A source code and a configuration file of the operating system are obtained according to the version information, and the versions of the source code and the configuration file are complied with the version of the operating system. An object file is generated by compiling a fixed interface function with the source code according to the configuration file. Memory pages of the virtual machine are identified according to the object file. Furthermore, a computer system using the foregoing method is also provided.
    Type: Grant
    Filed: December 27, 2011
    Date of Patent: September 17, 2013
    Assignee: Industrial Technology Research Institute
    Inventors: Han-Lin Li, Jui-Hao Chiang, Tzi-Cker Chiueh
  • Patent number: 8539464
    Abstract: A method of performing distributed just-in-time compilation includes sending a first request message from a client platform to a dedicated compilation server requesting just-in-time compilation of a bytecode sequence generated from a set of code for a source program executing on the client platform; compiling the bytecode sequence at the compilation server into a set of machine code instructions executable by the client platform; storing the set of machine code instructions in a repository managed by the dedicated compilation server; sending a notification message indicating that the set of machine code instructions are available from the dedicated compilation server to the client platform; sending a second request message from the client platform to the dedicated compilation server requesting the set of machine code instructions; and accessing the repository to send the set of machine code instructions from the dedicated compilation server to the client platform.
    Type: Grant
    Filed: October 30, 2008
    Date of Patent: September 17, 2013
    Assignee: International Business Machines Corporation
    Inventors: Ian O Partridge, Adam J Pilkington, David S Renshaw, Simon Charles Edward Rowland
  • Patent number: 8533665
    Abstract: A computer-implemented method is disclosed for generating Dojo-conforming JavaScript Object Notation (JSON) objects for base objects of an object-oriented programming environment that have been annotated to denote which attribute declarations of the base object correspond to identified Dojo attributes. In a Java class, for example, annotations may be made to indicate which class attributes correspond to the identifier attribute of a Dojo JSON object and based on those annotations a Dojo-conforming JSON object may be generated.
    Type: Grant
    Filed: November 16, 2009
    Date of Patent: September 10, 2013
    Assignee: Cisco Technology, Inc.
    Inventors: Limin Yu, Inderpreet Bhullar, Mukesh Garg
  • Patent number: 8533697
    Abstract: A device initiates a technical computing environment (TCE), and receives, via the TCE, a program command that permits the TCE to access a graphical processing unit that is remote to the device, where the program command permits the TCE to seamlessly transfer data to the remote GPU. The device transforms, via the TCE, the program command into a program command that is executable by the remote GPU, and provides the transformed program command to the remote GPU for execution. The device also receives, from the remote GPU, one or more results associated with execution of the transformed program command by the remote GPU, and utilizes the one or more results via the TCE.
    Type: Grant
    Filed: September 30, 2010
    Date of Patent: September 10, 2013
    Assignee: The MathWorks, Inc.
    Inventors: Halldor N. Stefansson, Edric Ellis, Jocelyn Luke Martin
  • Patent number: 8522221
    Abstract: A method and system for the automatic generation of user guides. Specifically, the method of the present invention includes accessing an abstract processor model of a processor, wherein said abstract processor model is represented using a hierarchical architecture description language (ADL). The abstract processor model includes a plurality of instructions arranged in a hierarchical structure. An internal representation of the abstract processor model is generated by flattening the abstract processor model. The flattening process generates a plurality of rules grouped by common convergent instructions. Each rule describes an instruction path through the hierarchical structure that converges at a corresponding convergent instruction. An instruction-set documentation is automatically generated from the plurality of rules, wherein the instruction-set documentation is arranged convergent instruction by convergent instruction.
    Type: Grant
    Filed: August 9, 2011
    Date of Patent: August 27, 2013
    Assignee: Synopsys, Inc.
    Inventors: Gunnar Braun, Andreas Hoffmann, Volker Greive
  • Patent number: 8522222
    Abstract: In one embodiment, a trace optimizing engine may create an optimized trace of an operation segment of a software program. A memory may store a trace of an operation segment and an inherited stack frame from the operation segment. An optimizing trace compiler may resolve a local pointer of the operation segment to a memory object and insert a guard in the trace that invalidates the trace if the local pointer does not resolve to the memory object. A just in time compiler may receive in the trace a stack pointer to the inherited stack frame, move the stack pointer to create a storage space, and store an intermediate value for a local variable in a temporary variable in the storage space.
    Type: Grant
    Filed: June 21, 2010
    Date of Patent: August 27, 2013
    Assignee: Microsoft Corporation
    Inventor: Nikolai Tillmann
  • Patent number: 8516459
    Abstract: An Extensible Stylesheet Language Transformation (XSLT) processing environment receives an XSLT style sheet and an Extensible Markup Language (XML) input document. The XSLT style sheet is compiled into XSL byte code fragments. A just-in-time (JIT) compiler in the XSLT processing environment compiles the XSL byte code fragments into native code. The native code is executed to transform the XML input document into one or more XML output documents.
    Type: Grant
    Filed: March 25, 2008
    Date of Patent: August 20, 2013
    Assignee: Intel Corporation
    Inventors: Chen Hui, Dai Chunyang, Zhang Qi, Yun Wang
  • Patent number: 8516460
    Abstract: Methods, apparatuses, and computer program products for real-time temperature sensitive machine level code compilation and execution are provided. Embodiments include compiling and executing, by a just-in-time (JIT) compiler, machine level code; during execution of the machine level code, determining, by the JIT compiler, an execution temperature for the machine level code, including reading temperature measurements from one or more processor temperature sensors; based on the determined execution temperature, identifying, by the JIT compiler, a portion of the machine level code that, when executed, caused temperature measurements of one or more processor temperature sensors to exceed a predetermined threshold temperature; recompiling, by the JIT compiler, the machine level code including modifying the identified portion to generate a new execution temperature that is lower than the previously determined execution temperature; and executing, by the JIT compiler, the recompiled machine level code.
    Type: Grant
    Filed: August 2, 2011
    Date of Patent: August 20, 2013
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Nicholas P. Johnson, Justin K. King
  • Patent number: 8516229
    Abstract: A test code generation technique that replaces instructions having a machine state dependent result with special redirection instructions provides generation of test code in which state dependent execution choices are made without a state model. Redirection instructions cause execution of a handler than examines the machine state and replaces the redirection instruction with a replacement instruction having a desired result resolved in accordance with the current machine state. The instructions that are replaced may be conditional branch instructions and the result a desired execution path. The examination of the machine state permits determination of a branch condition for the replacement instruction so that the next pass of the test code executes along the desired path. Alternatively, the handler can execute a jump to the branch instruction, causing immediate execution of the desired branch path.
    Type: Grant
    Filed: February 5, 2010
    Date of Patent: August 20, 2013
    Assignee: International Business Machines Corporation
    Inventors: Allon Adir, Brad Lee Herold, John Martin Ludden, Pedro Martin-de-Nicolas, Charles Leverett Meissner, Gil Eliezer Shurek
  • Patent number: 8516454
    Abstract: A computing method includes accepting a definition of a computing task (68), which includes multiple atomic Processing Elements (PEs—76) having execution dependencies (80). Each execution dependency specifies that a respective first PE is to be executed before a respective second PE. The computing task is compiled for concurrent execution on a multiprocessor device (32), which includes multiple processors (44) that are capable of executing a first number of the PEs simultaneously, by arranging the PEs, without violating the execution dependencies, in an invocation data structure (90) including a second number of execution sequences (98) that is greater than one but does not exceed the first number. The multiprocessor device is invoked to run software code that executes the execution sequences in parallel responsively to the invocation data structure, so as to produce a result of the computing task.
    Type: Grant
    Filed: June 30, 2009
    Date of Patent: August 20, 2013
    Assignee: Rocketick Technologies Ltd.
    Inventors: Shay Mizrachi, Uri Tal, Tomer Ben-David
  • Patent number: 8510728
    Abstract: Embodiments of the present invention provide a method, system and computer program product for dynamic selection of a runtime classloader for a generated class file. In an embodiment of the invention, a method for dynamic selection of a runtime classloader for a generated class file is provided. The method includes extracting meta-data from a program object directed for execution in an application server and determining from the meta-data a container identity for a container in which the program object had been compiled. The method also includes selecting a container according to the meta-data. Finally, the method includes classloading the program object in the selected container.
    Type: Grant
    Filed: June 30, 2010
    Date of Patent: August 13, 2013
    Assignee: International Business Machines Corporation
    Inventors: Erik J. Burckart, Andrew Ivory, Todd E. Kaplinger, Stephen J. Kenna, Aaron K. Shook
  • Patent number: 8510725
    Abstract: The deployment of native methods in a virtual machine environment may be significantly simplified by incorporating a corresponding native code segment into the application file, such as a JAVA class file, and using the embedded native code segment for library bind operations of the corresponding class file.
    Type: Grant
    Filed: January 26, 2010
    Date of Patent: August 13, 2013
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Gary Frost
  • Patent number: 8505001
    Abstract: A method and system are provided in which one or more processors may be operable to generate an intermediate representation of a shader source code, wherein the intermediate representation comprises one or more whole-program data flow graph representations of the shader source code. The one or more processors may be operable to generate machine code based on the generated intermediate representation of the shader source code. The one or more whole-program data flow graph representations of the shader source code may be generated utilizing a compiler front end. The machine code may be generated utilizing a compiler back end. The generated machine code may be executable by a graphics processor. The generated machine code may be executable by a processor comprising a single-instruction multiple-data (SIMD) architecture. The generated machine code may be executable to perform coordinate and/or vertex shading of image primitives.
    Type: Grant
    Filed: August 25, 2010
    Date of Patent: August 6, 2013
    Assignee: Broadcom Corporation
    Inventor: Eben Upton
  • Publication number: 20130198728
    Abstract: 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: Application
    Filed: January 26, 2012
    Publication date: August 1, 2013
    Applicant: QUALCOMM INCORPORATED
    Inventor: Christopher A. Vick
  • Patent number: 8499292
    Abstract: A virtual execution environment (VEE) for a streaming Intermediate Language (IL), wherein the streaming IL represents a streaming program, communicates streaming data in queues, stores data-at-rest in variables, and determines data by functions, where inputs are read from the queues and the variables, and outputs are written to the queues and the variables.
    Type: Grant
    Filed: March 8, 2010
    Date of Patent: July 30, 2013
    Assignee: International Business Machines Corporation
    Inventors: Henrique Andrade, Jim Challenger, Bugra Gedik, Robert Grimm, Martin J. Hirzel, Vibhore Kumar, Robert Soule, Kun-Lung Wu
  • Patent number: 8495601
    Abstract: A shared memory architecture is disclosed to support operations associated with executing shared functions from a shared memory space in such a manner that separate pieces of software can execute the shared functions.
    Type: Grant
    Filed: June 9, 2010
    Date of Patent: July 23, 2013
    Assignee: Lear Corporation
    Inventors: Stanislav Lincer, David Gamez Alari, Jordi Moreno Aymami, Antoni Ferré Fàbregas
  • Patent number: 8490073
    Abstract: Tracing within a processing environment is controlled. Trace directives are automatically included within code being compiled in order to control where one or more traces begin and end within the code. The trace directives provide a framework for mapping traces to well understood boundaries of the code.
    Type: Grant
    Filed: March 30, 2007
    Date of Patent: July 16, 2013
    Assignee: International Business Machines Corporation
    Inventor: Marcel Mitran
  • Publication number: 20130174135
    Abstract: A system identifies a first portion of a project as static code. The system compiles the static code to create compiled static code. The system identifies a second portion of the project as dynamic code that requires a plurality of compilations for a plurality of sub portions of the dynamic code to create compiled dynamic code. The system converts a subset of the dynamic code into dynamic byte code. The dynamic byte code reduces the plurality of dynamic code compilations necessary to create a SWF file. The system then merges the compiled static code and the dynamic byte code to create the SWF file.
    Type: Application
    Filed: August 28, 2009
    Publication date: July 4, 2013
    Inventors: Krishna G. Kiran, Ravi Kishore Reddy
  • Patent number: 8479177
    Abstract: A programming environment may have an abstract interface definition that may contain a redirection definition that may cause a call to be bound to a redirected method or function. The redirected method or function may be a conditional redirection, and some embodiments may perform various checks including signature checks, static and runtime access checks, and other verifications for the redirected method. The redirection may enable a programmer to modify a portion of an interface without having to re-implement all of the functions of the interface.
    Type: Grant
    Filed: May 20, 2009
    Date of Patent: July 2, 2013
    Assignee: Microsoft Corporation
    Inventors: Raja Kirshnaswamy, Yi Zhang, Scott D. Mosier, Ladislav Prosek, Xiaoying Guo
  • Patent number: 8479178
    Abstract: A batch compiler is employed to enable compilation of code provided at runtime. A managed application receives code during execution and invokes the compiler to transform the code to enable it to execute within the context of the receiving application. Among other things, employment of a batch compiler preserves investments made to such compilers while also opening up new scenarios in application scripting and/or hosting that are otherwise unavailable.
    Type: Grant
    Filed: June 27, 2008
    Date of Patent: July 2, 2013
    Assignee: Microsoft Corporation
    Inventors: Avner Y. Aharoni, Henricus Johannes Maria Meijer, Timothy Yat Tim Ng, Amanda K. Silver, Scott Daniel Wisniewski, Kevin Wagner Halverson, David N. Schach, Aleksey V. Tsingauz, Paul A. Vick
  • Patent number: 8473971
    Abstract: Systems and methods that enhance and balance a late binding and an early binding in a programming language, via supplying an option component to opt-in (or opt-out) late binding, and wherein a late binding is triggered based on a static type for the variable (e.g., object or a type/string.) Additionally, the variable is enabled to have different static types at different regions (e.g., a program fragment) of the programming language.
    Type: Grant
    Filed: September 6, 2005
    Date of Patent: June 25, 2013
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Brian C. Beckman, David N. Schach, Amanda Silver, Paul A. Vick, Peter F. Drayton, Avner Y. Aharoni, Ralf Lammel