Data Flow Analysis Patents (Class 717/155)
  • Patent number: 8601458
    Abstract: Techniques for compiling a data stream processing application are provided. The techniques include receiving, by a compiler executing on a computer system, source code for a data stream processing application, wherein the source code comprises source code for a plurality of operators, each of which performs a data processing function, determining, by the compiler, one or more characteristics of operators within the data stream processing application, grouping, by the compiler, the operators into one or more execution containers based on the one or more characteristics, and compiling, by the compiler, the source code for the data stream processing application into executable code, wherein the executable code comprises a plurality of execution units, wherein each execution unit contains one or more of the operators, wherein each operator is assigned to an execution unit based on the grouping, and wherein each execution unit is to be executed in a partition.
    Type: Grant
    Filed: May 14, 2009
    Date of Patent: December 3, 2013
    Assignee: International Business Machines Corporation
    Inventors: Henrique Andrade, Bugra Gedik, Kun-Lung Wu
  • Patent number: 8601456
    Abstract: Various technologies and techniques are disclosed that provide software transactional protection of managed pointers. A software transactional memory system interacts with and/or includes a compiler. At compile time, the compiler determines that there are one or more reference arguments in one or more code segments being compiled whose source cannot be recovered. The compiler executes a procedure to select one or more appropriate techniques or combinations thereof for communicating the sources of the referenced variables to the called code segments to ensure the referenced variables can be recovered when needed. Some examples of these techniques include a fattened by-ref technique, a static fattening technique, a dynamic ByRefInfo type technique, and others. One or more combinations of these techniques can be used as appropriate.
    Type: Grant
    Filed: August 4, 2006
    Date of Patent: December 3, 2013
    Assignee: Microsoft Corporation
    Inventors: John Joseph Duffy, Michael M. Magruder, Goetz Graefe, David Detlefs
  • Patent number: 8572595
    Abstract: Computer-executed transformation of source code enables optimization of the code for one or more of parallelism, locality, and memory footprint of operations represented in the source code on a computing apparatus. This Abstract is provided for the sole purpose of complying with the Abstract requirement rules that allow a reader to quickly ascertain the subject matter of the disclosure contained herein. This Abstract is submitted with the explicit understanding that it will not be used to interpret or to limit the scope or the meaning of the claims.
    Type: Grant
    Filed: August 5, 2011
    Date of Patent: October 29, 2013
    Assignee: Reservoir Labs, Inc.
    Inventors: Richard A. Lethin, Allen K. Leung, Benoit J. Meister, Nicolas T. Vasilache
  • Patent number: 8566801
    Abstract: Techniques for generating concurrent static single assignment (CSSA) are provided. The techniques include generating a clocked control flow graph of a program, for each thread of the program created through async instruction, determining each part of the program that can execute concurrently with each thread to create a pair comprising a thread and a parallel program part, for each pair that can execute concurrently, using one or more flow equations to perform node-by-node matching, and using the node-by-node matching to generate CSSA form for the program.
    Type: Grant
    Filed: May 22, 2009
    Date of Patent: October 22, 2013
    Assignee: International Business Machines Corporation
    Inventors: Harshit J. Shah, Rudrapatna Kallikote Shyamasundar, Pradeep Varma
  • Patent number: 8561176
    Abstract: A system, method and computer program product are provided. In use, execution of a portion of internal code of an interface is identified. Further, in response to the execution of the portion of internal code, at least one aspect of an invocation of the interface is monitored and/or analyzed.
    Type: Grant
    Filed: January 24, 2007
    Date of Patent: October 15, 2013
    Assignee: McAfee, Inc.
    Inventor: Gregory William Dalcher
  • Patent number: 8555267
    Abstract: A mechanism for performing register allocation based on priority spills and assignments is disclosed. A method of embodiments of the invention includes repetitively detecting fat points during a compilation process of a software program running on a virtual machine of a computer system, each fat point representing a program point having a high register pressure, the high register pressure occurs when a number of live program variables of the software program living at a given program point of the software program is greater than a number of available processor registers of the computer system. The method further includes choosing a fat point with a highest register pressure, selecting a live program variable having a lowest priority at the chosen fat point, and spilling the lowest priority live program variable to memory of the computer system.
    Type: Grant
    Filed: March 3, 2010
    Date of Patent: October 8, 2013
    Assignee: Red Hat, Inc.
    Inventor: Vladimir Makarov
  • Patent number: 8543991
    Abstract: Idle processor cores can be used to compile methods that are likely to be executed by a program based on profile data that is captured during one or more previous executions. Methods that are determined by the profile data to be likely to be used can be compiled eagerly on one or more background threads. Transparency can be achieved by ensuring that module load order is not altered because of the background threads by recording the state of loaded modules after each profiled compilation, persisting that data, and waiting to eagerly compile a method until the method to be compiled and all its dependencies has been loaded by the executing program.
    Type: Grant
    Filed: March 10, 2011
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Subramanian Ramaswamy, David Hiniker-Roosa, Feng Yuan, Sedar Gokbulut, Ashok C. Kamath, Jan Kotas, Vance P. Morrison
  • Patent number: 8539466
    Abstract: A method of determining suitable insertion points for inserting string sanitizers in a computer code is provided herein. The method includes the following stages: obtaining: (i) a computer code associated with a data flow of externally supplied data, from one or more sources to one or more sinks, (ii) locations of the sources, and (iii) locations of the sinks; building a graph representing control paths, data paths and semantic relationships between the control paths and the data paths of the computer code; associating all tainted data paths on the graph, being data paths that go from sources to sinks and do not include a sanitizer; and determining, on the tainted data paths, potential control paths suitable for sanitizer insertion.
    Type: Grant
    Filed: May 23, 2011
    Date of Patent: September 17, 2013
    Assignee: International Business Machines Corporation
    Inventors: Aharon Abadi, Jonathan Bnayahu, Ran Ettinger, Yishai Abraham Feldman, Yinnon Avraham Haviv, Adi Sharabani
  • Patent number: 8527973
    Abstract: A computing device-implemented method includes receiving a program created by a technical computing environment, analyzing the program, generating multiple program portions based on the analysis of the program, dynamically allocating the multiple program portions to multiple software units of execution for parallel programming, receiving multiple results associated with the multiple program portions from the multiple software units of execution, and providing the multiple results or a single result to the program.
    Type: Grant
    Filed: August 22, 2011
    Date of Patent: September 3, 2013
    Assignee: The MathWorks, Inc.
    Inventors: John N. Little, Joseph F. Hicklin, Jocelyn Luke Martin, Nausheen B. Moulana, Halldor N. Stefansson, Loren Dean, Roy E. Lurie, Stephen C. Johnson, Penelope L. Anderson, Michael E. Karr, Jason A. Kinchen
  • Patent number: 8516229
    Abstract: A test code generation technique that replaces instructions having a machine state dependent result with special redirection instructions provides generation of test code in which state dependent execution choices are made without a state model. Redirection instructions cause execution of a handler than examines the machine state and replaces the redirection instruction with a replacement instruction having a desired result resolved in accordance with the current machine state. The instructions that are replaced may be conditional branch instructions and the result a desired execution path. The examination of the machine state permits determination of a branch condition for the replacement instruction so that the next pass of the test code executes along the desired path. Alternatively, the handler can execute a jump to the branch instruction, causing immediate execution of the desired branch path.
    Type: Grant
    Filed: February 5, 2010
    Date of Patent: August 20, 2013
    Assignee: International Business Machines Corporation
    Inventors: Allon Adir, Brad Lee Herold, John Martin Ludden, Pedro Martin-de-Nicolas, Charles Leverett Meissner, Gil Eliezer Shurek
  • Patent number: 8516467
    Abstract: A method and apparatus that utilizes techniques for formatting assembly and/or machine code, including using arrows, indentations and textual symbols, so that a programmer who reads the code has an enhanced understanding of the program flow. Different methods of assessing computing time complexity (e.g., the up branch method and the strongly connected subgraph method) have strengths and weaknesses but benefit from being used together.
    Type: Grant
    Filed: August 31, 2010
    Date of Patent: August 20, 2013
    Assignee: Nintendo Co., Ltd.
    Inventors: Nathaniel Guy, Chad Hinkle, Mark Jawad, Steve Rabin
  • Patent number: 8505001
    Abstract: A method and system are provided in which one or more processors may be operable to generate an intermediate representation of a shader source code, wherein the intermediate representation comprises one or more whole-program data flow graph representations of the shader source code. The one or more processors may be operable to generate machine code based on the generated intermediate representation of the shader source code. The one or more whole-program data flow graph representations of the shader source code may be generated utilizing a compiler front end. The machine code may be generated utilizing a compiler back end. The generated machine code may be executable by a graphics processor. The generated machine code may be executable by a processor comprising a single-instruction multiple-data (SIMD) architecture. The generated machine code may be executable to perform coordinate and/or vertex shading of image primitives.
    Type: Grant
    Filed: August 25, 2010
    Date of Patent: August 6, 2013
    Assignee: Broadcom Corporation
    Inventor: Eben Upton
  • Patent number: 8495606
    Abstract: A system performs operations comprising creating a call graph for a program translated from source code, identifying redundant exception handling code in the program utilizing the call graph, and removing the redundant exception handling code. The operation of identifying redundant exception handling code may comprise identifying at least one function or callsite by determining that a first function in the at least one function's or callsite's callee chain throws an exception and that the exception is handled by a second function in the function's or callsite's callee chain or by determining that an exception is not thrown in the at least one function's or callsite's callee chain. The operation of removing the redundant exception handling code may comprise removing redundant exception handling code included in at least one function or callsite and/or removing at least one entry for the at least one function or callsite from an exception lookup table.
    Type: Grant
    Filed: November 14, 2008
    Date of Patent: July 23, 2013
    Assignee: Oracle America, Inc.
    Inventors: Sheldon M. Lobo, Fu-Hwa Wang
  • Patent number: 8484630
    Abstract: Optimizing program code in a static compiler by determining the live ranges of variables and determining which live ranges are candidates for moving code from the use site to the definition site of source code. Live ranges for variables in a flow graph are determined. Selected live ranges are determined as candidates in which code will be moved from a use site within the source code to a definition site within the source code. Optimization opportunities within the source code are identified based on the code motion.
    Type: Grant
    Filed: December 23, 2008
    Date of Patent: July 9, 2013
    Assignee: International Business Machines Corporation
    Inventors: Shimin Cui, Raul Esteban Silvera
  • Patent number: 8473927
    Abstract: In general, in one aspect, the invention relates to a method for performing points-to analysis by generating a value flow graph for source code. The method steps include: initializing the value flow graph including a set of memory objects and a set of edges based on Base and Assignment instructions, where the set of edges represents inclusion constraints between the set of memory objects and a set of pointer variables; determining a pointed-to-by set including at least one pointer variable of the set of pointer variables; updating the value flow graph by introducing a flow edge based on an indirect reference, where the flow edge is related to a memory object of the set of memory objects that is added to a working list; updating the pointed-to-by set based on the memory object in the working list; and analyzing the source code using the pointed-to-by set.
    Type: Grant
    Filed: May 26, 2011
    Date of Patent: June 25, 2013
    Assignee: Oracle International Corporation
    Inventors: Lian Li, Cristina N. Cifuentes, Nathan Robert Albert Keynes
  • Patent number: 8473935
    Abstract: Pre-compiling postdominating functions. Some embodiments may be practiced in a computing environment including a runtime compilation. For example one method includes acts for compiling functions. The method includes determining that a function of an application has been called. A control flow graph is used to determine one or more postdominance relationships between the function and one or more other functions. The one or more other functions are assigned to be pre-compiled based on the postdominance relationship.
    Type: Grant
    Filed: April 21, 2008
    Date of Patent: June 25, 2013
    Assignee: Microsoft Corporation
    Inventor: Matthew B. Grice
  • Patent number: 8473933
    Abstract: A system and method for refactoring one or more call sites based on a revised signature. If the original call site is ordered, the refactored call site is generated by sorting the arguments based on the revised signature. Each unnamed argument is selectively changed to a named argument based on whether it is preceded by a named argument and whether its index value matches the index value of its corresponding parameter in the revised signature. If the original call site is unordered, the arguments preceding the first named argument are ordered. New arguments corresponding to new parameters are added and selectively made to be named arguments. New optional arguments may be included or omitted from the refactored call site.
    Type: Grant
    Filed: May 12, 2010
    Date of Patent: June 25, 2013
    Assignee: Microsoft Corporation
    Inventor: Theodore Yaung
  • Patent number: 8473924
    Abstract: Application profiles for applications stored on the endpoint are defined. An application profile identifies components on the endpoint associated with an application with which the application profile is associated. Applications on the endpoint accessed by a user to perform a task are monitored. A task profile associated with the task is created and stored, the task profile associated with the application profiles for the applications accessed by the user to perform the task.
    Type: Grant
    Filed: December 19, 2008
    Date of Patent: June 25, 2013
    Assignee: Symantec Corporation
    Inventors: Sourabh Satish, William E. Sobel
  • Patent number: 8458682
    Abstract: System and method for converting a class oriented data flow program to a structure oriented data flow program. A first data flow program is received, where the first data flow program is an object oriented program comprising instances of one or more classes, and wherein the first data flow program is executable to perform a first function. The first data flow program is automatically converted to a second data flow program, where the second data flow program does not include the instances of the one or more classes, and where the second data flow program is executable to perform the first function. The second data flow program is stored on a computer memory, where the second data flow program is configured to be deployed to a device, e.g., a programmable hardware element, and where the second data flow program is executable on the device to perform the first function.
    Type: Grant
    Filed: April 27, 2009
    Date of Patent: June 4, 2013
    Assignee: National Instruments Corporation
    Inventors: Stephen R. Mercer, Akash B. Bhakta, Matthew E. Novacek
  • Patent number: 8458650
    Abstract: In one embodiment, the invention comprises partial fault tolerant stream processing applications. One embodiment of a method for implementing partial fault tolerance in a stream processing application comprising a plurality of stream operators includes: defining a quality score function that expresses how well the application is performing quantitatively, injecting a fault into at least one of the plurality of operators, assessing an impact of the fault on the quality score function, and selecting at least one partial fault-tolerant technique for implementation in the application based on the quantitative metric-driven assessment.
    Type: Grant
    Filed: March 29, 2010
    Date of Patent: June 4, 2013
    Assignee: International Business Machines Corporation
    Inventors: Henrique Andrade, Bugra Gedik, Gabriela Jacques da Silva, Kun-Lung Wu
  • Patent number: 8451474
    Abstract: A host computer which generates a print job subjected to printing by a printer stores a drawing command output from an application in a spool file via a graphic engine. A spool system, the graphic engine, and a job chasing function processing unit execute a chasing data generation process by using the drawing command. The spool system, the graphic engine, and a graphics control unit execute a print data generation process by using the same drawing command. At this time, the drawing command is read out and output so as to successively execute the chasing data generation process and print data generation process. With this configuration, there are provided a method of protecting leakage of information by which the contents of information can be reliably chased without requiring either a special application or a device having a special function and posing any restriction on the read or output path, and an information processing apparatus and driver program which implement the method.
    Type: Grant
    Filed: November 18, 2005
    Date of Patent: May 28, 2013
    Assignee: Canon Kabushiki Kaisha
    Inventors: Yasuhiro Kujirai, Tatsuro Uchida, Masanori Aritomi, Hiroaki Nakata
  • Patent number: 8448157
    Abstract: One embodiment of a method for eliminating redundant operations establishing common properties includes identifying a first virtual register storing a first value having a common property. The method may assign the first virtual register to use a real register. The method may further identify a second virtual register storing a second value also having the common property. The method may assign the second virtual register to use the same real register after the first value is no longer live. As a result of assigning the second virtual register to the first real register, the method may eliminate an operation configured to establish the common property for the second virtual register since this operation is redundant and is no longer needed.
    Type: Grant
    Filed: October 26, 2010
    Date of Patent: May 21, 2013
    Assignee: International Business Machines Corporation
    Inventors: Marcel Mitran, Kishor V. Patil, Joran S. C. Siu, Mark G. Stoodley, Vijay Sundaresan
  • Patent number: 8443354
    Abstract: Detecting new or modified portions of executable code is disclosed. An indication is received that a prior version of an executable file has been replaced by a new version. A security response is provided if a process associated with the executable file attempts to perform a restricted action and a new or changed portion of code comprising the new version has executed. If no new or changed portion of code has executed, the restricted action is allowed to an extent determined previously for the prior version of the executable file.
    Type: Grant
    Filed: March 29, 2006
    Date of Patent: May 14, 2013
    Assignee: Symantec Corporation
    Inventors: Sourabh Satish, Brian Hernacki
  • Patent number: 8429631
    Abstract: A system and method for managing data, such as in a data warehousing, analysis, or similar applications, where dataflow graphs are expressed as reusable map components, at least some of which are selected from a library of components, and map components are assembled to create an integrated dataflow application. Composite map components encapsulate a dataflow pattern using other maps as subcomponents. Ports are used as link points to assemble map components and are hierarchical and composite allowing ports to contain other ports. The dataflow application may be executed in a parallel processing environment by recognizing the linked data processes within the map components and assigning threads to the linked data processes.
    Type: Grant
    Filed: September 14, 2010
    Date of Patent: April 23, 2013
    Assignee: Pervasive Software, Inc.
    Inventors: Larry Lee Schumacher, Agustin Gonzales-Tuchmann, Laurence Tobin Yogman, Paul C. Dingman
  • Patent number: 8423977
    Abstract: System and method for converting a class oriented data flow program to a structure oriented data flow program. A first data flow program is received, where the first data flow program is an object oriented program comprising instances of one or more classes, and wherein the first data flow program is executable to perform a first function. The first data flow program is automatically converted to a second data flow program, where the second data flow program does not include the instances of the one or more classes, and where the second data flow program is executable to perform the first function. The second data flow program is stored on a computer memory, where the second data flow program is configured to be deployed to a device, e.g., a programmable hardware element, and where the second data flow program is executable on the device to perform the first function.
    Type: Grant
    Filed: April 27, 2009
    Date of Patent: April 16, 2013
    Assignee: National Instruments Corporation
    Inventors: Stephen R. Mercer, Akash B. Bhakta, Matthew E. Novacek
  • Patent number: 8413150
    Abstract: A method includes providing a baseline workflow as an electronic representation of an actual workflow, the baseline workflow including baseline tasks, data items, and baseline data scopes, and providing a fragment workflow as an electronic representation of an actual fragment workflow, the fragment workflow including at least one fragment task, and at least one fragment data scope. A baseline data scope is identified as an affected data scope based on a structural change operation, the baseline workflow and the fragment workflow, and the affected data scope is compared to the at least one fragment data scope to identify at least one change operation. The fragment and baseline workflows are integrated based on the structural change operation to provide an integrated workflow, and the at least one data scope change operation is executed to provide at least one integrated data scope in the integrated workflow.
    Type: Grant
    Filed: July 31, 2009
    Date of Patent: April 2, 2013
    Assignee: SAP AG
    Inventors: Ruopeng Lu, Marek Kowalkiewicz, Marita Kruempelmann, Stefan Baeuerle
  • Patent number: 8402429
    Abstract: In an embodiment, a predicate condition that compares a predicate variable to a compared value is determined. The predicate condition is in a predicate block that exists on a path to a current block that accesses a current variable. A decision is made whether the current variable and the predicate variable are defined by a sub-clique and whether a member of the sub-clique sets the predicate variable to a predicate value that causes control flow to take the path from the predicate block to the current block. Upon a determination that the current variable and the predicate variable are defined by the sub-clique and the member of the sub-clique sets the predicate variable to the predicate value that causes control flow to take the path from the predicate block to the current block, then contents for the current variable are calculated and first object code is generated, which loads the contents.
    Type: Grant
    Filed: August 13, 2010
    Date of Patent: March 19, 2013
    Assignee: International Business Machines Corporation
    Inventor: Allan H. Kielstra
  • Patent number: 8397213
    Abstract: The invention relates to programming hardware for useful data processing also used in the form of a suitable graphical editor. The inventive method consists in providing a plurality of modules, wherein each module can carry out at least one function for useful data processing, in defining the module connecting interfaces, in establishing, by a user, an additional connection of modules (topology) corresponding to a sequence of functions suitable for useful data processing, in classifying the modules into a plurality of module types according to predefined properties, in defining connection rules indicating admissible connections for different module types according to said types of modules in programming the hardware according to said topology.
    Type: Grant
    Filed: September 19, 2006
    Date of Patent: March 12, 2013
    Assignee: Silicon Software GmbH
    Inventors: Ralf Lay, Klaus-Henning Noffz
  • Patent number: 8392013
    Abstract: A method for automating a process includes the following steps: providing a user interface which graphically presents a plurality of icons to a user, wherein each icon represents an operation step having at least one input and at least one output; enabling the user to select one or more of the icons; enabling the user to form connections between the selected icons to represent data flow between the operation steps represented by the icons; and generating computer instructions for executing the operation steps corresponding to the selected icons, and in accordance with the connections, in such a way that each operation step can only be executed when data is present at all of its inputs, and cannot be executed when data is absent at any one of its inputs.
    Type: Grant
    Filed: January 27, 2006
    Date of Patent: March 5, 2013
    Assignee: Microgen Aptitude Limited
    Inventors: Neil Thomson, Grzegorz R. Pusz
  • Patent number: 8381193
    Abstract: An apparatus, system, and method are disclosed for visual log analysis. The apparatus for visual log analysis is provided with a plurality of modules configured to functionally execute the necessary steps of retrieving log entries from a plurality of devices on a network, parsing the log entries to determine an execution flow of commands executed of the network, and displaying a graphical representation of such execution on the network. These modules in the described embodiments include a log consolidation module, a parsing module, and a display module.
    Type: Grant
    Filed: September 6, 2007
    Date of Patent: February 19, 2013
    Assignee: International Business Machines Corporation
    Inventor: Ezequiel Cervantes
  • Patent number: 8381178
    Abstract: The system and method in one aspect allow understanding of Boolean expressions by representing them graphically as a flow of information. NOTs are represented as switches in the flow, capturing the original structure of the expression as written by the user. Verification of those expressions with live data is also enabled.
    Type: Grant
    Filed: July 2, 2009
    Date of Patent: February 19, 2013
    Assignee: International Business Machines Corporation
    Inventors: Jacquelyn A. Martino, Paul M. Matchen, Rosario A. Uceda-Sosa
  • Patent number: 8356289
    Abstract: A mechanism for encoding and reporting instrumented data is disclosed that requires less storage space and incurs less processor overhead than other methods of the prior art. In accordance with the illustrative embodiment, a bit vector in shared memory corresponds to nodes of a program's control-flow graph that have been instrumented, and the contents of the vector indicate which of these nodes have executed; in addition, character strings in shared memory indicate what file, class, and method each node belongs to. A process that executes concurrently with those of the program under test transmits instrumented data from the shared memory to a database. The illustrative embodiment enables efficient, rapid reporting and storage of instrumented data, and is therefore especially well-suited for run-time analysis of real-time concurrent systems.
    Type: Grant
    Filed: September 29, 2008
    Date of Patent: January 15, 2013
    Assignee: Avaya Inc.
    Inventors: Juan Jenny Li, David Mandel Weiss
  • Patent number: 8347375
    Abstract: The intrusion detection function monitors for and reports detected intrusion signatures. The dynamic intrusion signatures function determines whether reported intrusion signatures exist in a library of signatures associated with a particular intrusion detection function. If the reported signature does not exist in the library, the library is updated. Detected intrusion signatures are reported to similarly enabled devices for library analysis and updating, if necessary. The related method includes the steps of monitoring for intrusion signatures or other triggering events, analyzing the events and updating IDS signature libraries as necessary.
    Type: Grant
    Filed: October 1, 2004
    Date of Patent: January 1, 2013
    Assignee: Enterasys Networks, Inc.
    Inventors: Richard W. Graham, John J. Roese
  • Patent number: 8341612
    Abstract: Disclosed are a method and system for optimized, dynamic data-dependent program execution. The disclosed system comprises a statistics computer which computes statistics of the incoming data at the current time instant, where the said statistics include the probability distribution of the incoming data, the probability distribution over program modules induced by the incoming data, the probability distribution induced over program outputs by the incoming data, and the time-complexity of each program module for the incoming data, wherein the said statistics are computed on as a function of current and past data, and previously computed statistics; a plurality of alternative execution path orders designed prior to run-time by the use of an appropriate source code; a source code selector which selects one of the execution path orders as a function of the statistics computed by the statistics computer; a complexity measurement which measures the time-complexity of the currently selected execution path-order.
    Type: Grant
    Filed: May 16, 2007
    Date of Patent: December 25, 2012
    Assignee: International Business Machines Corporation
    Inventors: Dake He, Ashish Jagmohan, Jian Lou, Ligang Lu
  • Patent number: 8341613
    Abstract: Embodiments of the invention provide a method for reducing stack space consumption via a head-call optimization. When compiling the source code of a computer application, a compiler application may be configured to analyze program flow to identify a “head-call” within any functions included in the program source code. Once identified, the “head-call” may be removed during program compilation. Doing so may reduce the number of elements pushed onto a program's stack space during program execution.
    Type: Grant
    Filed: December 4, 2007
    Date of Patent: December 25, 2012
    Assignee: International Business Machines Corporation
    Inventors: Aran Donohue, Ian Richard Finlay
  • Patent number: 8316357
    Abstract: The efficient use of type descriptors with frozen objects. A frozen object might actually include several type descriptors, a primary type descriptor that is canonical according to a set of canonicalization rules, and an auxiliary type descriptor that is not identical to the primary type descriptor. The auxiliary type descriptor may be used to access the canonical type descriptor. When performing an operation, if the auxiliary type descriptor can be used to perform the operation, then that auxiliary type descriptor may be used. If the canonical type descriptor is to be used to perform the operation, the auxiliary type descriptor is used to gain access to the canonical primary type descriptor. The primary type descriptor is then used to perform the operation.
    Type: Grant
    Filed: September 3, 2008
    Date of Patent: November 20, 2012
    Assignee: Microsoft Corporation
    Inventors: Scott D. Mosier, Peter F. Sollich, Frank V. Peschel-Gallee, Patrick H. Dussud, Simon J. Hall, Rudi Martin, Michael M. Magruder, Andrew Pardoe, Madhusudhan Talluri
  • Patent number: 8316311
    Abstract: A system and method for visually indicating one or more problems in a graphical program. The graphical program may be programmatically analyzed to discover a problem (or potential problem) in the graphical program. The problem found during the programmatic analysis of the graphical program may then be visually indicated on a display device. Visually indicating the problem may comprise visually indicating one or more objects in the graphical program to which the problem corresponds. Visually indicating the graphical program object(s) may comprise displaying information or altering the appearance of the object(s) in order to call the user's attention to the object(s).
    Type: Grant
    Filed: November 13, 2009
    Date of Patent: November 20, 2012
    Assignee: National Instruments Corporation
    Inventor: Darren M. Nattinger
  • Patent number: 8312062
    Abstract: Preventing a resource leak is disclosed. An indication that an implementation object is no longer referenced by a user of the implementation object is received. The implementation object is prevented from becoming unavailable until after it is determined whether a resource associated with the implementation object is released.
    Type: Grant
    Filed: March 29, 2006
    Date of Patent: November 13, 2012
    Assignee: EMC Corporation
    Inventors: Victor Spivak, Alex Oscherov, David Buccola
  • Patent number: 8302084
    Abstract: A technique is disclosed for correcting inconsistent language model parameters associated with a compiled computer readable project. One or more compiled units are analyzed to identify compiler commentary therein. Based on the debugging information, it is determined whether inconsistent language model parameters exist. If so, a user is allowed to apply a correction strategy to correct the one or more inconsistent parameters.
    Type: Grant
    Filed: November 9, 2007
    Date of Patent: October 30, 2012
    Assignee: Oracle America, Inc.
    Inventors: Alexander Simon, Andrew Krasny
  • Patent number: 8289884
    Abstract: A method and system for identifying unknown illicit networks uses node data, link data, and network data in a recursive analysis that computes node probabilities by combining patterns based on nodes, links and the topology of the network structure present simultaneously in the data. An iterative balancing algorithm is used to make the probability values self-consistent.
    Type: Grant
    Filed: January 14, 2009
    Date of Patent: October 16, 2012
    Assignee: Dulles Research LLC
    Inventors: Vladimir Fishman, William A. Eginton, Yuri Galperin
  • Patent number: 8281290
    Abstract: A method may include mapping a first program to a context-free grammar. Grammar transformations may be performed on the context-free grammar to produce a transformed context-free grammar representing the first program. A second program having a program structure different than a program structure of the first program may be constructed from the transformed context-free grammar.
    Type: Grant
    Filed: January 31, 2008
    Date of Patent: October 2, 2012
    Assignee: Alcatel Lucent
    Inventor: Gerald R. Thompson
  • Patent number: 8271956
    Abstract: A method, system and program product for dynamically adjusting trace buffer capacity based on execution history. The method includes receiving, by a module configured to trace, a plurality of traces pertaining to one or more trace events generated during execution of a program being traced, the trace events generated including panel data and sequence data. The method further includes determining, using trace data captured from the plurality of traces received, whether or not a path for a trace event is a new path. If the path for the trace event is determined to be a new path, the method includes dynamically adjusting, by the module, an initial size of a trace buffer configured to store the trace data captured, such that, the module increases the initial size of the trace buffer upon making a determination that the trace event is a new trace event based on execution history.
    Type: Grant
    Filed: February 7, 2008
    Date of Patent: September 18, 2012
    Assignee: International Business Machines Corporation
    Inventors: Michael J. Howland, Paul E. Rogers
  • Patent number: 8266606
    Abstract: A mechanism is provided for increasing efficiency of tasks by observing the performance of generally equivalent code paths during execution of the task are disclosed. Embodiments involve a computer system with software, or hard-coded logic that includes reflexive code paths. The reflexive code paths may be identified by a software or hardware designer during the design of the computer system. For that particular computer system, however, one of the code paths may offer better performance characteristics so a monitor collects performance data during execution of the reflexive code paths and a code path selector selects the reflexive code with favorable performance characteristics. One embodiment improves the performance of memory allocation by selectively implementing a tunable, linear, memory allocation module in place of a default memory allocation module.
    Type: Grant
    Filed: May 13, 2008
    Date of Patent: September 11, 2012
    Assignee: International Business Machines Corporation
    Inventor: Marc Alan Dickenson
  • Patent number: 8255911
    Abstract: According to one embodiment, parallel processing optimization method for an apparatus configured to assign dynamically a part of some of basic modules, into which a program is divided and which comprise a execution rule which defines a executing order of the basic modules and are executable asynchronously with another modules, to threads includes identifiers based on the execution rule wherein the some of the basic modules are assignable to the threads, and configured to execute in parallel the threads by execution modules, the method includes managing the part of some of the basic modules and the identifiers of the threads assigned the part of some of the basic modules, managing an executable set includes the some of the basic modules, calculating transfer costs of the some of the basic modules when data, and selecting one of the basic module with a minimum transfer cost in the transfer costs.
    Type: Grant
    Filed: April 27, 2010
    Date of Patent: August 28, 2012
    Assignee: Kabushiki Kaisha Toshiba
    Inventor: Ryuji Sakai
  • Patent number: 8255891
    Abstract: A computer-implemented method and system for improved data flow analysis and optimization are disclosed. The method and system generates data flow analysis information from vectorized processing components, the data flow analysis information including an input information set and an output information set, generates hole information from the vectorized processing components, selects needed holes based on the input information set, the output information set, and the hole information, and modifies a portion of the data flow analysis 10 information by retaining needed holes and removing holes not identified as needed holes from the vectorized processing components.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: August 28, 2012
    Assignee: Intel Corporation
    Inventors: Zhenqiang Chen, Lei Jin, Jiangang Zhuang
  • Patent number: 8250553
    Abstract: A method for detecting problems caused by access to incompletely initialized data storage in assembler programs includes generating an internal representation of control flow of the source code of the assembler program including nodes for every statement found in the source code and a directed edge for every possible flow of control between the nodes. The method also includes: attributing data attributes to the nodes and/or the edges, wherein the data attributes are used to store the information how many bits within the data storage can be guaranteed to be initialized; applying a data-flow analysis method to the internal representation of the control flow of the source code for determining how many bits of the data storage can be guaranteed to be initialized; checking for each node whether the instruction reads more bits than are guaranteed to be initialized; and generating one or more error messages responsive to the problem.
    Type: Grant
    Filed: March 26, 2007
    Date of Patent: August 21, 2012
    Assignee: International Business Machines Corporation
    Inventor: Wolfgang Gellerich
  • Patent number: 8245211
    Abstract: The present invention provides a system and method for detecting problems caused by access to incompletely initialized data storage in assembler and high-level language programs. An internal representation of the control flow of the source code of the assembler program is generated and a data-flow analysis method is applied to the internal representation.
    Type: Grant
    Filed: May 30, 2008
    Date of Patent: August 14, 2012
    Assignee: International Business Machines Corporation
    Inventor: Wolfgang Gellerich
  • Patent number: 8239847
    Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program written in a high-level language are automatically translated into a distributed execution plan. Map and reduction computations are automatically added to the plan. Patterns in the sequential program can be automatically identified to trigger map and reduction processing. Direct invocation of map and reduction processing is also provided. One or more portions of the reduce computation are pushed to the map stage and dynamic aggregation is inserted when possible. The system automatically identifies opportunities for partial reductions and aggregation, but also provides a set of extensions in a high-level computing language for the generation and optimization of the distributed execution plan. The extensions include annotations to declare functions suitable for these optimizations.
    Type: Grant
    Filed: March 18, 2009
    Date of Patent: August 7, 2012
    Assignee: Microsoft Corporation
    Inventors: Yuan Yu, Pradeep Kumar Gunda, Michael A Isard
  • Patent number: 8239844
    Abstract: A computing device-implemented method includes receiving a program, analyzing and transforming the program, determining an inner context and an outer context of the program based on the analysis of the program, and allocating one or more portions of the inner context of the program to two or more labs for parallel execution. The method also includes receiving one or more results associated with the parallel execution of the one or more portions from the two or more labs, and providing the one or more results to the outer context of the program.
    Type: Grant
    Filed: October 20, 2008
    Date of Patent: August 7, 2012
    Assignee: The MathWorks, Inc.
    Inventors: Halldor N. Stefansson, Brett Baker, Edric Ellis, Joseph F. Hicklin, John N. Little, Jocelyn Luke Martin, Piotr R. Luszczek, Nausheen B. Moulana, Loren Dean, Roy E. Lurie
  • Patent number: 8234637
    Abstract: In an implementation, a computing device-implemented method includes identifying a non-blocking block in a graphical block diagram that includes the non-blocking block and other blocks, the other blocks including one or more non-blocking blocks, one or more blocking blocks, or a combination of one or more non-blocking blocks and one or more blocking blocks, determining whether one or more of the other blocks are dependent on an output from the non-blocking block, and partitioning execution of the non-blocking block into two or more execution stages, generating an order of execution of the graphical blocks, the order including a first stage of execution of the two or more execution stages for the non-blocking block, followed by an execution of one or more of the other blocks that have been determined not be dependent on the output from the non-blocking block, followed by a second stage of execution of the two or more execution stages.
    Type: Grant
    Filed: September 11, 2009
    Date of Patent: July 31, 2012
    Assignee: The Mathworks, Inc.
    Inventors: Rajiv Ghosh-Roy, John Edward Ciolfi