Including Instrumentation And Profiling Patents (Class 717/158)
  • Patent number: 8898646
    Abstract: An apparatus and method for profiling program code. In particular, an apparatus according to one embodiment comprises a filtering component identifying a first set of instructions for which profiling is desired wherein, in response to detecting that an instruction has been retired, the filtering component determines whether the instruction is within the first set of instructions for which profiling is desired; an event selection component detecting an event in response to the instruction retiring, the event selection component generating event signals in response to a designated event; and a profiling component recording the occurrence or not occurrence of the event within a first storage device responsive to signals from the filtering component and/or the event selection component.
    Type: Grant
    Filed: December 22, 2010
    Date of Patent: November 25, 2014
    Assignee: Intel Corporation
    Inventors: Enric Gibert Codina, Josep M. Codina, Carlos Madriles, Raul Martinez
  • Patent number: 8898648
    Abstract: A profiling tool identifies a code region with a false sharing potential. A static analysis tool classifies variables and arrays in the identified code region. A mapping detection library correlates memory access instructions in the identified code region with variables and arrays in the identified code region while a processor is running the identified code region. The mapping detection library identifies one or more instructions at risk, in the identified code region, which are subject to an analysis by a false sharing detection library. A false sharing detection library performs a run-time analysis of the one or more instructions at risk while the processor is re-running the identified code region. The false sharing detection library determines, based on the performed run-time analysis, whether two different portions of the cache memory line are accessed by the generated binary code.
    Type: Grant
    Filed: November 30, 2012
    Date of Patent: November 25, 2014
    Assignee: International Business Machines Corporation
    Inventors: I-Hsin Chung, Guojing Cong, Hiroki Murata, Yasushi Negishi, Hui-Fang Wen
  • Patent number: 8898647
    Abstract: A method provides for a way to test coverage data used in testing small computing platforms by assigning unique signatures to each node in the control flow graph and embedding control function calls. Signatures are embedded into the program during compilation time using the custom parser. When the program is executed the “exercised” signatures sequence is checked for correctness and used for deriving test coverage metric. This metric is used for improving unit and black-box tests. Thus, a way to collect the path-based test coverage with minimal memory and code/size impact on target system is provided.
    Type: Grant
    Filed: October 9, 2008
    Date of Patent: November 25, 2014
    Assignee: Siemens Aktiengesellschaft
    Inventors: Sergey Pavlovich Sobolev, Sergey Valerievich Vinogradov
  • 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: 8881126
    Abstract: Systems and methods for automatic generation of one or more test programs to be used in conjunction with a test framework for testing a compiler are disclosed. A compiler is instrumented to generated data exposing various internal decisions and/or actions made by the compiler. A test program is generated by test framework and compiled by the compiler and the output is validated by the test framework to ensure that the compiler is behaving according to its compiler specification.
    Type: Grant
    Filed: July 31, 2012
    Date of Patent: November 4, 2014
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, Maurizio Cimadamore
  • Patent number: 8881125
    Abstract: Performance impact of a computing system component on a transient end-to-end system operation is estimated by profiling an overall characteristic for a transient end-to-end system operation, and simultaneously profiling a program code component for a second characteristic, thereby collecting a first pair of data points, repeating the operational period while introducing a known artificial delay into the program code component, and while profiling the overall performance characteristic for the system and for the program code component, thereby collecting pairs of data points for each repetition of the operational period for each of the artificial delays; curve fitting and analyzing intercepts of the collected data points to estimate the effect of the artificial delays in the program code component on the transient end-to-end system operation; and reporting the estimate correlated to potential optimal transient end-to-end system operation.
    Type: Grant
    Filed: June 11, 2012
    Date of Patent: November 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Marc Alan Dickenson, Andrew Geissler, Adriana Kobylak, Aditya Kumar
  • Publication number: 20140317609
    Abstract: Methods for enabling automatic reference counting are disclosed. A source code is searched for a particular pattern via a compiler associated with a computer system, wherein the source code is written in an existing language and wherein the particular pattern is for a reference associating an object with a portion of memory. The particular pattern is recognized at the computer system. The particular pattern is replaced with an automatic reference counting implementation at the computer system. The source code is executed with the automatic reference counting implementation.
    Type: Application
    Filed: November 15, 2013
    Publication date: October 23, 2014
    Applicant: Embarcadero Technologies, Inc.
    Inventor: Allen Bauer
  • Patent number: 8863089
    Abstract: Analysis data from the execution of a computer program is collected. The analysis data may include samples of two different types of performance data from the execution of the computer program. Performance data may include sampled hardware performance counter data and sampled executing functions. The performance data is used to create a composite view of the data. The composite view may allow a user to efficiently correlate the different types of performance data by using a colored visual display.
    Type: Grant
    Filed: May 5, 2011
    Date of Patent: October 14, 2014
    Assignee: Nintendo Co., Ltd.
    Inventors: Steve Rabin, Chad Hinkle
  • 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: 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: 8856766
    Abstract: An embodiment of the invention provides a method of displaying a data flow, wherein a description of a data flow application to be displayed is received. The data flow application includes nodes and edges connecting the nodes, wherein the nodes represent operators and the edges represent data connections for data flowing between the operations. A reason that a user is to view the data flow and/or a user constraint on a complexity of the data flow application to be displayed is determined with a processor; and, the time required to render a display of the data flow application is estimated. A transformed representation of the data flow application is created with the processor. The transformed representation is created based upon the user reason, the user constraint, the estimated time of rendering, and/or a layout strategy. The transformed representation is displayed on a graphical user interface.
    Type: Grant
    Filed: May 11, 2012
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventors: Andrew Lawrence Frenkiel, Henrique Andrade, Bugra Gedik, Michael Donald Pfeifer, Wim De Pauw
  • Publication number: 20140298307
    Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.
    Type: Application
    Filed: April 2, 2013
    Publication date: October 2, 2014
    Applicant: GOOGLE INC.
    Inventors: Teresa Louise JOHNSON, Xinliang David LI
  • 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: 8843912
    Abstract: A method of optimizing an application to reduce local memory usage. The method can include instrumenting at least one executable class file of the application with analysis code, the executable class file including bytecode. The method also can include executing the class file on a virtual machine, wherein during execution the analysis code generates data related to the application's use of local memory. The method further can include, via a processor, analyzing the data related to the application's use of the local memory to generate a memory profile analysis. The method further can include, based on the memory profile analysis, automatically revising at least one portion of the bytecode to reduce an amount of the local memory used by the application.
    Type: Grant
    Filed: February 20, 2012
    Date of Patent: September 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: David Brauneis, Jeffrey E. Care, Curtis E. Hrischuk, Andrew D. Naumann
  • Patent number: 8843944
    Abstract: Determining a class of an object is disclosed. A pointer of the object is obtained. One or more bits that are not implemented as address bits are extracted from the pointer. The one or more bits are interpreted as an identifier of the class of the object. The class of the object is determined to correspond to the identifier.
    Type: Grant
    Filed: June 9, 2011
    Date of Patent: September 23, 2014
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Murali Sundaresan, Michael A. Wolf
  • Publication number: 20140282456
    Abstract: Systems, methods and computer-readable storage media for profiling software and providing migration effort estimations are described. A software profiling system may be configured to receive code for an application that executes in a first computing environment and analyze the code to determine efforts associated with migrating the application to execute in one or more second computing environments. For instance, the software profiling system may be configured to determine the migration efforts for migrating a software application that operates in a non-cloud computing environment to a cloud computing environment. The software profiling system may generate transformation points that serve as estimation units for solving anomalies identified to bring various aspects of the application into conformance with one or more of the second computing environments.
    Type: Application
    Filed: March 17, 2014
    Publication date: September 18, 2014
    Applicant: Cloud Technology Partners, Inc.
    Inventors: Bernard A. Drost, David C. Knuth, Jimmy Zhaoming Zhang, Elena A. Grinev, Erik W. Sebesta, Khuong L. Ho, Thomas J. Kroon
  • Publication number: 20140282455
    Abstract: A system and associated methods are disclosed for profiling the execution of program code by a processor. The processor provides an instruction set with special profiling instructions for efficiently determining the bounds and latency of memory operations for blocks of program code. Information gathered regarding the bounds and latency of memory operations are used to determine code optimizations, such as allocation of memory for data structures in memory more local to the processor.
    Type: Application
    Filed: March 13, 2014
    Publication date: September 18, 2014
    Applicant: COGNITIVE ELECTRONICS, INC.
    Inventor: Andrew C. FELCH
  • Patent number: 8839218
    Abstract: A computer implemented method, apparatus, and computer usable program code for facilitating debugging of source code. A set of indirect memory references is identified in the source code and points-to records are generated for the source code. The set of indirect memory references are validated using the points-to records and an aliasing rule to identify zero or more indirect memory references having a potential aliasing problem. In a case in which the zero or more indirect memory references comprise at least one indirect memory reference, the at least one indirect memory reference is in the set of indirect memory references. Responsive to a determination that the zero or more indirect memory references comprise at least one indirect memory reference, a report is generated identifying at least one location in the source code associated with the at least one indirect memory reference. The report is stored.
    Type: Grant
    Filed: June 4, 2007
    Date of Patent: September 16, 2014
    Assignee: International Business Machines Corporation
    Inventors: Christopher E. Bowler, Raymond Ying Chau Mak, Sean Douglas Perry, Ettore Tiotto, Enrique Varillas
  • Patent number: 8839274
    Abstract: Handling a virtual method call includes extracting, from a pointer to an object, an identifier associated with the class of the object, the pointer to the object being associated with the virtual method call, and the identifier being embedded within the pointer; using the identifier to obtain a virtual method table, including locating a first entry in a class identifier table mapping a plurality of class identifiers to a corresponding plurality of class data, the first entry being associated with the identifier and comprising the virtual method table or a pointer used to obtain the virtual method table; locating a second entry in the virtual method table, the second entry being associated with the virtual method call; and jumping to an address associated with the second entry to execute code at the address.
    Type: Grant
    Filed: September 7, 2011
    Date of Patent: September 16, 2014
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Cliff N. Click, Jr., Murali Sundaresan, Michael A. Wolf
  • Publication number: 20140258998
    Abstract: Disclosed here are methods, systems, paradigms and structures for incrementally compiling scripts at runtime to generate executable code. The incremental compilation generates executable code corresponding to basic blocks of a script in various phases and at various scopes. In a first phase, an executable code for a basic block of the script is generated for a set of types of variables of the basic block. The generated executable block is stored and executed for subsequent requests. In a second phase, a set of executable blocks whose profiling information, such as frequency of (a) execution, (b) transition between two executable blocks, or (c) execution of a particular path, satisfies an optimization criterion is identified. The identified set of executable blocks are combined to generate an executable control region, which is more optimal than the executable blocks generated in the first phase. The executable control region is executed for subsequent requests.
    Type: Application
    Filed: March 8, 2013
    Publication date: September 11, 2014
    Inventors: Ali-Reza Adl-Tabatabai, Guilherme de Lima Ottoni
  • Patent number: 8832671
    Abstract: One embodiment of the present invention sets forth a technique for using a multi-bank register file that reduces the size of or eliminates a switch and/or staging registers that are used to gather input operands for instructions. Each function unit input may be directly connected to one bank of the multi-bank register file with neither a switch nor a staging register. A compiler or register allocation unit ensures that the register file accesses for each instruction are conflict-free (no instruction can access the same bank more than once in the same cycle). The compiler or register allocation unit may also ensure that the register file accesses for each instruction are also aligned (each input of a function unit can only come from the bank connected to that input).
    Type: Grant
    Filed: July 7, 2010
    Date of Patent: September 9, 2014
    Assignee: NVIDIA Corporation
    Inventors: Anjul Patney, William J. Dally
  • Patent number: 8826244
    Abstract: Method for providing programming support to a debugger are disclosed. The method includes defining at least one debugger programming statement, and instructing the debugger to execute the at least one debugger programming statement which modifies a least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.
    Type: Grant
    Filed: March 27, 2012
    Date of Patent: September 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Madhusudanan Kandasamy, Vidya Ranganathan
  • Patent number: 8826242
    Abstract: An exemplary method includes providing an application that includes client-side code and server-side code, instrumenting the client-side code and the server-side code to generate timestamps, distributing the instrumented client-side code and the instrumented server-side code and monitoring timestamps generated during execution of the application. In such a method, where timestamps generated by the client-side code and timestamps generated by the server-side code occur along a common timeline, a developer can monitor performance of the distributed application. Other exemplary methods, systems, etc., are also disclosed.
    Type: Grant
    Filed: November 27, 2007
    Date of Patent: September 2, 2014
    Assignee: Microsoft Corporation
    Inventors: Benjamin Livshits, William GJ Halfond, Jeffrey Van Gogh
  • Patent number: 8826234
    Abstract: A relational model may be used to encode primitives for each of a plurality of threads in a multi-core processor. The primitives may include tasks and parameters, such as buffers. The relationships may be linked to particular tasks. The tasks with the coding, which indicates the relationships, may then be used upon user selection to display a visualization of the functional relationships between tasks.
    Type: Grant
    Filed: December 23, 2009
    Date of Patent: September 2, 2014
    Assignee: Intel Corporation
    Inventors: Christopher J. Cormack, Nathaniel Duca, Jason Plumb
  • Patent number: 8826254
    Abstract: A function may be memoized when a side effect is a read only side effect. Provided that the read only side effect does not mutate a memory object, the side effect may be considered as an input to a function for purity and memoization analysis. When a read only side effect may be encountered during memoization analysis, the read only side effect may be treated as an input to a function for memoization analysis. In some cases, such side effects may enable an impure function to behave as a pure function for the purposes of memoization.
    Type: Grant
    Filed: November 8, 2012
    Date of Patent: September 2, 2014
    Assignee: Concurix Corporation
    Inventors: Alexadner G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
  • Patent number: 8826253
    Abstract: Delayed insertion of safepoint related code is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is analyzed programmatically to identify a safepoint and insert safepoint related code associated with the safepoint. In some embodiments, analyzing the optimized intermediate representation programmatically comprises determining where to place the safepoint within a program structure of the source code as reflected in the intermediate representation.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: September 2, 2014
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien
  • Patent number: 8813044
    Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming said process definition by using a processing unit to apply said assumptions to said process definition to change the configuration of the process definition. The process definition may be transformed by using factors relating to the specific context in or for which the process definition is executed. Also, the process definition may be transformed by identifying, in a flow diagram for the service process definition, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.
    Type: Grant
    Filed: September 6, 2012
    Date of Patent: August 19, 2014
    Assignee: International Business Machines Corporation
    Inventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
  • Patent number: 8813055
    Abstract: A system and method for profiling a software application may include means for operating on context-specific data and costs. The system may include a descriptor apparatus for specifying identifiers of extended address elements to be profiled and locations for storing corresponding data values. In some embodiments, a list of variables to be included in profiling may be registered with an event agent and values of the variables may be captured in response to detection of a system event. Registering variables to be profiled may involve conveying a list of the variables or a pointer to such a list to the event agent. The event agent may associate the values of the registered variables with the detected system event and may store them in an event space database. The database may be accessed by a data space profiler to identify performance bottlenecks dependent on one or more registered variable values.
    Type: Grant
    Filed: November 8, 2006
    Date of Patent: August 19, 2014
    Assignee: Oracle America, Inc.
    Inventor: Nicolai Kosche
  • Patent number: 8813056
    Abstract: A program is executed with a first programmable device (10). Device operating points such as power supply voltage and/or clock frequency are adapted dependent on the states reached by the device during execution. Operation of programs that may have been sold after the device has been supplied to users is optimized by executing the computer program on each of a plurality of programmable devices (10) like the first programmable device, and collecting statistical data associated with the execution states encountered during execution by the plurality of programmable devices (10). Each of the plurality of programmable devices (10) collects its own statistical data and uploads the collected information to a common profiling apparatus (14). The profiling apparatus assigns device operating points to respective ones of the execution states, using an optimization that depends on the combined statistical data from the plurality of programmable devices (10).
    Type: Grant
    Filed: August 13, 2008
    Date of Patent: August 19, 2014
    Assignee: NXP B.V.
    Inventors: Artur Tadeusz Buchard, Petr Kourzanov, Ger Kersten
  • Patent number: 8813041
    Abstract: In one embodiment, a method for inserting advertising into an application includes removing first application code from a first input executable file and placing it into an output executable file, wherein the first application code represents code part of the application. Then a first set of proxies is inserted into the first input executable file, wherein the first set of proxies, when run, makes calls to the first application code. Second application code is added into the output executable file, wherein the second application code represents code executable to display the advertising. The output executable file is compressed. Then, the first input executable file and the output executable file are provided to a device such that the device may load and execute the files.
    Type: Grant
    Filed: February 14, 2008
    Date of Patent: August 19, 2014
    Assignee: Yahoo! Inc.
    Inventor: Thomas Lopatic
  • Patent number: 8813058
    Abstract: The disclosure is for run-time accessing a software component is provided, together with a computer system embodying the same, and a software utility directing the method. Initially a software component is loaded and analyzed to identify one or more features thereof, which features are checked against a database. Following the check, the component is classified as one of at least first, second, and third component types. A first component type is run without amendment. A second component type is replaced by a component of equivalent functionality prior to running. A third component type is blocked from running.
    Type: Grant
    Filed: May 25, 2012
    Date of Patent: August 19, 2014
    Assignee: International Business Machines Corporation
    Inventors: Timothy J. Baldwin, Peter J. Johnson, David Locke, Fenglian Xu
  • Patent number: 8806463
    Abstract: A method includes generating a first executable program module based on source code modules and collecting profile information for the source code modules by executing the first executable program module. The profile information includes information pertaining to invocation of procedures in the first executable program module. The method further includes determining module grouping information for the source code modules based on procedure invocation patterns in the profile information and according to one or more inter-procedural optimization (IPO) heuristics. The method includes performing IPO based on the module grouping information to generate object code modules and generating a second executable program module based on the plurality of object code modules.
    Type: Grant
    Filed: May 12, 2014
    Date of Patent: August 12, 2014
    Assignee: Google Inc.
    Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
  • Patent number: 8799871
    Abstract: An exemplary embodiment provides methods, systems and mediums for executing arithmetic expressions that represent elementwise operations. An exemplary embodiment provides a computing environment in which elementwise expressions may be executed in parallel by multiple execution units. In an exemplary embodiment, multiple execution units may reside on a network.
    Type: Grant
    Filed: January 8, 2007
    Date of Patent: August 5, 2014
    Assignee: The MathWorks, Inc.
    Inventor: Brett Baker
  • Patent number: 8799884
    Abstract: Generating parallelized executable code from input code includes statically analyzing the input code to determine aspects of data flow and control flow of the input code; dynamically analyzing the input code to determine additional aspects of data flow and control flow of the input code; generating an intermediate representation of the input code based at least in part on the aspects of data flow and control flow of the input code identified by the static analysis and the additional aspects of data and control flow of the input code identified by the dynamic analysis; and processing the intermediate representation to determine portions of the intermediate representation that are eligible for parallel execution; and generating parallelized executable code from the processed intermediate representation.
    Type: Grant
    Filed: August 13, 2009
    Date of Patent: August 5, 2014
    Assignee: QUALCOMM Incorporated
    Inventors: Robert Scott Dreyer, Joel Kevin Jones, Michael Douglas Sharp, Ivan Dimitrov Baev
  • Publication number: 20140215448
    Abstract: Provided is a compiling method and apparatus for scheduling a block in a pipeline. The compiling method for scheduling a block in a pipeline may include profiling, using a processor, an access count of a block in a control flow of a program code, determining that the block is an important block, in response to an edge count of an edge entering the block being greater than or equal to a predetermined value, the edge count being included in the access count of the block, and scheduling the important block based on the access count to prevent a register writeback conflict.
    Type: Application
    Filed: December 19, 2013
    Publication date: July 31, 2014
    Applicant: SAMSUNG ELECTRONICS CO., LTD.
    Inventor: Taisong Jin
  • Patent number: 8793674
    Abstract: A method for compiler-guided optimization of MapReduce type applications that includes applying transformations and optimizations to JAVA bytecode of an original application by an instrumenter which carries out static analysis to determine application properties depending on the optimization being performed and provides an output of optimized JAVA bytecode, and executing the application and analyzing generated trace and feeds information back into the instrumenter by a trace analyzer, the trace analyzer and instrumenter invoking each other iteratively and exchanging information through files.
    Type: Grant
    Filed: September 18, 2012
    Date of Patent: July 29, 2014
    Assignee: NEC Laboratories America, Inc.
    Inventors: Nishkam Ravi, Jun Liu, Srimat T. Chakradhar
  • Patent number: 8789023
    Abstract: A method finds an error in a computer program. A plurality of execution breakpoints are set in the computer program. A portion of the execution of the computer program is simulated as recorded in the trace data in the reverse order until one a plurality of conditions is met, wherein one of the plurality of conditions is an attempt to execute a machine instruction associated with one of the plurality of execution breakpoints.
    Type: Grant
    Filed: March 7, 2012
    Date of Patent: July 22, 2014
    Assignee: Green Hills Software, Inc.
    Inventors: Michael Lindahl, Andre Yew, Mallory Morgan Green, II, Michael Johnson, Allan Craig Franklin, Daniel O'Dowd, Neil Puthuff
  • Patent number: 8789032
    Abstract: Methods, systems, and apparatus, including computer program products, for inter-procedural optimization, are disclosed. In one aspect, a first executable program module is generated based on a plurality of source code modules. Profile information is collected for the plurality of source code modules by executing the first executable program module. Inter-procedural analysis for the plurality of source code modules is performed during execution of the first executable program module. The inter-procedural analysis is based on the collected profile information. IPO is performed based on the results from the inter-procedural analysis to generate a plurality of object code modules. A second executable program module is generated based on the plurality of object code modules.
    Type: Grant
    Filed: February 27, 2009
    Date of Patent: July 22, 2014
    Assignee: Google Inc.
    Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
  • Patent number: 8782612
    Abstract: A failsafe mechanism for installing and removing temporary instrumentation during a runtime of an application. Initially, an application is configured with a baseline set of instrumented components such as methods. Additional instrumentation is then deployed in the application, such as to diagnose a performance problem. The failsafe mechanism ensures that the additional instrumentation is automatically removed, even when there is an interruption in a communication link to the application, a computing device failure, a software failure, or some other type of failure, which renders it impossible to manually roll back the instrumentation from a remote user interface. The failsafe mechanism can be provided using callbacks between the computing devices which detect when a connection is unexpectedly lost or closed. Termination of one callback can cascade to one or more other callbacks. The instrumentation rollback can involve reloading un-instrumented byte code of the application.
    Type: Grant
    Filed: May 11, 2010
    Date of Patent: July 15, 2014
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Yitao Sun
  • Patent number: 8782629
    Abstract: Software performance may be improved by collecting and correlating performance counter events and program execution state information. On each successive callback of performance counter data, a statistical exponential moving average association matrix may be updated until particular performance counter events and program execution states may be correlated.
    Type: Grant
    Filed: June 29, 2005
    Date of Patent: July 15, 2014
    Assignee: Intel Corporation
    Inventor: Mingqiu Sun
  • Patent number: 8775769
    Abstract: A partition-based method for diagnosing memory leaks in Java systems, comprising dividing heap memory of a Java virtual machine into a plurality of partitions based on a partition plan, wherein each partition has at least one partition owner; monitoring the status of the respective partitions to determine whether there is a partition in which the memory space is exhausted; and if there is a partition in which the memory space is exhausted, determining that the memory leak may occur in the partition and analyzing the partition to obtain leaked objects and objects related to the leaked objects. The present invention also provides a partition-based apparatus for diagnosing memory leak in Java systems.
    Type: Grant
    Filed: July 1, 2008
    Date of Patent: July 8, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ying Li, Quan Long, Tiancheng Lui, Jie Qiu
  • Patent number: 8769503
    Abstract: An exemplary embodiment provides methods, systems and mediums for executing arithmetic expressions that represent elementwise operations. An exemplary embodiment provides a computing environment in which elementwise expressions may be executed in parallel by multiple execution units. In an exemplary embodiment, multiple execution units may reside on a network.
    Type: Grant
    Filed: August 20, 2007
    Date of Patent: July 1, 2014
    Assignee: The MathWorks, Inc.
    Inventor: Brett Baker
  • Patent number: 8769511
    Abstract: A virtual machine executive (VME) system operating on a target platform that includes a virtual machine monitor (VMM) and a dynamic compiler, in particular, a trace compiler (TC). System embodiments include a virtual machine monitor configured to record a trace corresponding to a selected cycle, and configured to transform the trace into a representation of a trace tree; and a trace compiler cooperating with the virtual machine monitor to compile the representation of the trace tree into a compiled code segment of native machine code executable on the target platform, in which the trace is a linear instruction sequence traversing at least a portion of a method, a loop, or a branching node.
    Type: Grant
    Filed: February 16, 2007
    Date of Patent: July 1, 2014
    Assignee: The Regents of the University of California
    Inventors: Andreas Imre Gal, Michael Franz
  • Patent number: 8769507
    Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service on a specified computing device. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming the definition by using a processing unit to apply the assumptions to the definition of the process to change the way in which the process operates. The definition of the process may be transformed by using factors relating to the specific context in or for which the definition is executed. Also, the definition may be transformed by identifying, in a flow diagram for the process, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.
    Type: Grant
    Filed: May 14, 2009
    Date of Patent: July 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
  • Patent number: 8769505
    Abstract: A method disclosed herein provides for receiving information relating to an event that occurred while processing server request from a compiled code snippet inserted into a compiled computer program, calculating diagnostic information relating to execution of the server request based on the received information, and providing the diagnostic information. Alternatively, a computer-readable medium, storing a set of instructions, is provided for, the instructions, when executed by a processor perform a method including, while a server request is being executed, receiving information from a compiled code snippet, in inserted into a compiled computer program, the received information relating to a thread starting to process the server request.
    Type: Grant
    Filed: January 24, 2011
    Date of Patent: July 1, 2014
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Piotr Findeisen
  • Patent number: 8762975
    Abstract: In performance tuning, a program is created by development engineers. Data A, data B, data C, . . . are given to the program to execute the program. Performance index values of functions for each data are measured. The results of the measurement are combined for each function and combining results and the number of times of combining (experience value) are obtained. Based on the combining results, the targets of the tuning functions are selected. Performance index values are combined for each function selected. The functions to be the tuning targets are output as tuning points.
    Type: Grant
    Filed: September 21, 2006
    Date of Patent: June 24, 2014
    Assignee: Fujitsu Semiconductor Limited
    Inventor: Chizuru Kashiwagi
  • Patent number: 8762366
    Abstract: A system and a method are disclosed for efficiently executing database queries using a computing device that includes a central processing unit (CPU) and a processing unit based on single instruction multiple thread (SIMT) architecture, for example, a GPU. A query engine determines a target processing unit to execute a database query based on factors including the type and amount of data processed by the query, the complexity of the query, and the current load on the processing units. An intermediate executable representation generator generates an intermediate executable representation for executing a query on a database virtual machine. If the query engine determines that the database query should be executed on an SIMT based processing unit, a native code generator generates native code from the intermediate executable representation. The native code is optimized for execution using a particular processing unit.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: June 24, 2014
    Assignee: MeLLmo Inc.
    Inventors: Santiago Becerra, Santiago E. Becerra, Alex C. Schaefer, John McInerney, Patrick Cheng
  • Patent number: 8752007
    Abstract: A method and apparatus for automatically generating a run-time instrumenter are disclosed. In accordance with the illustrative embodiment, an off-line analyzer first determines instrumentation locations for a program under test in accordance with a method called the Super Nested Block Method. After the instrumentation locations have been determined, source code for a run-time instrumenter is automatically generated based on the source code for the program under test and the instrumentation locations. The source code for the program under test and the run-time instrumenter are then compiled into executables, and a testing tool then executes the program under test and the run-time instrumenter in parallel.
    Type: Grant
    Filed: March 26, 2008
    Date of Patent: June 10, 2014
    Assignee: Avaya Inc.
    Inventors: Juan Jenny Li, David Mandel Weiss
  • Patent number: 8752026
    Abstract: A method for instrumenting a computer program, the method including identifying a program slice within a computer program, and instrumenting the program slice within the program.
    Type: Grant
    Filed: June 1, 2009
    Date of Patent: June 10, 2014
    Assignee: International Business Machines Corporation
    Inventors: Adi Sharabani, Omer Tripp
  • Patent number: 8745597
    Abstract: System, and computer program product for providing programming support to a debugger are disclosed. The debugger executes at least one debugger programming statement which modifies at least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.
    Type: Grant
    Filed: November 25, 2009
    Date of Patent: June 3, 2014
    Assignee: International Business Machines Corporation
    Inventors: Madhusudanan Kandasamy, Vidya Ranganathan