Including Analysis Of Program Patents (Class 717/154)
  • Patent number: 9047077
    Abstract: An optimizing compiler includes a vectorization mechanism that optimizes a computer program by substituting code that includes one or more vector instructions (vectorized code) for one or more scalar instructions. The cost of the vectorized code is compared to the cost of the code with only scalar instructions. When the cost of the vectorized code is less than the cost of the code with only scalar instructions, the vectorization mechanism determines whether the vectorized code will likely result in processor stalls. If not, the vectorization mechanism substitutes the vectorized code for the code with only scalar instructions. When the vectorized code will likely result in processor stalls, the vectorization mechanism does not substitute the vectorized code, and the code with only scalar instructions remains in the computer program.
    Type: Grant
    Filed: March 9, 2013
    Date of Patent: June 2, 2015
    Assignee: International Business Machines Corporation
    Inventor: William J. Schmidt
  • Publication number: 20150149987
    Abstract: A method for processing a function with a plurality of execution spaces is disclosed. The method comprises creating an internal compiler representation for the function. Creating the internal compiler representation comprises copying substantially all lexical tokens corresponding to a body of the function. Further, the creating comprises inserting the lexical tokens into a plurality of conditional if-statements, wherein a conditional if-statement is generated for each corresponding execution space of said plurality of execution spaces, and wherein each conditional if-statement determines which execution space the function is executing in. During compilation, the method finally comprises performing overload resolution at a call site of an overloaded function by checking for compatibility with a first execution space specified by one of the plurality of conditional if-statements, wherein the overloaded function is called within the body of the function.
    Type: Application
    Filed: November 25, 2013
    Publication date: May 28, 2015
    Inventor: Jaydeep MARATHE
  • Patent number: 9043775
    Abstract: This invention relates to a method, computer readable medium, and apparatus for identifying one or more problematic loops in an application. This invention provides a Directed Acyclic Graph or DAG representation of structure of one or more loops in the application by performing a static and a dynamic analysis of the application source code and depicts the loop information as LoopID, loop weight, total loop iteration, average loop iteration, total loop iteration time, average loop iteration time and embedded vector size. This aids a programmer to concentrate on problematic loops in the application and analyze them further for potential parallelism.
    Type: Grant
    Filed: September 19, 2012
    Date of Patent: May 26, 2015
    Assignee: Infosys Limited
    Inventors: Murali Krishna Emani, Sudeep Mallick, Balkrishna Prasad
  • Patent number: 9043768
    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). In accordance with an embodiment, 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: September 16, 2013
    Date of Patent: May 26, 2015
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Fredrik Öhrström
  • Patent number: 9032372
    Abstract: Certain example embodiments of the present invention relate to a runtime environment for non-invasive monitoring of software applications. The runtime environment (10) is configured to: (a) during execution of at least one software application (20) within the runtime environment (10), identify a function call (25) to be executed by the at least one software application (20); and (b) generating monitoring data relating to the identified function call (25).
    Type: Grant
    Filed: August 22, 2012
    Date of Patent: May 12, 2015
    Assignee: Software AG
    Inventors: Michael Münster, Oguzhan Özkut
  • Patent number: 9032380
    Abstract: A device receives program code, generated via a technical computing environment (TCE) and including code that requires further processing to execute, and identifies one or more function calls or one or more object method calls in the program code. The device creates a control flow graph, for the program code, based on the one or more function calls or the one or more object method calls. The device transforms the control flow graph into a data flow graph. The data flow graph includes a representation for each of the one or more function calls or the one or more object method calls. The device generates hardware code based on the data flow graph, the hardware code including code that does not require further processing to execute.
    Type: Grant
    Filed: December 4, 2012
    Date of Patent: May 12, 2015
    Assignee: The MathWorks, Inc.
    Inventors: Navaneetha K. Ruthramoorthy, Kiran K. Kintali
  • Publication number: 20150128116
    Abstract: An improved development and deployment environment and processes for developing and deploying object-oriented web-based scan-task enabled applications, wherein web-based scan-task enabled client computers use scan task specifications and task decoders to retrieve and decode a scan tasks encapsulated on each web page requested and received from a web server supported by an application server and database server, and then perform specified actions, including the display of web controls, required by the scan task script contained within the decoded scan task, corresponding to the served web page.
    Type: Application
    Filed: January 18, 2012
    Publication date: May 7, 2015
    Inventors: Enyi Chen, Jiangeng Du, Weilin Zhang, Xiaoxun Zhu
  • Publication number: 20150121352
    Abstract: An illustrative embodiment of a computer-implemented method for identification of code synchronization points collects locking data for a set of locks in a managed runtime environment associated with the processor to form a set of contended metrics and analyzes the set of contended metrics using a set of predetermined event triggers. The method further determines whether a threshold in a set of predetermined thresholds in the set of predetermined event triggers is met and identifies a particular form of call path capture for a lock associated with the predetermined event trigger identified as having met the predetermined threshold. Call path information for the lock is captured using the particular form of call path capture.
    Type: Application
    Filed: August 6, 2014
    Publication date: April 30, 2015
    Inventors: MICHAEL H. DAWSON, Trent A. Gray-Donald
  • Patent number: 9015684
    Abstract: A device generates code with a technical computing environment (TCE) based on a model and information associated with a target processor, registers an algorithm with the TCE, automatically sets optimization parameters applied during generation of the code based on the algorithm, executes the generated code, receives feedback based on execution of the generated code, and uses the feedback to automatically update the optimization parameters and to automatically regenerate the code with the TCE until an optimal code is achieved for the target processor.
    Type: Grant
    Filed: April 5, 2013
    Date of Patent: April 21, 2015
    Assignee: The MathWorks, Inc.
    Inventors: David Koh, Murat Belge, Pieter J. Mosterman
  • Patent number: 9009689
    Abstract: Methods to improve optimization of compilation are presented. In one embodiment, a method includes identifying one or more optimization speculations with respect to a code region and speculatively performing transformation on an intermediate representation of the code region in accordance with an optimization speculation. The method includes generating an advice message corresponding to the optimization speculation and displaying the advice message if the optimization speculation results in an improved compilation result.
    Type: Grant
    Filed: November 9, 2010
    Date of Patent: April 14, 2015
    Assignee: Intel Corporation
    Inventors: Rakesh Krishnaiyer, Hideki Saito Ido, Ernesto Su, John L. Ng, Jin Lin, Xinmin Tian, Robert Y. Geva
  • Patent number: 9003377
    Abstract: Unsuspended co-routines are handled by the machine call stack mechanism in which the stack grows and shrinks as recursive calls are made and returned from. When a co-routine is suspended, however, additional call stack processing is performed. A suspension message is issued, and the entire resume-able part of the call stack is removed, and is copied to the heap. A frame that returns control to a driver method (a resumer) is copied to the call stack so that resumption of the co-routine does not recursively reactivate the whole call stack. Instead the resumer reactivates only the topmost or most current frame called the leaf frame. When a co-routine is suspended, it does not return to its caller, but instead returns to the resumer that has reactivated it.
    Type: Grant
    Filed: January 7, 2010
    Date of Patent: April 7, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Neal M. Gafter, Mads Torgersen, Henricus Johannes Maria Meijer, Niklas Gustafsson
  • Patent number: 8984493
    Abstract: A method for distributed static analysis of computer software applications, includes: statically analyzing instructions of a computer software application; identifying at least one entry point in the computer software application; assigning a primary agent to statically analyze the computer software application from the entry point; assigning a secondary agent to statically analyze a call site encountered by the primary agent and produce a static analysis summary of the call site; and presenting results of any of the static analyzes via a computer-controlled output device.
    Type: Grant
    Filed: April 23, 2013
    Date of Patent: March 17, 2015
    Assignee: International Business Machines Corporation
    Inventors: Marco Pistoia, Omer Tripp, Omri Weisman
  • Patent number: 8984475
    Abstract: Provided is an apparatus and method for generating code overlay capable of minimizing the number of memory copies. A static temporal relationship graph (STRG) is generated in which each of functions of a program corresponds to a node of the STRG and a conflict miss value corresponds to an edge of the STRG. The conflict miss value is the maximum number of possible conflict misses between functions. Overlay is generated by selecting at least one function from the STRG, calculating an allocation cost for each region of a memory to be given when the at least one selected function is allocated, and allocating the at least one selected function to a region that has the smallest allocation cost.
    Type: Grant
    Filed: March 11, 2011
    Date of Patent: March 17, 2015
    Assignees: Samsung Electronics Co., Ltd., SNU R&DB Foundation
    Inventors: Soo-Jung Ryu, Choon-Ki Jang, Jaejin Lee, Bernhard Egger, Young-Chul Cho
  • Publication number: 20150074655
    Abstract: The disclosure is related to optimizing generation of intermediate representation (IR) for a script code by eliminating redundant reference count code from the IR. The reference count code includes code that manages a reference count of an object, e.g., code that increments a reference count of the object (“incref code”) and an observer code which consumes or the execution of which depends on the reference count of the object. The IR is analyzed to identify redundant reference count code. Counters associated with the object are evaluated and upon satisfying the optimization criterion, the incref code is moved closer to the observer code. The incref code and the observer code that are adjacent to each other are identified as redundant code pair and the code pair is eliminated from the IR to generate an optimized IR. The optimized IR is further converted to an executable code.
    Type: Application
    Filed: November 17, 2014
    Publication date: March 12, 2015
    Inventors: Guilherme de Lima Ottoni, Brett Hain Simmers, Bertrand Allen Maher, Edwin Thur Gideon Smith
  • Patent number: 8978106
    Abstract: An environment is described which enables the generation, analysis, and use of secure browser extensions. Each browser extension includes an extension body and a policy expressed in a logic-based specification language. The policy specifies the access control and dataflow privileges associated with the extension body in a fine-grained manner by leveraging the structure and content of resources that are accessible to the browser extension. A suite of analysis tools for testing the safety of the browser extension includes a visualization module identifies features of a resource that are accessible to the policy. A static analysis module uses a static analysis technique to determine whether the extension body satisfies the policy. The environment also includes a conversion module for converting the browser extension, once deemed safe, into a form for use by a particular type of browser. The browser can execute that extension without performing runtime safety checks.
    Type: Grant
    Filed: March 21, 2011
    Date of Patent: March 10, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nikhil Swamy, Benjamin Livshits, Arjun Guha, Matthew J. Fredrikson
  • Publication number: 20150067659
    Abstract: An approach is provided in in which distributed runtime environment executes a software application that includes isolated runtime constructs corresponding to an isolated runtime environment. During the execution, the distributed runtime environment identifies isolated runtime constructs included in the software application and selects distributed runtime constructs corresponding to the isolated runtime constructs. In turn, the distributed runtime environment executes the distributed runtime constructs in lieu of executing the isolated runtime constructs.
    Type: Application
    Filed: August 27, 2013
    Publication date: March 5, 2015
    Applicant: International Business Machines Corporation
    Inventor: Douglas Davis
  • Patent number: 8972975
    Abstract: A disclosed method may include, in a computing device including at least one processor, a memory, and an operating system with a plurality of modes of execution, accessing instructions received by the computing device for installation and optimization use at least one of the plurality of modes of execution. The instructions may include a plurality of subroutines. A fingerprint for each of the subroutines may be generated. Each fingerprint may be associated with a number of instructions in a corresponding subroutine. The subroutine may also include determining, for each of the plurality of subroutines and based on the fingerprint, performance score and estimated compilation time associated with each of the plurality of modes of execution, for compiling the corresponding subroutine. One of the plurality of modes of execution may be selected based on maximizing a total performance score for the plurality of subroutines, and limiting total compilation and installation time.
    Type: Grant
    Filed: April 1, 2013
    Date of Patent: March 3, 2015
    Assignee: Google Inc.
    Inventor: Ian Andrew Rogers
  • Patent number: 8972958
    Abstract: Systems and systems which implement workflows for providing reconfigurable processor core algorithms operable with associated capabilities using description files, thereby facilitating the development and generation of instruction sets for use with reconfigurable processors, are shown. Embodiments implement a multistage workflow in which program code is parsed into custom instructions and corresponding capability descriptions for generating reconfigurable processor loadable instruction sets. The multistage workflow of embodiments includes a hybrid threading complier operable to compile input program code into custom instructions using a hardware timing agnostic approach. A timing manager of the multistage workflow of embodiments utilizes capabilities information provided in association with the custom instructions generated by the hybrid threading complier to impose hardware timing on the custom instructions.
    Type: Grant
    Filed: October 23, 2012
    Date of Patent: March 3, 2015
    Assignee: Convey Computer
    Inventor: Tony Brewer
  • Patent number: 8966628
    Abstract: Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that constrain store instructions in the native code module. The SFI mechanisms also maintain control flow integrity for the native code module by dividing a code region associated with the native code module into equally sized code blocks and data blocks and starting each of the data blocks with an illegal instruction.
    Type: Grant
    Filed: August 21, 2014
    Date of Patent: February 24, 2015
    Assignee: Google Inc.
    Inventors: Robert Muth, Karl M. Schimpf, David C. Sehr, Cliff L. Biffle
  • Patent number: 8949797
    Abstract: A system, method and computer program product for verifying integrity of a running application program on a computing device. The method comprises: determining entry points into an application programs processing space that impact proper execution impact program integrity; mapping data elements reachable from the determined entry points into a memory space of a host system where the application to verify is running; run-time monitoring, in the memory space, potential modification of the data elements in a manner potentially breaching program integrity; and initiating a response to the potential modification. The run-time monitoring detects when a data transaction, e.g., a write event, reaches a malicious agent's entry point, a corresponding memory hook is triggered and control is passed to a security agent running outside the monitored system.
    Type: Grant
    Filed: April 16, 2010
    Date of Patent: February 3, 2015
    Assignee: International Business Machines Corporation
    Inventors: Najwa Aaraj, Mihai Christodorescu, Dimitrios Pendarakis, Reiner Sailer, Douglas L. Schales
  • Patent number: 8943482
    Abstract: One embodiment of a method for constructing executable code for a component-based application includes receiving a request to compile source code for the component-based application, wherein the request identifies the source code, and wherein the source code comprises a plurality of source code components, each of the source code components implementing a different component of the application, and performing a series of steps for each source code component where the series of steps includes: deriving a signature for the source code component, retrieving a stored signature corresponding to a currently available instance of executable code for the source code component, comparing the derived signature with the stored signature, compiling the source code component into the executable code when the derived signature does not match the stored signature, and obtaining the executable code for the source code component from a repository when the derived signature matches the stored signature.
    Type: Grant
    Filed: May 15, 2009
    Date of Patent: January 27, 2015
    Assignee: International Business Machines Corporation
    Inventors: Henrique Andrade, Bugra Gedik, Rui Hou, Hua Yong Wang, Kun-Lung Wu
  • Patent number: 8943485
    Abstract: Detecting localizable native methods may include statically analyzing a native binary file of a native method. For each function call invoked in the native binary, it is checked whether resources accessed through the function call is locally available or not. If all resources accessed though the native method is locally available, the method is annotated as localizable.
    Type: Grant
    Filed: September 13, 2012
    Date of Patent: January 27, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Yuqing Gao, Megumi Ito, Graeme Johnson, Seetharami R. Seelam
  • Patent number: 8933827
    Abstract: A data processing apparatus that is capable of reducing the garbling of characters caused by the difference among the character codes when setting data are transferred to another apparatus by the import-export function. A storage unit stores setting data for the data processing apparatus. A receiving unit receives an instruction for exporting the setting data stored in the storage unit. A converting unit converts Unicode data included in the setting data into character code data of language, which is set to the data processing apparatus. An export unit exports the character code data converted by the converting unit and the Unicode data.
    Type: Grant
    Filed: May 24, 2013
    Date of Patent: January 13, 2015
    Assignee: Canon Kabushiki Kaisha
    Inventor: Noritsugu Okayama
  • Patent number: 8930916
    Abstract: Data is received that includes at least a portion of a program. Thereafter, entry point locations and execution-relevant metadata of the program are identified and retrieved. Regions of code within the program are then identified using static disassembly and based on the identified entry point locations and metadata. In addition, entry points are determined for each of a plurality of functions. Thereafter, a set of possible call sequences are generated for each function based on the identified regions of code and the determined entry points for each of the plurality of functions. Related apparatus, systems, techniques and articles are also described.
    Type: Grant
    Filed: January 31, 2014
    Date of Patent: January 6, 2015
    Assignee: Cylance Inc.
    Inventors: Derek A. Soeder, Matt Wolff
  • Patent number: 8930927
    Abstract: A compiler generated static analysis of potential aliasing violations in a portion of code that is not in the current program view of the analysis. Source code in a current program view of the program code is processed to collect symbol definitions. The possible destinations of each symbol definition are computed. The set of symbol definitions in the current program view of the code that are accessible to the portion of the program code outside the current program view is evaluated. Each symbol definition is diagnosed based on the type of the symbol defined and the symbols which may be pointed-to by the symbol definitions.
    Type: Grant
    Filed: December 18, 2008
    Date of Patent: January 6, 2015
    Assignee: International Business Machines Corporation
    Inventors: Christopher Eugene Bowler, Sean Douglas Perry, Ettore Tiotto
  • Patent number: 8924946
    Abstract: Systems and methods for replacing inferior code segments with optimal code segments. Systems and methods for making such replacements for programming languages using Message Passing Interface (MPI) are provided. For example, at the compiler level, point-to-point code segments may be identified and replaced with all-to-all code segments. Programming code may include X10, Chapel and other programming languages that support parallel for loop.
    Type: Grant
    Filed: November 24, 2010
    Date of Patent: December 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ganesh Bikshandi, Krishna Nandivada Venkata, Igor Peshansky, Vijay Anand Saraswat
  • Patent number: 8918772
    Abstract: One embodiment of the present invention provides a system that uses static analysis to determine program correctness for a program written in a dynamic programming language. During operation, the system receives executable code for a program written in the dynamic programming language. The system identifies a program method called in the executable code, and determines if the program method is implemented for the executable code. If not, the system signals that the program method is not implemented for the executable code.
    Type: Grant
    Filed: July 25, 2007
    Date of Patent: December 23, 2014
    Assignee: Google Inc.
    Inventors: David MacLachlan, Greg Miller
  • Patent number: 8914515
    Abstract: A system, and computer program product for cloud optimization using workload analysis are provided in the illustrative embodiments. An architecture of a workload received for execution in a cloud computing environment is identified. The cloud computing environment includes a set of cloud computing resources. A section of the workload is identified and marked for static analysis. Static analysis is performed on the section to determine a characteristic of the workload. A subset of the set of cloud computing resources is selected such that a cloud computing resource in the subset is available for allocating to the workload and has a characteristic that matches the characteristic of the workload as determined from the static analysis. The subset of cloud computing resources is suggested to a job scheduler for scheduling the workload for execution.
    Type: Grant
    Filed: October 28, 2011
    Date of Patent: December 16, 2014
    Assignee: International Business Machines Corporation
    Inventors: Sangram Alapati, Prathiba Kumar, Gowri Shankar Palani, Rajan Ravindran, Satish Kumar Sadasivam
  • Publication number: 20140366009
    Abstract: Provided are techniques for parsing source code file into a plurality of functions generating a ranking corresponding to each of the plurality of functions based upon an order of occurrence in the source code file; generating a weight score corresponding to each of the plurality of functions based upon a weighing factor and the occurrence of a condition corresponding to each of the plurality of functions; and generating an object code file such that the plurality of functions are ordered in the object code file based upon the corresponding rankings and weight scores such during a startup of execution of the object code file a startup time is minimized with respect to an object code file not generated in accordance with the claimed method.
    Type: Application
    Filed: July 22, 2014
    Publication date: December 11, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Vishal Chittranjan Aslot, Aravinda Prasad
  • Patent number: 8910114
    Abstract: In one embodiment, a method includes identifying a byte swap operation, building a domain including the byte swap operation and other expressions, identifying domain entries and domain exits associated with the domain, determining that a benefit will be obtained by performing a swap of the domain, and responsive to the determination performing the swap of the domain, and storing the swapped domain in a storage medium. Other embodiments are described and claimed.
    Type: Grant
    Filed: June 25, 2009
    Date of Patent: December 9, 2014
    Assignee: Intel Corporation
    Inventor: Mikhail Yurievich Loenko
  • Patent number: 8910148
    Abstract: A method for packaging an application, for use with a system comprising the application and a plurality of libraries, the method comprising: in response to runtime execution of the application, monitoring library data associated with at least one of the plurality of libraries that is invoked by the application; associating the library data with an identifier of the application; and using the library data and the application identifier to create a package comprising the application and the at least one of the plurality of libraries.
    Type: Grant
    Filed: June 22, 2011
    Date of Patent: December 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Helen Samantha Bowyer, Kevin Christopher Brown, Matthew Robert Whitehead
  • Patent number: 8910134
    Abstract: A method for performing a neighbor-flipping transformation is provided. In one embodiment, a graph analysis program for computing a function relating to nodes in a directed graph is obtained and analyzed for neighborhood iterating operations, in which a function is computed over sets of nodes in the graph. For any detected neighborhood iterating operation, the method transforms the iterating operation by reversing the neighbor node relationship between the nodes in the operation. The transformed operation computes the same value for the function as the operation prior to transformation. The method alters the neighbor node relationship automatically, so that a user does not have to recode the graph analysis program. In some cases, the method includes construction of edges in the reverse direction while retaining the original edges in addition to performing the transformation.
    Type: Grant
    Filed: January 3, 2013
    Date of Patent: December 9, 2014
    Assignee: Oracle International Corporation
    Inventors: Sungpack Hong, Hassan Chafi, Eric Sedlar
  • Patent number: 8904371
    Abstract: Processing a dataflow program by a program development tool includes detecting a pair of actors defined by dataflow program instructions, wherein the pair of actors include a producer actor and a consumer actor, the producer actor supplying a data structure to the consumer actor via a path that comprises at least one connection and possibly also intervening other actors. An analysis is performed including analyzing one or more operations of the producer actor that involve the data structure and/or analyzing one or more operations of the consumer actor that involve the data structure. A result of the analysis is used as a basis for selecting a minimal amount of information from among a plurality of data handling possibilities concerning the data structure. A transformed program is produced in which the selected minimal amount of information is caused to be passed from the producer actor to the consumer actor.
    Type: Grant
    Filed: June 19, 2012
    Date of Patent: December 2, 2014
    Assignee: Telefonaktiebolaget L M Ericsson (publ)
    Inventors: Charles Chen Xu, Johan Eker, Carl Von Platen
  • Patent number: 8899343
    Abstract: In an embodiment, a first execution path in a program is determined that has been executed a largest number of times, as compared to at least one other path in the program. Swapped instructions are replaced in the program with breakpoints, wherein the swapped instructions are not on the first execution path. The breakpoints that are not on the first execution path and that are contiguous to each other are replaced in the program with a control word.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Justin K. King, Lee Nee, Michelle A. Schlicht
  • Patent number: 8904360
    Abstract: Embodiments of the invention may provide for collecting specified data each time that a call to a given method occurs, wherein a given call to the given method is associated with a set of arguments comprising one or more particular argument values for the given method, and the collected data includes an element uniquely identifying each of the particular argument values. The process may further include storing the collected data at a selected location, and selecting a call threshold for the given method, wherein the call threshold comprises a specified number of occurrences of the given call to the given method, when the program is running. The collected data may be selectively analyzed at the storage location, to determine whether an occurrence of the given call to the given method has exceeded the call threshold.
    Type: Grant
    Filed: September 17, 2013
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Mark A. Alkins, Denny Pichardo, Martin J. C. Presler-Marshall, Hunter K. Presnall
  • Patent number: 8893080
    Abstract: Processing a dataflow program by a program development tool includes analyzing an actor defined by the dataflow program to identify original sequences of actions that can be reformulated to achieve greater execution parallelism while maintaining the same functionality as the original sequences. A processed dataflow program is produced comprising processed dataflow program instructions and decision point program instructions. The processed dataflow program instructions comprise alternative sequences of reformulated actions that achieve greater execution parallelism while maintaining the same functionality as the identified one or more original sequences. The decision point program instructions direct processing equipment to select and execute one or more of the alternative sequences of reformulated actions, wherein selection is based on state and token information in existence at the time of selection.
    Type: Grant
    Filed: August 15, 2012
    Date of Patent: November 18, 2014
    Assignee: Telefonaktiebolaget L M Ericsson (Publ)
    Inventors: Carl Von Platen, Charles Chen Xu, Song Yuan
  • Patent number: 8893095
    Abstract: There are provided methods and computer program products for generating code for an architecture encoding an extended register specification. A method for generating code for a fixed-width instruction set includes identifying a non-contiguous register specifier. The method further includes generating a fixed-width instruction word that includes the non-contiguous register specifier.
    Type: Grant
    Filed: July 26, 2012
    Date of Patent: November 18, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Robert Kevin Montoye, Brett Olsson, John-David Wellman
  • Patent number: 8875115
    Abstract: An apparatus, process, and computer program product to merge types in an object-oriented program is disclosed herein. In one embodiment, a process may include analyzing a method within an object-oriented program to identify merge candidates. These merge candidates may then be recorded in a merge candidate list. The process may further include identifying at least two code paths in the method that merge into a single code path and that operate on different types. The types in these code paths may then be merged to a nearest common superclass listed in the merge candidate list. In selected embodiments, the types may be merged to the java.lang.Object class in the event the merge candidate list is empty.
    Type: Grant
    Filed: November 29, 2008
    Date of Patent: October 28, 2014
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Thomas Mark Walter Bottomley
  • Patent number: 8869109
    Abstract: A method for disassembling an executable binary (binary). In one implementation, a plurality of potential address references may be identified based on the binary and a plurality of storage addresses containing the binary. A plurality of assembler source code instructions (instructions) may be generated by disassembling the binary. The binary may be disassembled at one or more sequential addresses starting at each of the plurality of potential address references.
    Type: Grant
    Filed: March 17, 2008
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Aimin Pan, Kaimin Zhang, Bin Zhu
  • Patent number: 8869121
    Abstract: Data processing using multidimensional fields is described along with methods for advantageously using high-level language codes.
    Type: Grant
    Filed: July 7, 2011
    Date of Patent: October 21, 2014
    Assignee: Pact XPP Technologies AG
    Inventors: Martin Vorbach, Frank May, Armin Nückel
  • Publication number: 20140310697
    Abstract: The compilation a transformation chain of a recalculation user interface that displays an electronic canvas that contains one or more displayed result of a transformation chain. The transformation chain includes transforms between a respective data source and data sink. User editing of the recalculation user interface could cause one or more of the transforms to be re-executed, thereby causing recalculation. The compilation involves analyzing the transformation chain of the recalculation user interface for dependencies to create a dependency graph of dependencies between entities. For instance, some dependencies might be between entities so as to indicate that if one entity is evaluated, then the other should be also. The dependency graph is then used to create a lower level of execution steps. The dependency graph is further provided to a runtime for the program, so that the dependency graph may be available during operation of the recalculation user interface.
    Type: Application
    Filed: April 12, 2013
    Publication date: October 16, 2014
    Inventors: Andrew Douglas Reddish, Olivier Colle, Radu B. Gruian, Nizam Anuar, Jaideep Sarkar, Vijay Mital
  • Patent number: 8863100
    Abstract: An embodiment of the disclosure can compile source of an interactive application with debug options enabled. Execution activity of the interactive application can be enabled. A code path of a selected service of the interactive application can be executed in a debug environment using a user interface of the selected service to identify execution data associated with the selected service. Unresolved branch conditions in the execution data can be addressed for each code path of the selected service. A source extraction of the selected service can be performed.
    Type: Grant
    Filed: May 29, 2012
    Date of Patent: October 14, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ibrahim Batthish, Satish Gungabeesoon, Donald J. Yantzi
  • Patent number: 8856764
    Abstract: A method for distributed static analysis of computer software applications, includes: statically analyzing instructions of a computer software application; identifying at least one entry point in the computer software application; assigning a primary agent to statically analyze the computer software application from the entry point; assigning a secondary agent to statically analyze a call site encountered by the primary agent and produce a static analysis summary of the call site; and presenting results of any of the static analyses via a computer-controlled output device.
    Type: Grant
    Filed: January 25, 2011
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventors: Marco Pistoia, Omer Tripp, Omri Weisman
  • Patent number: 8856925
    Abstract: Some embodiments provide a system that executes a native code module. During operation, the system obtains the native code module. Next, the system loads the native code module into a secure runtime environment. Finally, the system safely executes the native code module in the secure runtime environment by using a set of software fault isolation (SFI) mechanisms that constrain store instructions in the native code module. The SFI mechanisms also maintain control flow integrity for the native code module by dividing a code region associated with the native code module into equally sized code blocks and data blocks and starting each of the data blocks with an illegal instruction.
    Type: Grant
    Filed: September 10, 2013
    Date of Patent: October 7, 2014
    Assignee: Google Inc.
    Inventors: Robert Muth, Karl Schimpf, David C. Sehr, Cliff L. Biffle
  • Patent number: 8856767
    Abstract: A system and method for monitoring the performance and execution flow of a target application and generating a corresponding data model are provided. The system and method comprise attaching to a thread or process of a target application and tracking the execution of subroutines using instrumentation commands. Data representing the execution flow of the various subroutines, subroutine calls, and their performance is gathered and used to generate data models representing the threads and processes of the application. The data models are optionally merged and/or pruned. A visualization of the data models is generated indicating relevant points of interest within the target application's execution flow.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: October 7, 2014
    Assignee: Yahoo! Inc.
    Inventors: Rohit Jalan, Arun Kejariwal
  • Patent number: 8850410
    Abstract: A system and method for improving software maintainability, performance, and/or security by associating a unique marker to each software code-block; the system comprising of a plurality of processors, a plurality of code-blocks, and a marker associated with each code-block. The system may also include a special hardware register (code-block marker hardware register) in each processor for identifying the markers of the code-blocks executed by the processor, without changing any of the plurality of code-blocks.
    Type: Grant
    Filed: January 29, 2010
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ramanjaneya S. Burugula, Joefon Jann, Pratap C. Pattnaik
  • Patent number: 8850574
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for runtime language-independent sandboxing of software. In one aspect, a system implements an extended Software Fault Isolation (SFI) software sandboxing system configured to provide a user-mode program interface for receiving runtime requests for modifying verifiably safe executable machine code. Requests can include dynamic code creation, dynamic code deletion, and atomic modification of machine code instructions. A runtime modification of a verifiably safe executable memory region is made in response to each received runtime request, and code within the modified memory region has a guarantee of safe execution.
    Type: Grant
    Filed: February 28, 2011
    Date of Patent: September 30, 2014
    Assignee: Google Inc.
    Inventors: Jason Ansel, Cliff L. Biffle, Ulfar Erlingsson, David C. Sehr
  • Patent number: 8843928
    Abstract: A method and system of efficient use and programming of a multi-processing core device. The system includes a programming construct that is based on stream-domain code. A programmable core based computing device is disclosed. The computing device includes a plurality of processing cores coupled to each other. A memory stores stream-domain code including a stream defining a stream destination module and a stream source module. The stream source module places data values in the stream and the stream conveys data values from the stream source module to the stream destination module. A runtime system detects when the data values are available to the stream destination module and schedules the stream destination module for execution on one of the plurality of processing cores.
    Type: Grant
    Filed: January 21, 2011
    Date of Patent: September 23, 2014
    Assignee: QST Holdings, LLC
    Inventors: Paul Master, Frederick Furtek
  • Patent number: 8843906
    Abstract: Disclosed herein are methods and compilers for compiling code. The methods and compilers disclosed can compile a callable compilable unit of code free of declarations and assertions that identify attributes of arguments expressed therein. The attributes of the arguments in the callable compilable unit of code are inferred by the compilers and methods disclosed herein from information provided by a call site that calls a compiler to compile the callable compilable unit of code.
    Type: Grant
    Filed: October 16, 2006
    Date of Patent: September 23, 2014
    Assignee: The MathWorks, Inc.
    Inventors: Martin Clark, Frederick Mattsson Smith, John Elliott, Ricardo Losada
  • Patent number: 8843902
    Abstract: A method and corresponding tool for estimating program execution time. A higher-level structure is received as an input, representing control flow through an executable program. The higher-level structure comprises one or more levels of parent nodes, each parent node representing internal structure comprising a group of one or more child nodes and one or more associated edges between nodes. The levels of the higher-level structure are probed to extract a substructure representing a route through the program from a start instruction to an end instruction, by selectively extracting nodes of different levels of parent to represent different regions along the route in dependence on a location of the start and end instructions relative to the levels of parent nodes. An execution time for the route through the program is estimated based on the extracted substructure, and a modification affecting the execution time is made in dependence on the estimation.
    Type: Grant
    Filed: March 12, 2010
    Date of Patent: September 23, 2014
    Assignee: XMOS Ltd.
    Inventor: Andrew Stanford-Jason