Including Analysis Of Program Patents (Class 717/154)
-
Patent number: 10684839Abstract: A plugin for a website browser can enable a user to deploy software onto a computing device quickly and easily. For example, the plugin can automatically detect that a user is visiting a website on which program code for a software application is shared or hosted. The website may be an open-source website, a program-code repository, or a program-code review platform. The plugin can automatically analyze the program code, an installation file provided with the program code, software and hardware characteristics of the specific computing device on which the software application is to be deployed, and other data to determine how to deploy the software application on the specific computing device. The plugin can then deploy the software application on the computing device in response to the user clicking a button, allowing for the software application to be easily deployed on the computing device with minimal user interaction or skill.Type: GrantFiled: June 15, 2016Date of Patent: June 16, 2020Assignee: Red Hat Israel, Ltd.Inventors: Boaz Shuster, Oded Ramraz
-
Patent number: 10671372Abstract: A blockchain-based secure customized catalog system includes a catalog customization system that receives a request to customize a first software catalog, and modifies the first software catalog to create a second software catalog that is customized for computing devices in a computing system. The catalog customization system then generates and broadcasts a first blockchain transaction that includes a smart contract having a second software catalog hash created from the second software catalog. A blockchain device receives the first blockchain transaction and, in response, provides the smart contract on a blockchain. When the blockchain device receives a second blockchain transaction broadcast by the computing system and including a hash value, it executes the smart contract. If the blockchain device determines that the execution of the smart contract indicates that the hash value matches the second software catalog hash, it transmits a second software catalog verification to the computing system.Type: GrantFiled: November 1, 2018Date of Patent: June 2, 2020Assignee: Dell Products L.P.Inventors: Kevin T. Marks, Viswanath Ponnuru, Raveendra Babu Madala
-
Patent number: 10558438Abstract: Optimizations are provided for sibling calls. A sibling caller is marked to indicate that it may call a sibling routine or that it may call an external sibling routine. Based on the marking, certain processing is performed to facilitate use of sibling calls, particularly when the sibling routine being called is external to the caller.Type: GrantFiled: October 18, 2018Date of Patent: February 11, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Michael K. Gschwind
-
Patent number: 10540262Abstract: A software development system is described that enables a user that is debugging source code to select for unoptimizing a function within the source code and to cause an edit and continue operation to be performed that produces a compiled version of the source code in which the selected function is unoptimized, while other functions remain optimized. Embodiments also enable a user to select a previously unoptimized function within the source code for re-optimizing and to cause an edit and continue operation to be performed that produces a compiled version of the source code in which the function is re-optimized. Still further embodiments enable a user to select within source code that is being developed a function for which optimization should be prevented and to cause a compiled representation of the source code to be built in which the selected function is unoptimized, while other functions are optimized.Type: GrantFiled: October 17, 2016Date of Patent: January 21, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Ramkumar Ramesh, Changqing Fu, Ankit Asthana, Andrew B. Hall
-
Patent number: 10503485Abstract: A method for generating program code based on one or more blocks of a block diagram in a technical computing environment, an identifier being assigned to at least one, preferably each, of the one or more blocks of the block diagram. A processor opens the block diagram in the model editor, converts the block diagram to an intermediate representation using the code generator, wherein the conversion comprises checking if a replacement condition is fulfilled for a current block in the block diagram. Checking the replacement condition includes verifying that a predefined functional code unit is assigned to the identifier of the current block, in that case changing the block to a placeholder containing input/output-definitions but no functionality. The processor then converts the intermediate representation to program code, the conversion comprising adding a predefined functional code unit from the data definition tool to the definition code corresponding to the placeholder block.Type: GrantFiled: November 30, 2017Date of Patent: December 10, 2019Assignee: dSPACE digital signal processing and control engineering GmbHInventors: Andreas Hoffmann, Wolfgang Trautmann, Frank Luenstroth, Volker Straetgen
-
Patent number: 10503634Abstract: Techniques are described for semantically comparing machine code traces generated by compilers that compile computer software code. For example, a trace of machine code generated by a compiler can be obtained. The trace can be transformed into a set of expressions in a uniform expression format (e.g., by performing translation of the trace instructions into corresponding expressions and/or by performing other transformations). The set of expressions in the uniform expression format can be compared to other sets of expressions in the uniform expression format (e.g., other sets of expressions created from traces of machine code from other compilers). Results of the comparison can comprise indications of whether the sets of expressions match.Type: GrantFiled: May 25, 2018Date of Patent: December 10, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Xiang Li, Ivan Nevraev, David McCarthy Peixotto, Marcelo Lopez Ruiz
-
Patent number: 10440154Abstract: A method for predictive loading of software resources in a web application includes predicting a future state of the web application, determining the software resources required by the first predicted future state, and loading the software resources required by the first predicted future state. Determining that future predicated state further includes determining an associated probability for each possible future state in the first set of possible future states, identifying, from the first set of possible future states, a first predicted future state with the highest associated probability, and predicting a first set of possible future states based on a current state, run-time application context, and either use case data or historical application usage data.Type: GrantFiled: June 29, 2018Date of Patent: October 8, 2019Assignee: EMC IP Holding Company LLCInventor: Chaithanya Lekkalapudi
-
Patent number: 10437885Abstract: Implementations of the disclosure provide for graph modeling of applications for detection of duplicate modules. In one embodiment, an apparatus comprising: a memory to store graphs; and a processing device, operatively coupled to the memory is provided. The processing device identify a first executable code module of a plurality of executable code modules associated with an application represented by a graph data structure. The graph data structure is updated with an indicator for each of the executable code modules matching the first module. The indicator references the first executable code module. One or more corresponding modules associated with the graph data structure are selected in view of the indicator. Using the graph data structure, an amount of a computing resource to allocate for a migration of the corresponding modules of the application is determined in view of a selection criterion.Type: GrantFiled: January 3, 2018Date of Patent: October 8, 2019Assignee: Red Hat, Inc.Inventors: Ondrej Zizka, Jesse Daniel Sightler
-
Patent number: 10417119Abstract: A method for automated software testing may include mapping test cases to lines in files in a codebase. Each test case covers one or more lines in one or more files and has corresponding test results. The method may further include obtaining a change list including one or more changes. Each change specifies a changed line in a changed file. The method may further include determining impacted test cases, based on the mapping and the change list, prioritizing the impacted test cases based, in part, on test results corresponding to each impacted test case, executing, based on the prioritization, one or more impacted test cases to obtain executed test cases, and obtaining, for each executed test case, new test results.Type: GrantFiled: April 28, 2016Date of Patent: September 17, 2019Assignee: INTUIT INC.Inventors: Sachin Francis, Divya Gupta, Ayush Datta, Vijay Thomas
-
Patent number: 10379886Abstract: A non-transitory computer-readable medium stores computer-executable instructions that, when executed by a computer, cause the computer to perform operations including generating a changed optimization file by changing an original optimization file, the original optimization file being an optimization file created at a point in time at which an intermediate language file for an application is loaded; storing the changed optimization file; creating and storing verification information for verifying whether the intermediate language file is changed; determining whether the intermediate language file is changed based on the stored verification information in response to reloading of the intermediate language file; and creating a new optimization file by deleting the changed optimization file or recovering the original optimization file based on the changed optimization file and reusing the original optimization file, based on whether the intermediate language file is changed.Type: GrantFiled: February 16, 2017Date of Patent: August 13, 2019Assignee: LINE CORPORATIONInventors: Sang Min Chung, SangHun Jeon, Myungju Chung, Wang Jin Oh, Sungbeom Ahn, Dongpil Seo, Kwang-Hee Han, Tae Woo Kim, Seong Yeol Lim, Joo Hyeon Ryu
-
Patent number: 10354064Abstract: According to the invention, there is provided a computer implemented method for controlling dynamically the execution of a code by a processing system, said execution being described by a control flow graph comprising a plurality of basic blocks composed of at least an input node and an output node, a transition in the control flow graph corresponding to a link between an output node of origin belonging to a first basic block and an input node of a second basic block, a plurality of initialization vectors being associated to the output nodes at the time of generating the code, an a priori control word being associated to each input node which is linked to the same output node of origin according the control flow graph, said a priori control word being precomputed at the time of generating the code by applying a predefined deterministic function F to the initialization vector associated to its output node of origin, the following steps being applied once the execution of the output node belonging to a first baType: GrantFiled: June 19, 2015Date of Patent: July 16, 2019Assignee: SECURE-IC SASInventors: Sylvain Guilley, Thibault Porteboeuf
-
Patent number: 10353679Abstract: A PGO compiler can instrument an executable to collect profile data from which global variables that were modified during the execution of a training executable can be identified. PGO optimization using a list of modified global variables identified from the profile data can be used to optimize a program in a second compilation phase. The global variables that were modified during the training run are identified by capturing a current snapshot of global variables and comparing their state to a baseline snapshot to ascertain the addresses of global variables that were modified. The addresses that changed can be mapped to global variable names to create a list of global variables that were modified during execution of the training executable. The list of global variables that have been modified can be to enable the compiler to perform optimizations such as but not limited to co-locate the modified global variables in memory.Type: GrantFiled: October 31, 2014Date of Patent: July 16, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventor: Terry Jack Mahaffey
-
Patent number: 10338906Abstract: The disclosure is directed to controlling availability of a feature of an application without having to change a code of the application. A gate application employs a “gate” that facilitates making a feature available to a set of users without having to change the code of the application as the set of users to whom the feature is to be made available change. The gate includes parameters and criteria that can determine whether a particular feature of the application, e.g., a photo tagging feature of a social networking application, is to be made available to a particular user. If the request attributes, e.g., attributes associated with a requesting user, satisfy the criteria defined in the gate, the gate indicates to the host application to make the feature available, which then executes a portion of the code corresponding to the particular feature to make the particular feature available to the user.Type: GrantFiled: September 29, 2015Date of Patent: July 2, 2019Assignee: Facebook, Inc.Inventors: Richard William Branson, Chenyang Wu
-
Patent number: 10325097Abstract: A method for statically analyzing a web application program may include obtaining a control flow graph for the web application program. Each control flow graph node may correspond to a statement in the web application program. The method may further include obtaining a sanitizer sequence including one or more sanitizers followed by an output statement, obtaining a placeholder corresponding to the sanitizer sequence, and generating control flow paths including an output node that corresponds to the output statement. The method may further include generating documents for each control flow path. Each document may include a sanitized value corresponding to the output statement. The method may further include inserting the placeholder into each document at a location of the sanitized value, and reporting a potential cross-site scripting flaw when the sanitizer sequence is insufficient for the output context sequence of the sanitized value.Type: GrantFiled: September 30, 2016Date of Patent: June 18, 2019Assignee: Oracle International CorporationInventors: Francois Gauthier, Antonin Steinhauser
-
Patent number: 10270886Abstract: A method and system for dynamically optimizing a script library are described. A request for a script library is received from a set of client devices. An instrumented version of the script library is transmitted to at least one of the set of client devices. The instrumented version of the script library includes code for tracing execution of the script library. Responsive to execution of the instrumented version of the script library at each one of the at least one of client devices, script library usage feedback indicative of usage of the script library at these client devices is received. An optimized version of the script library, generated based on the script library usage feedback by removing portions of the script library that are unused by the subset of client devices, is transmitted to the client device instead of the script library in response to a second request.Type: GrantFiled: September 14, 2018Date of Patent: April 23, 2019Assignee: CLOUDFLARE, INC.Inventors: Igor Postelnik, Dane Orion Knecht, Oliver Zi-gang Yu, John Fawcett
-
Patent number: 10255050Abstract: A method for disambiguating an executable code file including a symbol table, includes reading a disambiguation configuration including at least one symbol-renaming instruction; renaming symbols from a symbol table according to at least one symbol-renaming instruction of the disambiguation configuration; and saving the file with the code disambiguated according to the disambiguation configuration.Type: GrantFiled: January 27, 2015Date of Patent: April 9, 2019Inventors: Patrice Martinez, Ga{hacek over (e)}l Lalire, Landry Stéphane Zeng Eyindanga
-
Patent number: 10255159Abstract: Dynamic program analysis is decoupled from execution in virtual computer environments so that program analysis can be performed on a running computer program without affecting or perturbing the workload of the system on which the program is executing. Decoupled dynamic program analysis is enabled by separating execution and analysis into two tasks: (1) recording, where system execution is recorded with minimal interference, and (2) analysis, where the execution is replayed and analyzed.Type: GrantFiled: November 20, 2017Date of Patent: April 9, 2019Assignee: VMware, Inc.Inventors: James E. Chow, Tal Garfinkel, Peter M. Chen
-
Patent number: 10229045Abstract: A method for allocating memory includes an operation that determines whether a prototype of a callee function is within a scope of a caller. The caller is a module containing a function call to the callee function. In addition, the method includes determining whether the function call includes one or more unnamed parameters when a prototype of the callee function is within the scope of the caller. Further, the method may include inserting instructions in the caller to allocate a register save area in a memory when it is determined that the function call includes one or more unnamed parameters.Type: GrantFiled: December 12, 2016Date of Patent: March 12, 2019Assignee: International Business Machines CorporationInventors: Michael Karl Gschwind, Ronald I. McIntosh, Ulrich Weigand
-
Patent number: 10229044Abstract: A method for allocating memory includes an operation that determines whether a prototype of a callee function is within a scope of a caller. The caller is a module containing a function call to the callee function. In addition, the method includes determining whether the function call includes one or more unnamed parameters when a prototype of the callee function is within the scope of the caller. Further, the method may include inserting instructions in the caller to allocate a register save area in a memory when it is determined that the function call includes one or more unnamed parameters.Type: GrantFiled: December 12, 2016Date of Patent: March 12, 2019Assignee: International Business Machines CorporationInventors: Michael Karl Gschwind, Ronald I. McIntosh, Ulrich Weigand
-
Patent number: 10133560Abstract: A method for optimizing source code comprises optimizing the source code of files from a computer program at link-time, and receiving, at a linker, a customized linker script defining output sections for files of an executable version of the files of the computer program. The method comprises adding, to intermediate representation files having global or local symbols, metadata comprising default section assignment information for the symbols and recording, for symbols in machine code files, an origin path and an output section. The method further comprises parsing, by the compiler, the intermediate representation files, recording the symbols and related symbol information comprising default section assignment and dependency information of the intermediate representation files, assigning output sections to the symbols based on the default section assignments and instructions from the customized linker script, and linking optimized code of the files of the computer program based on the assigned output sections.Type: GrantFiled: September 22, 2016Date of Patent: November 20, 2018Assignee: QUALCOMM Innovation Center, Inc.Inventors: Sergei Larin, Shankar Kalpathi Easwaran, Hemant Kulkarni, Tobias Edler Von Koch
-
Patent number: 10108536Abstract: According to some embodiments, system comprises a communication device operative to communicate with a user to obtain one or more requirements associated with a model for a test case generation module; a translation computer module to receive the model, store the model and generate an intermediate model; a generator computer module to receive the intermediate model, store the intermediate model, generate at least one test case; a memory for storing program instructions; at least one test case generation platform processor, coupled to the memory, and in communication with the translation computer module and the generator computer module, operative to execute program instructions to: transform the model into an intermediate model by executing the translation computer module; identify a model type associated with the intermediate model based on an analysis of the intermediate model by executing the generator computer module; select a test generation method based on analysis of the identified model type by executType: GrantFiled: December 10, 2014Date of Patent: October 23, 2018Assignee: GENERAL ELECTRIC COMPANYInventor: Meng Li
-
Patent number: 9880923Abstract: A model checking device for a distributed-environment-model according to the present invention, includes: a distributed-environment-model search unit that adopts a first state as start point when obtaining information indicating a distributed-environment-model, searches the state attained by the distributed-environment-model by executing straight line movements for moving from the first state to a second state which is an end position, and determines whether the searched state satisfies a predetermined property; a searched state management unit that stores the searched state in the past; a searched-transition-history management unit that stores an order of the transitions of the straight line movements in the past; a searched state transition association information management unit that stores the transition when moving to another state in the past search in such a manner that the transition is associated with each of the searched states.Type: GrantFiled: August 21, 2014Date of Patent: January 30, 2018Assignee: NEC CORPORATIONInventors: Yutaka Yakuwa, Nobuyuki Tomizawa
-
Patent number: 9870240Abstract: Embodiments of the present invention disclose an approach for inserting code into a running thread of execution. A computer sets a first set of bits to a first value, wherein the first value indicates that a first set of instructions should be inserted onto a stack. The computer executes a second set of instructions associated with a first safepoint, wherein the second set of instructions comprises one or more instructions to determine if the first set of bits is set to the first value. The computer determines that the first set of bits is set to the first value, and the computer inserts the first set of instructions onto the stack.Type: GrantFiled: August 30, 2016Date of Patent: January 16, 2018Assignee: International Business Machines CorporationInventors: Michael H. Dawson, Graeme Johnson, San Hong Li
-
Patent number: 9858419Abstract: A static analysis for identification of permission-requirements on stack-inspection authorization systems is provided. The analysis employs functional modularity for improved scalability. To enhance precision, the analysis utilizes program slicing to detect the origin of each parameter passed to a security-sensitive function. Furthermore, since strings are essential when defining permissions, the analysis integrates a sophisticated string analysis that models string computations.Type: GrantFiled: September 22, 2013Date of Patent: January 2, 2018Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Julian Timothy Dolby, Emmanuel Geay, Marco Pistoia, Barbara G. Ryder, Takaaki Tateishi
-
Patent number: 9824419Abstract: A method and system are provided for executing, by a processor including a read-only cache, a program having a plurality of variables including a first variable and a second variable. Each variable is for executing a respective read operation or a respective write operation for an object. The method includes providing a first code that uses the read-only cache and a second code that does not use the read-only cache. The method further includes determining, by the processor, whether a first object designated by the first variable is aliased or not aliased with a second object designated by the second variable. The method also includes executing, by the processor, the first code when the first object is not aliased with the second object, and the second code when the first object is aliased with the second object.Type: GrantFiled: November 20, 2015Date of Patent: November 21, 2017Assignee: International Business Machines CorporationInventor: Kazuaki Ishizaki
-
Patent number: 9817706Abstract: An information processing device in a parallel computer system, the information processing device includes a processor.Type: GrantFiled: September 14, 2016Date of Patent: November 14, 2017Assignee: FUJITSU LIMITEDInventor: Takafumi Nose
-
Patent number: 9811342Abstract: A method for executing dual dispatch of blocks and half blocks. The method includes receiving an incoming instruction sequence using a global front end; grouping the instructions to form instruction blocks, wherein each of the instruction blocks comprise two half blocks; scheduling the instructions of the instruction block to execute in accordance with a scheduler; and performing a dual dispatch of the two half blocks for execution on an execution unit.Type: GrantFiled: March 14, 2014Date of Patent: November 7, 2017Assignee: Intel CorporationInventor: Mohammad Abdallah
-
Patent number: 9779133Abstract: Various embodiments of systems and methods for validating Structured Query Language (SQL) queries in a database-accessing software application during application development are described herein. In some embodiments, an SQL query can be copied, during debugging of the software application, from a program editor used to define the software application into an SQL console that facilitates modifying and executing the query and displays data resulting from the execution of the query. Upon developer validation of the SQL query, the validated query may be copied back into the software application to substitute the original query. The SQL query may include one or more unresolved parameters that can be resolved by the SQL console via access to memory in which the software application is executed during debugging.Type: GrantFiled: November 25, 2014Date of Patent: October 3, 2017Assignee: SAP SEInventor: Raghuvira Bhagavan
-
Patent number: 9772882Abstract: The execution of an executable code by a set of processing modules is provided, wherein the executable code is executed by at least one first processing module of the set of processing modules, wherein said executable code comprises a set of parallel executable parts, wherein each parallel executable part of the executable code comprises at least two parallel executable steps, and wherein said executing comprises: detecting by the at least one first processing module a parallel executable part of the set of parallel executable parts of the executable code to be executed; selecting by the at least one first processing module at least two second processing modules of the set of processing modules; and commanding by the at least one first processing module the selected at least two second processing modules to perform the at least two parallel executable steps of the detected parallel executable part of the executable code.Type: GrantFiled: March 14, 2013Date of Patent: September 26, 2017Assignee: HYBRIDSERVER TEC IP GMBHInventors: Halis Aslan, Farbod Saremi, Tobias Zielinski, Hendrik Dürkop
-
Patent number: 9710241Abstract: Provided are an apparatus and method for providing instructions for a heterogeneous processor having heterogeneous components supporting different data widths. Respective data widths of operands and connections in a data flow graph are determined by using type information of operands. Instructions, to be executed by the heterogeneous processor, are provided based on the determined data widths.Type: GrantFiled: September 22, 2009Date of Patent: July 18, 2017Assignee: Samsung Electronics Co., Ltd.Inventors: Egger Bernhard, Soo-jung Ryu, Dong-hoon Yoo, Il-hyun Park
-
Patent number: 9697021Abstract: A computer-implemented method includes compiling one or more segments of code during run-time of a process executing at one or more processors of a computer system. The compilation produces a high-level intermediate representation of the one or more segments of the code. The high-level intermediate representation is modifiable by the process, without executing the high-level intermediate representation, to generate a modified high-level intermediate representation that is executable by the process.Type: GrantFiled: April 30, 2010Date of Patent: July 4, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Harish Kantamneni, Andrew Cherry, Anders Hauge, Amanda Silver, Nathan Carlson, Anthony Crider, Abhijeet S. Shah, Ming Hong Zhu
-
Patent number: 9542235Abstract: In one embodiment, a non-transitory processor-readable medium stores code representing instructions that when executed cause a processor to obtain a first mutual exclusion object. The first mutual exclusion object can be a write mutual exclusion object associated with a shared resource. The code can further represent instructions that when executed cause the processor to obtain a second mutual exclusion object associated with an object manager module and define a read event object with a name conforming to a predetermined format. The code can further represent instructions that when executed cause the processor to release the second mutual exclusion object, release the first mutual exclusion object, read at least a portion of the shared resource, obtain the second mutual exclusion object, destroy the read event object and release the second mutual exclusion object.Type: GrantFiled: December 14, 2010Date of Patent: January 10, 2017Assignee: AppSense, LimitedInventors: Richard Pointon, Richard James Somerfield
-
Patent number: 9529697Abstract: An embodiment can include one or more computer-readable media storing executable instructions that when executed on processing logic process variable signals. The media can store one or more instructions for receiving executable code that includes constructs with variable signals for processing the variable signals, and for performing a coverage measurement on the executable code based on information about one or more of the variable signals processed by the executable code. The media can store one or more instructions for producing a coverage result based on the coverage measurement, the coverage result identifying a degree of coverage for the executable code when the executable code processes the variable signals.Type: GrantFiled: February 28, 2013Date of Patent: December 27, 2016Assignee: The MathWorks, Inc.Inventors: William J. Aldrich, Olga Voronina, Zsolt Kalmar
-
Patent number: 9489214Abstract: New code is added to existing object code in order to add new functionality. For example, a call to start a profiler function can be added at the beginning of a Java method and a call to stop the profiler function can be added at the exits of the Java method. A method may have many different exits. To insure that the profiler process is stopped regardless of which exit is performed, the byte code and exception table are modified.Type: GrantFiled: December 22, 2011Date of Patent: November 8, 2016Assignee: CA, Inc.Inventor: Jeffrey R Cobb
-
Patent number: 9471327Abstract: A tool for formally verifying forwarding paths in an information pipeline. The tool creates two logic design copies of the pipeline to be verified. The tool retrieves a first and a second instruction, which have previously been proven to compute a mathematically correct result when executed separately. The tool defines driver input functions for issuing instructions to the two logic design copies. In accordance with the driver input functions, the tool issues instructions to the two logic design copies. The tool abstracts data flow of the two logic design copies to isolate forwarding paths for verification. The tool adjusts for latency differences between the first and second logic design copies. The tool checks a register for results, and when results from of two logic design copies become available in the register, the tool verifies the results to conclusively prove the correctness of all states of the information pipeline.Type: GrantFiled: August 20, 2013Date of Patent: October 18, 2016Assignee: International Business Machines CorporationInventors: Anand B. Arunagiri, Udo Krautz, Sujeet Kumar, Viresh Paruthi
-
Patent number: 9459878Abstract: A tool for formally verifying forwarding paths in an information pipeline. The tool creates two logic design copies of the pipeline to be verified. The tool retrieves a first and a second instruction, which have previously been proven to compute a mathematically correct result when executed separately. The tool defines driver input functions for issuing instructions to the two logic design copies. In accordance with the driver input functions, the tool issues instructions to the two logic design copies. The tool abstracts data flow of the two logic design copies to isolate forwarding paths for verification. The tool adjusts for latency differences between the first and second logic design copies. The tool checks a register for results, and when results from of two logic design copies become available in the register, the tool verifies the results to conclusively prove the correctness of all states of the information pipeline.Type: GrantFiled: January 9, 2014Date of Patent: October 4, 2016Assignee: International Business Machines CorporationInventors: Anand B. Arunagiri, Udo Krautz, Sujeet Kumar, Viresh Paruthi
-
Patent number: 9417855Abstract: A micro-architecture may provide a hardware and software co-designed dynamic binary translation. The micro-architecture may invoke a method to perform a dynamic binary translation. The method may comprise executing original software code compiled targeting a first instruction set, using processor hardware to detect a hot spot in the software code and passing control to a binary translation translator, determining a hot spot region for translation, generating the translated code using a second instruction set, placing the translated code in a translation cache, executing the translated code from the translated cache, and transitioning back to the original software code after the translated code finishes execution.Type: GrantFiled: September 30, 2011Date of Patent: August 16, 2016Assignee: Intel CorporationInventors: Abhay S. Kanhere, Paul Caprioli, Koichi Yamada, Suriya Madras-Subramanian, Suresh Srinivas
-
Patent number: 9411567Abstract: An optimizing compiler includes a strength reduction mechanism that optimizes a computer program that includes operations that have an unknown stride by analyzing the instructions in the computer program in a single pass, determining whether instruction substitution is profitable for original instructions in the code, and performing instruction substitution for one or more original instructions for which instruction substitution is deemed profitable, including operations with unknown strides. The substituted instructions result in strength reduction in the computer program.Type: GrantFiled: March 16, 2015Date of Patent: August 9, 2016Assignee: International Business Machines CorporationInventor: William J. Schmidt
-
Patent number: 9411580Abstract: A code annotating system includes a code wrapper engine, an annotator engine, and a memory device. The code wrapper engine receives an output stream produced by a source code of a generator. The code wrapper engine also wraps the output stream to produce a copy of the output stream. The annotator engine automatically annotates the copy with source information. The source information maps a relationship between data in the output stream and the source code of the generator. The memory device stores the source information.Type: GrantFiled: May 31, 2012Date of Patent: August 9, 2016Assignee: International Business Machines CorporationInventor: Scott B Greer
-
Patent number: 9405517Abstract: An optimizing compiler includes a strength reduction mechanism that optimizes a computer program that includes operations that have an unknown stride by analyzing the instructions in the computer program in a single pass, determining whether instruction substitution is profitable for original instructions in the code, and performing instruction substitution for one or more original instructions for which instruction substitution is deemed profitable, including operations with unknown strides. The substituted instructions result in strength reduction in the computer program.Type: GrantFiled: March 16, 2015Date of Patent: August 2, 2016Assignee: International Business Machines CorporationInventor: William J. Schmidt
-
Patent number: 9389845Abstract: In an aspect, a system, non-transitory machine readable medium and method for providing a personalized executable file to a client device is disclosed. A request sent from a client device to obtain a software application is received. The request is processed to identify the client device and a user associated with the client device. The client device profile information associated with the identified client device as well as user profile information associated with the identified user is determined. One or more configuration/core library files are selected from a file database based on the user profile information and the client device profile information. A personalized executable file is generated for the requested software application, wherein the personalized executable file comprises selected core library files and the selected configuration files. The personalized executable file of the requested software application is then sent to the client device.Type: GrantFiled: March 15, 2012Date of Patent: July 12, 2016Assignee: Infosys LimitedInventors: Puneet Gupta, Akshay Darbari, Venkat Kumar Sivaramamurthy, Sudhakar Vusirika
-
Patent number: 9383981Abstract: A modulo scheduling method including calculating at least two candidate initiation intervals between adjacent iterations, searching for schedules of the instructions in parallel by using the candidate initiation intervals, and selecting a schedule determined to be valid from among the searched schedules.Type: GrantFiled: October 7, 2014Date of Patent: July 5, 2016Assignee: SAMSUNG ELECTRONICS CO., LTD.Inventors: Min-wook Ahn, Won-sub Kim, Tai Song Jin, Seung-won Lee, Jin-seok Lee, Chae-seok Im
-
Patent number: 9342510Abstract: State handles mark application data states within a sequence of operations for preservation. Applications can maintain non-linear sets of operations that include multiple sequences of operations between state handles. Applications can determine a sequence of operations between any two state handles, allowing applications to change from the data state associated with one state handle to the data state associated with another state handle. The sequence of operations between any two state handles may include executing operations and/or reversing operations. An application automatically adds new branches in the set of operations to preserve the sequences of operations necessary to reconstruct data states of previously set handles and removes branches that are not needed.Type: GrantFiled: October 22, 2008Date of Patent: May 17, 2016Assignee: PixarInventors: Alex Mohr, Tom Lokovic
-
Patent number: 9336128Abstract: A method for code analysis includes generating, by a computer processor, an execution path through software code. Generating the execution path includes adding, for an object having an undefined class, a first symbolic type constraint to a path condition of the first execution path based on a first statement in the execution path, and adding, for the object having the undefined class, a second symbolic type constraint to the path condition of the execution path based on a second statement in the first execution path. The method further includes the computer processor making a determination that the path condition of the execution path is infeasible based on the first symbolic type constraint of the object being inconsistent with the second symbolic type constraint of the object, and discarding the execution path based on the determination.Type: GrantFiled: March 21, 2014Date of Patent: May 10, 2016Assignee: Oracle International CorporationInventors: Lian Li, Andrew Santosa
-
Patent number: 9336023Abstract: Systems, methods and computer program products for mobile device application design are described herein. The method accesses a data model corresponding to a selected mobile platform. The data model is used by a device application designer to generate, model, and debug a mobile application. The data model is used to take into consideration characteristics of the selected platform and a selected mobile device as the application is designed. The application is structured and generated for a selected platform that is independent of the data model, but is cognizant of the selected platform. A simulator models the application user interface (UI) as it will appear on the selected platform. The method performs platform-specific validation and allows for correction of various aspects of a generated application including platform-specific features. The tool generates a graphical image that can guide a developer to either generated code or help files corresponding to framework libraries.Type: GrantFiled: December 18, 2009Date of Patent: May 10, 2016Assignee: SYBASE, INC.Inventors: Himagiri Mukkamala, Cliff Collins, Stella Yu
-
Patent number: 9329845Abstract: A system described herein includes a receiver component that receives source code from a computer-readable medium of a computing device and a static analysis component that executes a points-to analysis algorithm over the source code to cause generation of a points-to graph, wherein the points-to graph is a directed graph that comprises a plurality of nodes and a plurality of edges, wherein nodes of the points-to graph represent pointers in the source code and edges represent inclusion relationships in the source code. The system also includes an inference component that infers target types for generic pointers in the source code based at least in part upon known type definitions and global variables in the source code.Type: GrantFiled: June 4, 2009Date of Patent: May 3, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Weidong Cui, Marcus Peinado
-
Patent number: 9298926Abstract: Processing a downgrader specification by constructing a set of candidate downgrader placement locations found within a computer software application, where each of the candidate downgrader placement locations corresponds to a transition between a different pair of instructions within the computer software application, and where each of the transitions participates in any of a plurality of data flows in a set of security-sensitive data flows within the computer software application, applying a downgrader specification to the set of candidate downgrader placement locations, and determining that the downgrader specification provides full coverage of the set of security-sensitive data flows within the computer software application if at least one candidate downgrader placement location within each of the security-sensitive data flows is a member of the set of candidate downgrader placement locations.Type: GrantFiled: September 12, 2013Date of Patent: March 29, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Omer Tripp
-
Patent number: 9292693Abstract: Processing a downgrader specification by constructing a set of candidate downgrader placement locations found within a computer software application, where each of the candidate downgrader placement locations corresponds to a transition between a different pair of instructions within the computer software application, and where each of the transitions participates in any of a plurality of data flows in a set of security-sensitive data flows within the computer software application, applying a downgrader specification to the set of candidate downgrader placement locations, and determining that the downgrader specification provides full coverage of the set of security-sensitive data flows within the computer software application if at least one candidate downgrader placement location within each of the security-sensitive data flows is a member of the set of candidate downgrader placement locations.Type: GrantFiled: October 9, 2012Date of Patent: March 22, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Omer Tripp
-
Patent number: 9286083Abstract: A method for satisfying loader dependencies on a running embedded computing device is provided. When a software application is loaded on a running embedded computing device, one or more binary files are identified that need to be loaded in order to run the software application. A determination is made as to whether the identified binary files are stored on the embedded computing device. If one or more of the identified binary files are missing from the embedded computer device, one or more file storage devices are identified that contain the missing binary files. The missing binary files are obtained from the one or more file storage devices during runtime and used to complete the load of the software application.Type: GrantFiled: September 10, 2008Date of Patent: March 15, 2016Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventor: Oren Winter
-
Patent number: 9280446Abstract: Disclosed are methods for finding all valid paths in a COBOL program. These methods are performed in polynomial time, allowing them to be scaled to accommodate large COBOL programs. As the methods find all valid paths in COBOL program code, by traversing and marking the nodes of the program upon being traversed. Accordingly, all usable and reachable code is indicated and marked. This increases safety when working with the code, as removal or alteration of such valid code is indicated, and thus, made unlikely.Type: GrantFiled: March 3, 2014Date of Patent: March 8, 2016Assignee: International Business Machines CorporationInventors: Aharon Abadi, Moria Abadi, Ran Ettinger, Yishai Feldman