Data Flow Analysis Patents (Class 717/155)
-
Patent number: 9013574Abstract: A machine vision system program editing environment including synchronized selection and/or identification of related features in a plurality of different user interface windows is provided. In particular, one of the windows is an editing window where a part program representation is displayed for editing by a user. In one embodiment, a user may select data or another feature of interest in a window that is not the editing window (e.g., a results window, or graphical workpiece inspection feature display window) and the associated part program instruction representation is automatically highlighted and/or selected in the editing window. Conversely, a part program instruction representation may be selected by a user in the editing window and the associated results or feature in another window is automatically highlighted and/or selected. User interface navigation, rapid program quality assessment, and overall part program creation and editing efficiency are significantly enhanced in such an editing environment.Type: GrantFiled: November 13, 2012Date of Patent: April 21, 2015Assignee: Mitutoyo CorporationInventors: Barry Saylor, Ryan Northrup, Akira Takada, Kozo Ariga
-
Patent number: 9003377Abstract: 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: GrantFiled: January 7, 2010Date of Patent: April 7, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Neal M. Gafter, Mads Torgersen, Henricus Johannes Maria Meijer, Niklas Gustafsson
-
Patent number: 8997065Abstract: A device creates a graph based on source code, and analyzes the source code to identify private variables and functions of the source code and public variables and functions of the source code. The device determines, based on the graph, a size threshold and semantics-related characteristics of functions and variables for each module, of multiple modules, and assigns, based on the graph, the private variables and functions to a corresponding module of the multiple modules. The device reduces, based on the graph, a number of the public variables and functions assigned to each module, and generates the multiple modules based on one or more of the graph, the size threshold, the assigned private variables and functions, and the number of the public variables and functions assigned to each module.Type: GrantFiled: December 3, 2012Date of Patent: March 31, 2015Assignee: The MathWorks, Inc.Inventors: Michael E. Karr, Gael Mulat
-
Publication number: 20150067660Abstract: A method includes inspecting function summaries generated during a static analysis of a program and identifying a set of function summaries for a same method that have structural similarities. The method includes replacing the set of structurally similar summaries with a coarse summary. The method further includes using the coarse summary in subsequent static analysis operations. Apparatus and program products are also disclosed.Type: ApplicationFiled: August 27, 2013Publication date: March 5, 2015Applicant: International Business Machines CorporationInventors: Marco Pistoia, Omer Tripp
-
Patent number: 8957960Abstract: A machine vision system program editing environment includes near real time context generation. Rather than requiring execution of all preceding instructions of a part program in order to generate a realistic context for subsequent edits, surrogate data operations using previously saved data replace execution of certain sets of instructions. The surrogate data may be saved during the actual execution of operations that are recorded in a part program. An edit mode of execution substitutes that data as a surrogate for executing the operations that would otherwise generate that data. Significant time savings may be achieved for context generation, such that editing occurs within an operating context which may be repeatedly refreshed for accuracy in near real time. This supports convenient program modification by relatively unskilled users, using the native user interface of the machine vision system, rather than difficult to use text-based or graphical object-based editing environments.Type: GrantFiled: November 15, 2011Date of Patent: February 17, 2015Assignee: Mitutoyo CorporationInventors: Barry Saylor, Dahai Yu, Ryan Northrup, Gyokubu Cho, Akira Takada
-
Patent number: 8959499Abstract: A data parallel pipeline may specify multiple parallel data objects that contain multiple elements and multiple parallel operations that operate on the parallel data objects. Based on the data parallel pipeline, a dataflow graph of deferred parallel data objects and deferred parallel operations corresponding to the data parallel pipeline may be generated and one or more graph transformations may be applied to the dataflow graph to generate a revised dataflow graph that includes one or more of the deferred parallel data objects and deferred, combined parallel data operations. The deferred, combined parallel operations may be executed to produce materialized parallel data objects corresponding to the deferred parallel data objects.Type: GrantFiled: September 20, 2013Date of Patent: February 17, 2015Assignee: Google Inc.Inventors: Craig D. Chambers, Ashish Raniwala, Frances J. Perry, Stephen R. Adams, Robert R. Henry, Robert Bradshaw, Nathan Weizenbaum
-
Patent number: 8954943Abstract: A method for analyzing data reordering operations in Single Issue Multiple Data source code and generating executable code therefrom is provided. Input is received. One or more data reordering operations in the input are identified and each data reordering operation in the input is abstracted into a corresponding virtual shuffle operation so that each virtual shuffle operation forms part of an expression tree. One or more virtual shuffle trees are collapsed by combining virtual shuffle operations within at least one of the one or more virtual shuffle trees to form one or more combined virtual shuffle operations, wherein each virtual shuffle tree is a subtree of the expression tree that only contains virtual shuffle operations. Then code is generated for the one or more combined virtual shuffle operations.Type: GrantFiled: January 26, 2006Date of Patent: February 10, 2015Assignee: International Business Machines CorporationInventors: Alexandre E. Eichenberger, Kai-Ting Amy Wang, Peng Wu, Peng Zhao
-
Patent number: 8935682Abstract: A device initiates a technical computing environment (TCE), and receives, via the TCE, a program command that permits the TCE to access a graphical processing unit that is remote to the device, where the program command permits the TCE to seamlessly transfer data to the remote GPU. The device transforms, via the TCE, the program command into a program command that is executable by the remote GPU, and provides the transformed program command to the remote GPU for execution. The device also receives, from the remote GPU, one or more results associated with execution of the transformed program command by the remote GPU, and utilizes the one or more results via the TCE.Type: GrantFiled: September 6, 2013Date of Patent: January 13, 2015Assignee: The MathWorks, Inc.Inventors: Halldor N. Stefansson, Edric Ellis, Jocelyn Luke Martin
-
Patent number: 8930921Abstract: According to one embodiment of the present invention, a computer system is provided where the computer system includes a main processor, first and second active memory device. The computer system is configured to perform a method including receiving an executable module generated by a compiler, wherein the executable module includes a code section identified as executable by a first processing element in the first active memory device and a second processing element in the second active memory device. The method includes copying the code section to memory in the first device based on the code section being executable on the first device, copying the code section from the first active memory device to an instruction buffer of the first processing element and copying the code section from the first device to the second device based on the code section being executable on the second device.Type: GrantFiled: November 20, 2012Date of Patent: January 6, 2015Assignee: International Business Machines CorporationInventors: Tong Chen, John K. O'Brien, Zehra Sura
-
Patent number: 8910145Abstract: A system, method and device for installation and/or deinstallation of at least one software module, with centralized resolution of constraints, in aircraft equipment items. After having received a list of software module references, the list comprising at least one reference to the at least one software module, and at least one command, linked to the at least one reference, for installation of deinstallation of the at least one software module, the constraints are accessed. This access is independent of the access to the at least one software module. A sequence of basic operations resolving the constraints then is evaluated for applying the at least one command to the at least one reference.Type: GrantFiled: March 12, 2012Date of Patent: December 9, 2014Assignee: Airbus Operations SASInventors: Thierry Baraldi, William Barsse
-
Patent number: 8910134Abstract: 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: GrantFiled: January 3, 2013Date of Patent: December 9, 2014Assignee: Oracle International CorporationInventors: Sungpack Hong, Hassan Chafi, Eric Sedlar
-
Patent number: 8902307Abstract: A machine vision system editing environment is provided for a part program in which a continuous stream of image acquisition operations are performed during a run mode. In one embodiment, a new common syntax and representations are utilized wherein continuous image acquisition operations are recorded in the same way as regular operations, with the running of the part program being performed in two stages. In the first stage, the portion of the part program that is to have the continuous stream of image acquisition is scanned for image acquisition operations, and the most efficient order for acquiring the images is determined, after which the image acquisition process is begun. Then, in the second stage, while the image acquisition process is being performed, the portion of the part program is scanned again, with the image analysis operations then being performed.Type: GrantFiled: November 15, 2011Date of Patent: December 2, 2014Assignee: Mitutoyo CorporationInventors: Mark Delaney, Barry Saylor
-
Patent number: 8904371Abstract: 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: GrantFiled: June 19, 2012Date of Patent: December 2, 2014Assignee: Telefonaktiebolaget L M Ericsson (publ)Inventors: Charles Chen Xu, Johan Eker, Carl Von Platen
-
Patent number: 8893101Abstract: A method, computer program product, and system for performing a hybrid dependency analysis is described. According to an embodiment, a method may include computing, by one or more computing devices, one or more dynamic hints based on a finite set of executions of a computer program. The method may further include performing, by the one or more computing devices, a hybrid dependence analysis of one or more statements of the computer program.Type: GrantFiled: December 21, 2012Date of Patent: November 18, 2014Assignee: International Business Machines CorporationInventor: Omer Tripp
-
Patent number: 8893080Abstract: 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: GrantFiled: August 15, 2012Date of Patent: November 18, 2014Assignee: Telefonaktiebolaget L M Ericsson (Publ)Inventors: Carl Von Platen, Charles Chen Xu, Song Yuan
-
Patent number: 8863093Abstract: A method to instrument program code for a virtual machine that comprises, in the course of loading a class to a virtual machine, adding code to the class to declare a field that corresponds to a field declared in a first bootstrap class.Type: GrantFiled: March 6, 2009Date of Patent: October 14, 2014Assignee: Coverity, Inc.Inventors: Andy Chou, John Kodumal
-
Patent number: 8856767Abstract: 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: GrantFiled: April 29, 2011Date of Patent: October 7, 2014Assignee: Yahoo! Inc.Inventors: Rohit Jalan, Arun Kejariwal
-
Patent number: 8850410Abstract: 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: GrantFiled: January 29, 2010Date of Patent: September 30, 2014Assignee: International Business Machines CorporationInventors: Ramanjaneya S. Burugula, Joefon Jann, Pratap C. Pattnaik
-
Patent number: 8849747Abstract: Systems, methods, apparatus, and computer-readable media for business process management include identifying a business process model generated with a business process modeling tool; transforming the business process model defined in a first format to one or more artifacts defined in a second format; deploying an output file defined by the one or more artifacts in an in-memory database; and executing the output file in the in-memory database base at least in part on one or more processes executing in the in-memory database in response to a received query for data stored in the in-memory database.Type: GrantFiled: April 24, 2012Date of Patent: September 30, 2014Assignee: SAP AGInventors: Sören Balko, Kesavaprakash Vasudevan
-
Patent number: 8839217Abstract: A method for efficiently solving the “use-def” problem involving label variables performs a data-flow analysis on a control flow graph that includes calculating an inset for each node as follows: if a predecessor node directly branches to the node, the method includes an outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is in definitions of the label variable in the outset of the predecessor node, the method includes the outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is not in definitions of the label variable in the outset of the predecessor node, the method does not include the outset of the predecessor node in the inset of the node.Type: GrantFiled: March 15, 2013Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventor: Allan Henry Kielstra
-
Patent number: 8839248Abstract: A framework is provided for automatic inference of memory fences in concurrent programs. A method is provided for generating a set of ordering constraints that prevent executions of a program violating a specification. One or more incoming avoidable transitions are identified for a state and one or more ordering constraints are refined for the state. The set of ordering constraints are generated by taking a conjunction of ordering constraints for all states that violate the specification. One or more fence locations can optionally be selected based on the generated set of ordering constraints.Type: GrantFiled: May 28, 2010Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventors: Michael Kuperstein, Martin Vechev, Eran Yahav
-
Patent number: 8839213Abstract: A compiler is provided that determines when the use of software transactional memory (STM) primitives may be optimized with respect to a set of collectively dominating STM primitives. The compiler analysis coordinates the use of variables containing possible shadow copy pointers to allow the analysis to be performed for both direct write and buffered write STM systems. The coordination of the variables containing the possible shadow copy pointers ensures that the results of STM primitives are properly reused. The compiler analysis identifies memory accesses where STM primitives may be eliminated, combined, or substituted for lower overhead STM primitives.Type: GrantFiled: June 27, 2008Date of Patent: September 16, 2014Assignee: Microsoft CorporationInventors: David L. Detlefs, Michael M. Magruder, Yosseff Levanoni, Vinod K. Grover
-
Patent number: 8826253Abstract: 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: GrantFiled: December 15, 2008Date of Patent: September 2, 2014Assignee: Apple Inc.Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien
-
Publication number: 20140237459Abstract: A method of statically testing dependence in a dataflow program is provided, the method comprising receiving a dataflow program which provides parameters, including consumption rates, production rates on connections between actors in the program and a number of initial samples (delays) on the connections, generating from the parameters a model of a precedence graph for the dataflow program representing dependence constraints between distinct firings of the number of actors. For the model, determining a feedback distance between multiple firings of a same actor, determining sets of parallel regions comprising a given number of actor firings of a same actor, composing mutually independent component regions comprising at least a part of the sets of parallel regions, and composing one or more composite regions comprising one or more component regions and/or one or more sets of parallel regions, being composed so that a pre-determined criteria is satisfied.Type: ApplicationFiled: October 3, 2011Publication date: August 21, 2014Applicant: Telefonaktiebolaget L M Ericsson (publ)Inventors: Carl Von Platen, Johan Eker
-
Patent number: 8813044Abstract: 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: GrantFiled: September 6, 2012Date of Patent: August 19, 2014Assignee: International Business Machines CorporationInventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
-
Patent number: 8806461Abstract: Systems and methods for using memory usage to pinpoint sub-optimal code for gaming systems are provided herein. Memory usage characteristics, such as latency, cache misses, load-hit-store, memory address misuse, and wasted cache bandwidth are presented, preferably in a graphical format, to provide the developer with information for optimizing source code. A trace analysis is performed on source code undergoing optimization. Relevant data is extracted from the trace analysis, sorted as necessary, and presented to the user. The user may be presented with multiple results sorting mechanisms as well as ways to change the presentation of the results.Type: GrantFiled: June 21, 2007Date of Patent: August 12, 2014Assignee: Microsoft CorporationInventors: David Floyd Aronson, Parham Mohadjer, Matthew Russell Kimball, Bruce Michael Dawson
-
Patent number: 8806464Abstract: Embodiments disclosed herein relate to a process flow optimized directed graph traversal. In one embodiment, a processor performs a depth first traversal of the optimized directed graph where a node from a first node is not traversed until the nodes before the first node are traversed. The processor may output information associated with the nodes based on the traversal.Type: GrantFiled: April 26, 2012Date of Patent: August 12, 2014Assignee: Hewlett-Packard Development Company, L.P.Inventor: David Bryan Dewey
-
Patent number: 8799852Abstract: System and method for performing program-related operations over a network via a web browser. A network connection is established between a server computer and a client computer over a network. A universal resource identifier (URI) is sent from the client computer to the server computer over the network, where the URI indicates a program, e.g., a graphical program (GP), or at least a portion of a graphical program interactive development environment (GPIDE), e.g., a graphical program editor, an execution engine, a static or dynamic analyzer, and/or compiler. The at least a portion of the GPIDE is received from the server computer over the network in response to the URI, and executed in a web browser of the client computer to perform some specified functionality with respect to the GP.Type: GrantFiled: October 2, 2009Date of Patent: August 5, 2014Assignee: National Instruments CorporationInventor: Mohammed Kamran Shah
-
Patent number: 8776014Abstract: A method or software program that provides an analysis of a build, which can provide a developer with views of the build processes, is disclosed. Data is collected from the build. The collected data can include information regarding file access patterns from determining which files are accessed for read and which files are accessed for write by one or more software build tools and project interdependencies. The collected data can also include certain project properties, build configurations, intermediate directories such as logs, and other metadata of the build. The collected data is injected into a relational database that can be queried. Reports can be generated from the information stored in the database by tools that depict built projects and interdependencies. For example, the tools can be used to generate visualizations such as graphs.Type: GrantFiled: September 23, 2010Date of Patent: July 8, 2014Assignee: Microsoft CorporationInventors: Andrew Layne Arnott, Kieran Paul Mockford, Dan James Moseley
-
Patent number: 8769507Abstract: 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: GrantFiled: May 14, 2009Date of Patent: July 1, 2014Assignee: International Business Machines CorporationInventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
-
Patent number: 8769496Abstract: Systems and methods are provided for handling database deadlocks induced by database-centric applications (DCAs). SQL statements and transactions associated with the DCAs are analyzed and parsed to generate Petri net models. A supervisory modeler generates augmented Petri net models based on the Petri net models, which are used in generating supervisory control. The supervisory control is used in handling database deadlocks.Type: GrantFiled: August 13, 2010Date of Patent: July 1, 2014Assignee: Accenture Global Services LimitedInventors: Mark Grechanik, Qing Xie, Chen Fu
-
Patent number: 8762970Abstract: A method for grouping algorithms included in a program into groups and thus for assisting in analyzing the program. The method includes the steps of: converting each of the algorithms into a directed graph; judging, as to each representative directed graph stored in a storage unit of a computer system, whether or not the directed graph obtained by the conversion is similar to the representative directed graph; and determining a group to which the directed graph obtained by the conversion belongs from among groups stored in the storage unit in accordance with the similarity judgment. A computer system for performing the above method and a computer program for causing a computer system to perform the above method are also described.Type: GrantFiled: December 14, 2009Date of Patent: June 24, 2014Assignee: International Business Machines CorporationInventor: Motohiro Kawahito
-
Patent number: 8756587Abstract: Static analysis of a computer software application can be performed by applying a first level of abstraction to model a plurality of run-time objects, thereby producing a set of object abstractions. Static data-flow analysis of the computer software application can be performed using the set of object abstractions, thereby producing a first data-flow propagation graph. A data-flow bottleneck can be identified within the data-flow propagation graph. A second level of abstraction can be applied to model any of the run-time objects having in the set of object abstractions a corresponding object abstraction that is traceable to the data-flow bottleneck. The applying the second level of abstraction can decompose the corresponding object abstraction into a set of object abstractions, thereby modifying the set of object abstractions. Static data-flow analysis of the computer software application can be performed using the modified set of object abstractions.Type: GrantFiled: September 30, 2011Date of Patent: June 17, 2014Assignee: International Business Machines CorporationInventors: Marco Pistoia, Omer Tripp
-
Patent number: 8739144Abstract: A compiler and method for compiling source code comprising: a library of code patterns and control flow information for each code pattern, wherein each code pattern comprises one or more variable; and a processor arranged to: evaluate the control flow of an expression in the source code, wherein the expression comprises one or more variable, match the expression to one of the code patterns in the library based on the evaluated control flow information, assign value numbers to the one or more variable within the expression, determine if the expression and the matched code pattern are equivalent based on the assigned value numbers, and replace the expression in the source code with a replacement expression if the expression and the matched code pattern are equivalent.Type: GrantFiled: December 17, 2008Date of Patent: May 27, 2014Assignee: Freescale Semiconductor, Inc.Inventors: Mihai Emanuel Stoicescu, Bogdan Florin Ditu, Mihail Popa
-
Patent number: 8701098Abstract: A method, apparatus and program product are provided for parallelizing analysis and optimization in a compiler. A plurality of basic blocks and a subset of data points of a computer program is prepared for processing by a main thread selected from a plurality of hardware threads. The plurality of prepared basic blocks and subset of data points are placed in a shared data structure by the main thread. A prepared basic block of the plurality of prepared basic blocks and/or a tuple associated with the subset of data points is concurrently retrieved from the shared data structure by a work thread selected from the plurality of hardware threads. A compiler analysis or optimization is performed on the prepared basic block or tuple by the work thread.Type: GrantFiled: April 2, 2009Date of Patent: April 15, 2014Assignee: International Business Machines CorporationInventors: Robert R. Roediger, William J. Schmidt
-
Publication number: 20140075423Abstract: A method for efficiently solving the “use-def” problem involving label variables performs a data-flow analysis on a control flow graph that includes calculating an inset for each node as follows: if a predecessor node directly branches to the node, the method includes an outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is in definitions of the label variable in the outset of the predecessor node, the method includes the outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is not in definitions of the label variable in the outset of the predecessor node, the method does not include the outset of the predecessor node in the inset of the node.Type: ApplicationFiled: September 13, 2012Publication date: March 13, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Allan H. Kielstra
-
Publication number: 20140075424Abstract: A method for efficiently solving the “use-def” problem involving label variables performs a data-flow analysis on a control flow graph that includes calculating an inset for each node as follows: if a predecessor node directly branches to the node, the method includes an outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is in definitions of the label variable in the outset of the predecessor node, the method includes the outset of the predecessor node in the inset of the node; if a predecessor node indirectly branches to the node via a label variable and the node is not in definitions of the label variable in the outset of the predecessor node, the method does not include the outset of the predecessor node in the inset of the node.Type: ApplicationFiled: March 15, 2013Publication date: March 13, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: INTERNATIONAL BUSINESS MACHINES CORPORATION
-
Patent number: 8666999Abstract: A search utility for industrial control programs accepts as a query an example program fragment which is abstracted into a graph-form capturing, for example, instruction control-flow and data-flow. This graph-form may be compared to a graph-form transformation of other portions of the program to provide a more sophisticated matching process that considers underlying logical hierarchy of the program elements rather than their superficial expression in the source code embodiment.Type: GrantFiled: August 2, 2011Date of Patent: March 4, 2014Assignee: Rockwell Automation Technologies, Inc.Inventors: Ivan Havel, Marek Obitko
-
Patent number: 8661424Abstract: A code generation system comprises a model analyzer configured to identify data dependencies in a data flow diagram that describes functional behavior of an application, wherein the model analyzer is further configured to compute a data and computation map based on the data dependencies and to compute one or more implementation constraints; a model partitioner configured to compute one or more partition boundaries based on the data and computation map and the one or more implementation constraints; and a code generator configured to generate parallelized code based on the data flow diagram, the one or more implementation constraints, and the one or more partition boundaries, wherein the code generator is configured to map the code corresponding to each partition defined by the one or more partition boundaries to one of a plurality of cores of a multi-core processor, and to generate inter-core communication code for at least one line of the data and computation map crossed by the one or more partition boundariType: GrantFiled: September 2, 2010Date of Patent: February 25, 2014Assignee: Honeywell International Inc.Inventors: Kirk Schloegel, Devesh Bhatt
-
Patent number: 8656376Abstract: A method for providing intrinsic supports for a VLIW DSP processor with distributed register files comprises the steps of: generating a program representation with cluster information on instructions of the DSP processor, wherein the cluster information is provided by a program with cluster intrinsic coding; identifying data stream operations indicating parallel instruction sequences applied on different data sets in the program representation; identifying data sharing relations indicating data shared by the data stream operations in the program representation; identifying data aggregation relations indicating results aggregated from the data stream operations in the program representation; and performing register allocation for the DSP processor according to the identified data stream operations, the data sharing relations and the data aggregation relations.Type: GrantFiled: September 1, 2011Date of Patent: February 18, 2014Assignee: National Tsing Hua UniversityInventors: Jenq Kuen Lee, Chi Bang Kuan
-
Patent number: 8645933Abstract: A method and apparatus for optimizing source code for use in a parallel computing environment by compiling an application source code, performing analysis, and optimizing the application source code. At the time of compilation, a compiler adds instrumentation to a prepared executable. An analysis program then analyzes the prepared executable and generates an analysis result. The analysis result is then used by the analysis program to optimize the application source code for parallel processing.Type: GrantFiled: November 17, 2008Date of Patent: February 4, 2014Inventor: Leon Schwartz
-
Patent number: 8645923Abstract: When a program is loaded for execution, all code pages of the program except the one containing the entry point are set to be non-executable. When the executing program attempts to jump between code pages, an exception is thrown. Responsive to such an exception, a control flow graph of the program is examined, to determine if the attempted jump between code pages is expected. If the attempted jump is not expected, it is determined that the program is attempting a malicious activity. If the attempted jump is expected, the code page to which the program is attempting to jump is set to be executable, and control is returned to the program such that the jump executes.Type: GrantFiled: October 31, 2008Date of Patent: February 4, 2014Assignee: Symantec CorporationInventors: Sourabh Satish, Bruce McCorkendale, William E. Sobel
-
Patent number: 8645924Abstract: In one embodiment, symbolically executing a software module having a number of execution paths; and losslessly reducing the number of execution paths during the symbolic execution of the software module.Type: GrantFiled: June 6, 2011Date of Patent: February 4, 2014Assignee: Fujitsu LimitedInventors: Guodong Li, Sreeranga P. Rajan, Indradeep Ghosh
-
Patent number: 8635606Abstract: Technologies are generally described for runtime optimization adjusted dynamically according to changing costs of one or more system resources. Multicore systems may encounter dynamic variations in performance associated with the relative cost of related system resources. Furthermore, multicore systems can experience dramatic variations in resource availability and costs. A dynamic registry of system resource costs can be utilized to guide dynamic optimization. The relative scarcity of each resource can be updated dynamically within the registry of system resource costs. A runtime code generating loader and optimizer may be adapted to adjust optimization according to the resource cost registry. Information regarding system resource costs can support optimization tradeoffs based on resource cost functions.Type: GrantFiled: October 13, 2009Date of Patent: January 21, 2014Assignee: Empire Technology Development LLCInventor: Ezekiel John Joseph Kruglick
-
Patent number: 8631395Abstract: Whole program analysis during a link time code generation part of compilation can be used to detect and eliminate dead catch handlers. If all catch handlers of a try clause in a computer program are found to be dead then the try clause can also be eliminated. Detection of dead catches can be automatic, using iterative propagation of the types of thrown exceptions from callee function to caller function from bottom to top in the call-graph and iterative propagation of the types of in-flight exceptions from caller function to callee function from top to bottom in the call-graph.Type: GrantFiled: September 2, 2011Date of Patent: January 14, 2014Assignee: Microsoft CorporationInventors: Patrick Sathyanathan, Ten Tzen
-
Patent number: 8627300Abstract: Technologies are generally described for parallel dynamic optimization using multicore processors. A runtime compiler may be adapted to generate multiple instances of executable code from a portable intermediate software module. The various instances of executable code may be generated with variations of optimization parameters such that the code instances each express different optimization attempts. A multicore processor may be leveraged to simultaneously execute some, or all, of the various code instances. Preferred optimization parameters may be determined from the executable code instances that may correctly complete in the least time, or may use the least amount of memory, or that may prove superior according to some other fitness metric. Preferred optimization parameters may be used to seed future optimization attempts. Output generated from the preferred instances may be used as soon as the first instance correctly completes block.Type: GrantFiled: October 13, 2009Date of Patent: January 7, 2014Assignee: Empire Technology Development LLCInventor: Ezekiel John Joseph Kruglick
-
Patent number: 8612954Abstract: A method for generating a fine slice for a program is provided. The method comprises receiving a set of slicing criteria, wherein the set of slicing criteria comprises one or more variable occurrences or control dependences; receiving a set of cut points, wherein the set of cut points comprises one or more variable occurrences or control dependences; and generating a slice according to the set of slicing criteria and the set of cut points. The generated slice includes statements related to computation of values for the set of slicing criteria and excludes statements related to computation of values for the set of cut points. Missing information is added to the slice so that the slice is executable.Type: GrantFiled: August 17, 2009Date of Patent: December 17, 2013Inventors: Aharon Abadi, Ran Ettinger, Yishai Fieldman, Jonathan Bnayahu
-
Patent number: 8612955Abstract: A dataflow instruction set architecture and execution model, referred to as WaveScalar, which is designed for scalable, low-complexity/high-performance processors, while efficiently providing traditional memory semantics through a mechanism called wave-ordered memory. Wave-ordered memory enables “real-world” programs, written in any language, to be run on the WaveScalar architecture, as well as any out-of-order execution unit. Because it is software-controlled, wave-ordered memory can be disabled to obtain greater parallelism. Wavescalar also includes a software-controlled tag management system.Type: GrantFiled: January 22, 2008Date of Patent: December 17, 2013Assignee: University of WashingtonInventors: Mark H. Oskin, Steven J. Swanson, Susan J. Eggers
-
Patent number: 8612950Abstract: A method and apparatus for dynamic optimization of strong atomicity barriers is herein described. During runtime compilation, code including non-transactional memory accesses that are to conflict with transactional memory accesses is patched to insert transactional barriers at the conflicting non-transactional memory accesses to ensure isolation and strong atomicity. However, barriers are omitted or removed from non-transactional memory accesses that do not conflict with transactional memory accesses to reduce barrier execution overhead.Type: GrantFiled: June 19, 2008Date of Patent: December 17, 2013Assignee: Intel CorporationInventors: Tatiana Shpeisman, Vijay Menon, Ali-Reza Adl-Tabatabai
-
Patent number: 8601457Abstract: In an embodiment, a technique that may be used to identify a pattern with respect to accessing a data store in a model. The pattern may be a desirable, undesirable, anomalous or some other type of pattern with respect to accessing the data store. The technique may include generating an execution control graph that represents an execution of the model. The execution control graph may be analyzed to identify the pattern. Analysis may include generating an expression based on the execution control graph and a condition to test for and determining, based on the expression, if the condition is met. If the condition is met, the pattern may be said to exist in the model. A result may generated based on the analysis and the result may be output.Type: GrantFiled: March 13, 2009Date of Patent: December 3, 2013Assignee: The MathWorks, Inc.Inventor: Zhi Han