Patents by Inventor Ulrich Weigand

Ulrich Weigand has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20160092184
    Abstract: An object has an unresolved symbol corresponding with a direct first function call in a first module of the object. A loader receives a request to resolve the symbol and identifies a callee function called by the first function call, identifies a second module in which the callee function is located, and determines whether the function call corresponds with one or more properties of two or more properties. The loader returns a first callee function entry point associated with a first property when the first function call has the first property. The loader returns a second callee function entry point associated with a second property when the first function call has the second property. The first and second callee function entry points are for storing in a program linkage table. The request can be received when the first function call is first invoked or when the first module is loaded.
    Type: Application
    Filed: December 15, 2014
    Publication date: March 31, 2016
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Publication number: 20160070548
    Abstract: Embodiments describe a computer implemented method of compiling application source code into application object code. A compiler generates application object code having a plurality of table of contents TOC placeholder locations for a potential TOC pointer value command within a calling function. A first function call site of the calling function is corresponded to a first TOC placeholder location. A second function call site of the calling function is corresponded to a second TOC placeholder location.
    Type: Application
    Filed: September 5, 2014
    Publication date: March 10, 2016
    Inventors: Michael Karl Gschwind, Ulrich Weigand
  • Patent number: 9280333
    Abstract: An object has an unresolved symbol corresponding with a direct first function call in a first module of the object. A loader receives a request to resolve the symbol and identifies a callee function called by the first function call, identifies a second module in which the callee function is located, and determines whether the function call corresponds with one or more properties of two or more properties. The loader returns a first callee function entry point associated with a first property when the first function call has the first property. The loader returns a second callee function entry point associated with a second property when the first function call has the second property. The first and second callee function entry points are for storing in a program linkage table. The request can be received when the first function call is first invoked or when the first module is loaded.
    Type: Grant
    Filed: December 15, 2014
    Date of Patent: March 8, 2016
    Assignee: International Business Machines Corporation
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Patent number: 9274769
    Abstract: Embodiments describe a computer implemented method of compiling application source code into application object code. A compiler generates application object code having a plurality of table of contents TOC placeholder locations for a potential TOC pointer value command within a calling function. A first function call site of the calling function is corresponded to a first TOC placeholder location. A second function call site of the calling function is corresponded to a second TOC placeholder location.
    Type: Grant
    Filed: September 5, 2014
    Date of Patent: March 1, 2016
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Ulrich Weigand
  • Patent number: 9250881
    Abstract: An object has an unresolved symbol corresponding with a direct first function call in a first module of the object. A loader receives a request to resolve the symbol and identifies a callee function called by the first function call, identifies a second module in which the callee function is located, and determines whether the function call corresponds with one or more properties of two or more properties. The loader returns a first callee function entry point associated with a first property when the first function call has the first property. The loader returns a second callee function entry point associated with a second property when the first function call has the second property. The first and second callee function entry points are for storing in a program linkage table. The request can be received when the first function call is first invoked or when the first module is loaded.
    Type: Grant
    Filed: September 30, 2014
    Date of Patent: February 2, 2016
    Assignee: International Business Machines Corporation
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Patent number: 9250875
    Abstract: Embodiments describe a computer implemented method of compiling application source code into application object code. A compiler generates application object code having a plurality of table of contents TOC placeholder locations for a potential TOC pointer value command within a calling function. A first function call site of the calling function is corresponded to a first TOC placeholder location. A second function call site of the calling function is corresponded to a second TOC placeholder location.
    Type: Grant
    Filed: October 9, 2014
    Date of Patent: February 2, 2016
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Ulrich Weigand
  • Patent number: 9244663
    Abstract: A compiler identifies a function call in computer code. A linker directive associates the function call with a single table of contents (TOC) pointer value save placeholder. This single placeholder is the only TOC pointer value save placeholder associated with the function call. When a TOC pointer value save instruction occupies the placeholder, it ensures that the TOC pointer value is saved before the function call. The linker directive is then modified to associate the function call with two or more TOC pointer value save placeholders. When a TOC pointer value save instruction occupies at least one of the placeholders, it ensures that the TOC pointer value is saved before the function call. Under some circumstances, two or more of the placeholders must be occupied by a TOC pointer value save instruction to ensure that the TOC pointer value is saved before the function call.
    Type: Grant
    Filed: December 22, 2014
    Date of Patent: January 26, 2016
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Ulrich Weigand
  • Patent number: 9229695
    Abstract: Embodiments relate to usage of a table of contents (TOC) register as an application register. An aspect includes receiving, by a computer system, application object code comprising a first function call from a calling function to a first callee function, and a symbol table entry in a symbol table comprising a first TOC register usage indicator that is associated with the first callee function. Another aspect includes determining that the first callee function of the first function call does not require a TOC pointer based on the first TOC register usage indicator that is associated with the first callee function in the symbol table. Another aspect includes based on determining that the first callee function of the first function call does not require a TOC pointer, inserting a TOC save command and a TOC restore command corresponding to the first local function call into the application object code.
    Type: Grant
    Filed: September 11, 2014
    Date of Patent: January 5, 2016
    Assignee: International Business Machines Corporation
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Patent number: 9218168
    Abstract: A compiler identifies a first function call site in a calling function that requires an unconditional Table of Contents (TOC) save of the TOC pointer value. The compiler identifies a first location for the unconditional TOC save that dominates the first function call site. The compiler also identifies a second function call site in the calling function that requires a conditional or unconditional TOC save, and determines that the first location also dominates the second function call site. The compiler emits a TOC save instruction at the first location that satisfies both the unconditional TOC save requirement for the first function call site and the conditional or unconditional TOC save requirement for the second function call site. The compiler then indicates that the emitted TOC save instruction satisfies the TOC save requirement for the second function call site, thus suppressing further TOC save actions for the second function call site.
    Type: Grant
    Filed: October 10, 2014
    Date of Patent: December 22, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Ulrich Weigand
  • Patent number: 9218170
    Abstract: A compiler identifies a function call in computer code. A linker directive associates the function call with a single table of contents (TOC) pointer value save placeholder. This single placeholder is the only TOC pointer value save placeholder associated with the function call. When a TOC pointer value save instruction occupies the placeholder, it ensures that the TOC pointer value is saved before the function call. The linker directive is then modified to associate the function call with two or more TOC pointer value save placeholders. When a TOC pointer value save instruction occupies at least one of the placeholders, it ensures that the TOC pointer value is saved before the function call. Under some circumstances, two or more of the placeholders must be occupied by a TOC pointer value save instruction to ensure that the TOC pointer value is saved before the function call.
    Type: Grant
    Filed: May 29, 2015
    Date of Patent: December 22, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Ulrich Weigand
  • Publication number: 20150309810
    Abstract: Embodiments relate to a global entry point and a local entry point for a callee function. An aspect includes executing, by a processor, a function call from a calling function to the callee function. Another aspect includes, based on the function call being a direct and external function call, entering the callee function at the global entry point and executing prologue code in the callee function that calculates and stores a table of contents (TOC) value for the callee function in a TOC register. Another aspect includes, based on the function call being a direct and local function call, entering the callee function at the local entry point, wherein entering the callee function at the local entry point skips the prologue code. Another aspect includes, based on the function call being an indirect function call, entering the callee function at the global entry point and executing the prologue code.
    Type: Application
    Filed: April 28, 2014
    Publication date: October 29, 2015
    Applicant: International Business Machines Corporation
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Publication number: 20150309812
    Abstract: Embodiments relate to a global entry point and a local entry point for a callee function. An aspect includes executing, by a processor, a function call from a calling function to the callee function. Another aspect includes, based on the function call being a direct and external function call, entering the callee function at the global entry point and executing prologue code in the callee function that calculates and stores a table of contents (TOC) value for the callee function in a TOC register. Another aspect includes, based on the function call being a direct and local function call, entering the callee function at the local entry point, wherein entering the callee function at the local entry point skips the prologue code. Another aspect includes, based on the function call being an indirect function call, entering the callee function at the global entry point and executing the prologue code.
    Type: Application
    Filed: September 11, 2014
    Publication date: October 29, 2015
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Publication number: 20150301848
    Abstract: Migrating a process from a source system with a source operating system to a target system with a target operating system is provided, where the source and target systems or source and target operating system are incompatible. The migrating includes: employing an emulator at the target system to execute code associated with the process being migrated, the emulator performing: translating of system calls and runtime library calls for the source operating system to calls of the target operating system using a system call translator and runtime library translator; translating source application code associated with the process into binary target application code executable on the target system, using a compiler where the source application code has not been translated; and executing the translated binary target application code on the target system, and discontinuing emulation of the process at the target system once the executing begins.
    Type: Application
    Filed: October 18, 2013
    Publication date: October 22, 2015
    Inventors: Jochen ROEHRIG, Wolfgang REICHERT, Ulrich WEIGAND
  • Patent number: 9146715
    Abstract: A compiler identifies a first function call site in a calling function that requires an unconditional Table of Contents (TOC) save of the TOC pointer value. The compiler identifies a first location for the unconditional TOC save that dominates the first function call site. The compiler also identifies a second function call site in the calling function that requires a conditional or unconditional TOC save, and determines that the first location also dominates the second function call site. The compiler emits a TOC save instruction at the first location that satisfies both the unconditional TOC save requirement for the first function call site and the conditional or unconditional TOC save requirement for the second function call site. The compiler then indicates that the emitted TOC save instruction satisfies the TOC save requirement for the second function call site, thus suppressing further TOC save actions for the second function call site.
    Type: Grant
    Filed: September 5, 2014
    Date of Patent: September 29, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Ulrich Weigand
  • Publication number: 20150261510
    Abstract: Embodiments relate to usage of a table of contents (TOC) register as an application register. An aspect includes receiving, by a computer system, application object code comprising a first function call from a calling function to a first callee function, and a symbol table entry in a symbol table comprising a first TOC register usage indicator that is associated with the first callee function. Another aspect includes determining that the first callee function of the first function call does not require a TOC pointer based on the first TOC register usage indicator that is associated with the first callee function in the symbol table. Another aspect includes based on determining that the first callee function of the first function call does not require a TOC pointer, inserting a TOC save command and a TOC restore command corresponding to the first local function call into the application object code.
    Type: Application
    Filed: September 11, 2014
    Publication date: September 17, 2015
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Patent number: 9110675
    Abstract: Embodiments relate to usage of a table of contents (TOC) register as an application register. An aspect includes receiving, by a computer system, application object code comprising a first function call from a calling function to a first callee function, and a symbol table entry in a symbol table comprising a first TOC register usage indicator that is associated with the first callee function. Another aspect includes determining that the first callee function of the first function call does not require a TOC pointer based on the first TOC register usage indicator that is associated with the first callee function in the symbol table. Another aspect includes based on determining that the first callee function of the first function call does not require a TOC pointer, inserting a TOC save command and a TOC restore command corresponding to the first local function call into the application object code.
    Type: Grant
    Filed: March 12, 2014
    Date of Patent: August 18, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael K. Gschwind, Ulrich Weigand
  • Patent number: 8726252
    Abstract: A compiler of a single instruction multiple data (SIMD) information handling system (IHS) identifies “if-then-else” statements that offer opportunity for conditional branch conversion. The SIMD IHS employs a processor or processors to execute the executable program. During execution, the processor generates and updates SIMD lane mask information to track and manage the conditional branch loops of the executing program. The processor saves branch addresses and employs SIMD lane masks to identify conditional branch loops with different branch conditions than previous conditional branch loops. The processor may reduce SIMD IHS processing time during processing of compiled code of the original “if-then-else” statements. The processor continues processing next statements inline after all SIMD lanes are complete, while providing speculative and parallel processing capability for multiple data operations of the executable program.
    Type: Grant
    Filed: January 28, 2011
    Date of Patent: May 13, 2014
    Assignee: International Business Machines Corporation
    Inventors: Alexandre E. Eichenberger, Brian Flachs, Dorit Nuzman, Ira Rosen, Ulrich Weigand, Ayal Zaks
  • Patent number: 8683185
    Abstract: The illustrative embodiments comprise a method, data processing system, and computer program product having a processor unit for processing instructions with loops. A processor unit creates a first group of instructions having a first set of loops and second group of instructions having a second set of loops from the instructions. The first set of loops have a different order of parallel processing from the second set of loops. A processor unit processes the first group. The processor unit monitors terminations in the first set of loops during processing of the first group. The processor unit determines whether a number of terminations being monitored in the first set of loops is greater than a selectable number of terminations. In response to a determination that the number of terminations is greater than the selectable number of terminations, the processor unit ceases processing the first group and processes the second group.
    Type: Grant
    Filed: July 26, 2010
    Date of Patent: March 25, 2014
    Assignee: International Business Machines Corporation
    Inventors: Brian Flachs, Charles Ray Johns, Ulrich Weigand
  • Patent number: 8359435
    Abstract: A method for computing includes executing a program, including multiple cacheable lines of executable code, on a processor having a software-managed cache. A run-time cache management routine running on the processor is used to assemble a profile of inter-line jumps occurring in the software-managed cache while executing the program. Based on the profile, an optimized layout of the lines in the code is computed, and the lines of the program are re-ordered in accordance with the optimized layout while continuing to execute the program.
    Type: Grant
    Filed: December 16, 2009
    Date of Patent: January 22, 2013
    Assignee: International Business Machines Corporation
    Inventors: Revital Erez, Brian Flachs, Mark Richard Nutter, John Kevin Patrick O'Brien, Ulrich Weigand, Ayal Zaks
  • Patent number: 8332594
    Abstract: Memory management of processing systems running in a virtual computer environment and of processes running in an operating system environment includes identifying a usage pattern of a page in memory. The usage pattern is identified by tracking operations conducted with respect to the page. The memory management also includes designating the page as a candidate for sharing when the usage pattern reflects that a number of updates made to the page does not exceed a predefined threshold value. The candidate page is allocated to a first process or virtual machine. The memory management also includes sharing access to the candidate page with a second process or virtual machine when content in the candidate page matches content of page allocated for the second process or virtual machine to an address space of the candidate page.
    Type: Grant
    Filed: June 28, 2010
    Date of Patent: December 11, 2012
    Assignee: International Business Machines Corporation
    Inventors: Christian Borntraeger, Christian Ehrhardt, Carsten Otte, Martin Schwidefsky, Ulrich Weigand