Just-in-time Compiling Or Dynamic Compiling (e.g., Compiling Java Bytecode On A Virtual Machine) Patents (Class 717/148)
-
Patent number: 8620991Abstract: 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: GrantFiled: August 1, 2012Date of Patent: December 31, 2013Assignee: Microsoft CorporationInventors: Kenneth David Wolf, Justin David Brown, Karthik Raman, Nathan Christopher Talbert, Edmund Samuel Victor Pinto
-
Publication number: 20130346952Abstract: 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: ApplicationFiled: June 25, 2013Publication date: December 26, 2013Inventors: Haitao HUANG, Ningsheng JIAN
-
Patent number: 8612948Abstract: 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: GrantFiled: March 31, 2011Date of Patent: December 17, 2013Assignee: International Business Machines CorporationInventors: Kiyokuni Kawachiya, Kazunori Ogata
-
Patent number: 8612970Abstract: 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: December 17, 2013Assignee: Red Hat, Inc.Inventor: Ulrich Drepper
-
Patent number: 8601449Abstract: 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: GrantFiled: April 15, 2011Date of Patent: December 3, 2013Assignee: ITR Group, Inc.Inventor: Nathan J. Clevenger
-
Publication number: 20130311980Abstract: 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: ApplicationFiled: June 27, 2011Publication date: November 21, 2013Applicant: Google Inc.Inventors: Gilbert Cabillic, Jean-Philippe Lesot
-
Patent number: 8589899Abstract: 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: GrantFiled: August 31, 2011Date of Patent: November 19, 2013Assignee: International Business Machines CorporationInventor: Kazuaki Ishizaki
-
Patent number: 8589889Abstract: 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: GrantFiled: November 13, 2007Date of Patent: November 19, 2013Assignee: 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: 8584106Abstract: 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: February 9, 2012Date of Patent: November 12, 2013Assignee: Google Inc.Inventors: Matthew N. Papakipos, Brian K. Grant, Christopher G. Demetriou, Morgan S. McGuire
-
Patent number: 8584104Abstract: 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: GrantFiled: June 25, 2010Date of Patent: November 12, 2013Assignee: Oracle International CorporationInventors: Jonathan J. Gibbons, Alexander R. Buckley, Mark B. Reinhold
-
Patent number: 8584109Abstract: 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: GrantFiled: October 27, 2006Date of Patent: November 12, 2013Assignee: Microsoft CorporationInventors: Bertrand Anckaert, Mariusz H. Jakubowski, Ramarathnam Venkatesan
-
Patent number: 8578352Abstract: 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: GrantFiled: March 31, 2011Date of Patent: November 5, 2013Assignee: Google, Inc.Inventors: Srdjan Mitrovic, Lars Bak
-
Patent number: 8578389Abstract: 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: GrantFiled: May 4, 2004Date of Patent: November 5, 2013Assignee: Oracle America, Inc.Inventor: Michael L. Boucher
-
Patent number: 8578056Abstract: 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: GrantFiled: March 31, 2008Date of Patent: November 5, 2013Assignee: Symantec CorporationInventors: Sourabh Satish, William E. Sobel
-
Patent number: 8578351Abstract: 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: GrantFiled: December 6, 2011Date of Patent: November 5, 2013Assignee: International Business Machines CorporationInventors: Ravi Nair, John Kevin O'Brien, Kathryn Mary O'Brien, Peter Howland Oden, Daniel Arthur Prener
-
Publication number: 20130290941Abstract: 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: ApplicationFiled: April 25, 2012Publication date: October 31, 2013Applicant: Empire Technology Development, LLCInventor: Ezekiel Kruglick
-
Patent number: 8572579Abstract: 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: GrantFiled: August 19, 2010Date of Patent: October 29, 2013Assignee: Oracle International CorporationInventors: Kumar Ashish, Nataraju Neeluru
-
Patent number: 8566811Abstract: 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: GrantFiled: June 29, 2011Date of Patent: October 22, 2013Assignee: International Business Machines CorporationInventors: Jun J. Cai, Jing Lv, Yue H. Wu, Rui Z. Xu
-
Patent number: 8561027Abstract: 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: GrantFiled: March 17, 2010Date of Patent: October 15, 2013Assignee: International Business Machines CorporationInventor: Liran Zvibel
-
Patent number: 8561020Abstract: 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: GrantFiled: March 5, 2008Date of Patent: October 15, 2013Assignee: Siemens AktiengesellschaftInventors: Moritz Hammer, Kurt Majewski, Florian Mangold, Christoph Moll, Harald Rölle, Rainer Wasgint
-
Patent number: 8561040Abstract: 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: GrantFiled: March 10, 2009Date of Patent: October 15, 2013Assignee: Oracle America, Inc.Inventor: John Robert Rose
-
Patent number: 8555265Abstract: 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: GrantFiled: June 4, 2010Date of Patent: October 8, 2013Assignee: Google Inc.Inventors: Craig D. Chambers, Ashish Raniwala, Frances J. Perry, Stephen R. Adams, Robert R. Henry, Robert Bradshaw, Nathan Weizenbaum
-
Patent number: 8555264Abstract: 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: GrantFiled: January 14, 2011Date of Patent: October 8, 2013Assignee: Oracle International CorporationInventor: Fredrik Ohrstrom
-
Patent number: 8549497Abstract: 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: GrantFiled: May 5, 2008Date of Patent: October 1, 2013Assignee: University of New BrunswickInventors: Ali-Akbar Ghorbani, Mehran Nadjarbashi-Noghani, Seyed-Hossein Sadat-Kooch-Mohtasham
-
Patent number: 8549500Abstract: 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: GrantFiled: September 30, 2010Date of Patent: October 1, 2013Assignee: The Mathworks, Inc.Inventors: Halldor N. Stefansson, Edric Ellis
-
Patent number: 8549498Abstract: 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: GrantFiled: August 23, 2011Date of Patent: October 1, 2013Assignee: International Business Machines CorporationInventors: Hiroshige Hayashizaki, Hiroshi Inoue, Peng Wu
-
Patent number: 8549502Abstract: 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: GrantFiled: June 21, 2010Date of Patent: October 1, 2013Assignee: Microsoft CorporationInventor: Parry Jones Reginald Husbands
-
Patent number: 8543991Abstract: 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: GrantFiled: March 10, 2011Date of Patent: September 24, 2013Assignee: Microsoft CorporationInventors: Subramanian Ramaswamy, David Hiniker-Roosa, Feng Yuan, Sedar Gokbulut, Ashok C. Kamath, Jan Kotas, Vance P. Morrison
-
Publication number: 20130247017Abstract: 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: ApplicationFiled: April 29, 2013Publication date: September 19, 2013Applicant: innoWake GmbHInventor: Thorsten BERNECKER
-
Patent number: 8539461Abstract: 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: GrantFiled: December 27, 2011Date of Patent: September 17, 2013Assignee: Industrial Technology Research InstituteInventors: Han-Lin Li, Jui-Hao Chiang, Tzi-Cker Chiueh
-
Patent number: 8539464Abstract: 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: GrantFiled: October 30, 2008Date of Patent: September 17, 2013Assignee: International Business Machines CorporationInventors: Ian O Partridge, Adam J Pilkington, David S Renshaw, Simon Charles Edward Rowland
-
Patent number: 8533665Abstract: 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: GrantFiled: November 16, 2009Date of Patent: September 10, 2013Assignee: Cisco Technology, Inc.Inventors: Limin Yu, Inderpreet Bhullar, Mukesh Garg
-
Patent number: 8533697Abstract: 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: GrantFiled: September 30, 2010Date of Patent: September 10, 2013Assignee: The MathWorks, Inc.Inventors: Halldor N. Stefansson, Edric Ellis, Jocelyn Luke Martin
-
Patent number: 8522221Abstract: 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: GrantFiled: August 9, 2011Date of Patent: August 27, 2013Assignee: Synopsys, Inc.Inventors: Gunnar Braun, Andreas Hoffmann, Volker Greive
-
Patent number: 8522222Abstract: 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: GrantFiled: June 21, 2010Date of Patent: August 27, 2013Assignee: Microsoft CorporationInventor: Nikolai Tillmann
-
Patent number: 8516459Abstract: 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: GrantFiled: March 25, 2008Date of Patent: August 20, 2013Assignee: Intel CorporationInventors: Chen Hui, Dai Chunyang, Zhang Qi, Yun Wang
-
Patent number: 8516460Abstract: 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: GrantFiled: August 2, 2011Date of Patent: August 20, 2013Assignee: International Business Machines CorporationInventors: Cary L. Bates, Nicholas P. Johnson, Justin K. King
-
Patent number: 8516229Abstract: 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: GrantFiled: February 5, 2010Date of Patent: August 20, 2013Assignee: International Business Machines CorporationInventors: Allon Adir, Brad Lee Herold, John Martin Ludden, Pedro Martin-de-Nicolas, Charles Leverett Meissner, Gil Eliezer Shurek
-
Patent number: 8516454Abstract: 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: GrantFiled: June 30, 2009Date of Patent: August 20, 2013Assignee: Rocketick Technologies Ltd.Inventors: Shay Mizrachi, Uri Tal, Tomer Ben-David
-
Patent number: 8510728Abstract: 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: GrantFiled: June 30, 2010Date of Patent: August 13, 2013Assignee: International Business Machines CorporationInventors: Erik J. Burckart, Andrew Ivory, Todd E. Kaplinger, Stephen J. Kenna, Aaron K. Shook
-
Patent number: 8510725Abstract: 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: GrantFiled: January 26, 2010Date of Patent: August 13, 2013Assignee: Advanced Micro Devices, Inc.Inventor: Gary Frost
-
Patent number: 8505001Abstract: 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: GrantFiled: August 25, 2010Date of Patent: August 6, 2013Assignee: Broadcom CorporationInventor: Eben Upton
-
Publication number: 20130198728Abstract: 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: ApplicationFiled: January 26, 2012Publication date: August 1, 2013Applicant: QUALCOMM INCORPORATEDInventor: Christopher A. Vick
-
Patent number: 8499292Abstract: 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: GrantFiled: March 8, 2010Date of Patent: July 30, 2013Assignee: International Business Machines CorporationInventors: Henrique Andrade, Jim Challenger, Bugra Gedik, Robert Grimm, Martin J. Hirzel, Vibhore Kumar, Robert Soule, Kun-Lung Wu
-
Patent number: 8495601Abstract: 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: GrantFiled: June 9, 2010Date of Patent: July 23, 2013Assignee: Lear CorporationInventors: Stanislav Lincer, David Gamez Alari, Jordi Moreno Aymami, Antoni Ferré Fàbregas
-
Patent number: 8490073Abstract: 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: GrantFiled: March 30, 2007Date of Patent: July 16, 2013Assignee: International Business Machines CorporationInventor: Marcel Mitran
-
Publication number: 20130174135Abstract: 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: ApplicationFiled: August 28, 2009Publication date: July 4, 2013Inventors: Krishna G. Kiran, Ravi Kishore Reddy
-
Patent number: 8479177Abstract: 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: GrantFiled: May 20, 2009Date of Patent: July 2, 2013Assignee: Microsoft CorporationInventors: Raja Kirshnaswamy, Yi Zhang, Scott D. Mosier, Ladislav Prosek, Xiaoying Guo
-
Patent number: 8479178Abstract: 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: GrantFiled: June 27, 2008Date of Patent: July 2, 2013Assignee: Microsoft CorporationInventors: 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: 8473971Abstract: 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: GrantFiled: September 6, 2005Date of Patent: June 25, 2013Assignee: Microsoft CorporationInventors: Henricus Johannes Maria Meijer, Brian C. Beckman, David N. Schach, Amanda Silver, Paul A. Vick, Peter F. Drayton, Avner Y. Aharoni, Ralf Lammel