Patents by Inventor William Jon Schmidt

William Jon Schmidt 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).

  • Patent number: 9009681
    Abstract: Program execution profile data is collected by direct measurement of some code paths, and by inferring data for unmeasured paths. The data collection process may cause errors, which are propagated by the inferencing process. The profile data thus constructed is further enhanced by detecting certain data mismatches, and adjusting inferred data to reduce the scope of errors propagated during the inferencing process. Preferably, a control flow graph of the program being measured is constructed. Mismatches in the total weights of input arcs versus output arcs are detected. For certain specific types of mismatches, it can be known or guessed which count is incorrect, and this count is accordingly corrected. Correction of arc counts proceeds recursively until it is no longer possible to correct mismatches. Additionally, certain other conditions are adjusted as presumed inaccuracies.
    Type: Grant
    Filed: August 23, 2012
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Patent number: 8548984
    Abstract: Disclosed are an apparatus, method, and program product which each provide an enhanced database engine. Access to precise values is provided while permitting unfettered access to those who are not interested in precise values. This is accomplished via an enhanced database index and indexing method. The entries of the database index are normalized to exclude precision. Individuals interested in precision can then specify precision as part of their query through use of a PRECISE keyword. Results are then filtered to account for the specified precision.
    Type: Grant
    Filed: February 14, 2012
    Date of Patent: October 1, 2013
    Assignee: International Business Machines Corporation
    Inventors: Gary Ross Ricard, William Jon Schmidt
  • Publication number: 20120317553
    Abstract: Program execution profile data is collected by direct measurement of some code paths, and by inferring data for unmeasured paths. The data collection process may cause errors, which are propagated by the inferencing process. The profile data thus constructed is further enhanced by detecting certain data mismatches, and adjusting inferred data to reduce the scope of errors propagated during the inferencing process. Preferably, a control flow graph of the program being measured is constructed. Mismatches in the total weights of input arcs versus output arcs are detected. For certain specific types of mismatches, it can be known or guessed which count is incorrect, and this count is accordingly corrected. Correction of arc counts proceeds recursively until it is no longer possible to correct mismatches. Additionally, certain other conditions are adjusted as presumed inaccuracies.
    Type: Application
    Filed: August 23, 2012
    Publication date: December 13, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: William Jon Schmidt
  • Patent number: 8271960
    Abstract: Program execution profile data is collected by direct measurement of some code paths, and by inferring data for unmeasured paths. The data collection process may cause errors, which are propagated by the inferencing process. The profile data thus constructed is further enhanced by detecting certain data mismatches, and adjusting inferred data to reduce the scope of errors propagated during the inferencing process. Preferably, a control flow graph of the program being measured is constructed. Mismatches in the total weights of input arcs versus output arcs are detected. For certain specific types of mismatches, it can be known or guessed which count is incorrect, and this count is accordingly corrected. Correction of arc counts proceeds recursively until it is no longer possible to correct mismatches. Additionally, certain other conditions are adjusted as presumed inaccuracies.
    Type: Grant
    Filed: April 9, 2008
    Date of Patent: September 18, 2012
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Publication number: 20120143846
    Abstract: Disclosed are an apparatus, method, and program product which each provide an enhanced database engine. Access to precise values is provided while permitting unfettered access to those who are not interested in precise values. This is accomplished via an enhanced database index and indexing method. The entries of the database index are normalized to exclude precision. Individuals interested in precision can then specify precision as part of their query through use of a PRECISE keyword. Results are then filtered to account for the specified precision.
    Type: Application
    Filed: February 14, 2012
    Publication date: June 7, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Gary Ross Ricard, William Jon Schmidt
  • Patent number: 8131709
    Abstract: Disclosed are an apparatus, method, and program product which each provide an enhanced database engine. Access to precise values is provided while permitting unfettered access to those who are not interested in precise values. This is accomplished via an enhanced database index and indexing method. The entries of the database index are normalized to exclude precision. Individuals interested in precision can then specify precision as part of their query through use of a PRECISE keyword. Results are then filtered to account for the specified precision.
    Type: Grant
    Filed: January 14, 2005
    Date of Patent: March 6, 2012
    Assignee: International Business Machines Corporation
    Inventors: Gary Ross Ricard, William Jon Schmidt
  • Patent number: 8065669
    Abstract: A compiler (or interpreter) detects source language instructions performing arithmetic operations using a fixed point format (preferably packed decimal). Where the operation can be performed without loss of precision or violation of other constraints of the source language, the compiler automatically converts the operands to a floating point format (preferably Decimal Floating Point (DFP)) having hardware support, and re-converts results to the original fixed point format. Preferably, the compiler may combine multiple operations and instructions in an expression tree, analyze the tree, and selectively convert where possible. The compiler preferably performs a heuristic cost judgment in determining whether to use a particular conversion.
    Type: Grant
    Filed: March 13, 2008
    Date of Patent: November 22, 2011
    Assignee: International Business Machines Corporation
    Inventors: Robert John Donovan, William Jon Schmidt
  • Patent number: 7856618
    Abstract: A program feature set is compared to a processor feature set. The comparison may be performed in response to restoring the program onto a system or requesting its execution. The processor feature set represents zero, one or more optional hardware features supported by the processor, whereas the program feature set represents zero, one or more optional hardware features the program relies upon in its generated code. Comparison of the feature sets determines whether a particular program may run on a particular processor. Programs may be automatically or manually rebuilt to achieve full compatibility. If the comparison indicates that the program requires a feature not supported by the processor, the program is rebuilt based on the processor feature set. Alternatively, the program may be rebuilt in response to a rebuild request, rather than the comparison. The program is preferably rebuilt from an intermediate representation (IR) stored with or locatable from the program.
    Type: Grant
    Filed: August 4, 2005
    Date of Patent: December 21, 2010
    Assignee: International Business Machines Corporation
    Inventors: Robert John Donovan, Paul Lu Verne Godtland, Sherri Lynn McMeeking, Joseph Patrick Reynolds, Scott Thomas Robinson, Robert Ralph Roediger, William Jon Schmidt, Roger Wayne Southwick
  • Patent number: 7793277
    Abstract: A front-end compiler generates unique instructions for virtual method calls in intermediate representation code that may be passed to a back-end compiler. A back-end compiler in accordance with the preferred embodiments receives the intermediate representation code, and processes the unique instructions to generate therefrom equivalent code with explicit method calls, where possible. The machine code from the back-end compiler is then executed using sample inputs to generate profile data. The profile data and intermediate representation code are fed into the back-end compiler, which then generates code that may devirtualize virtual method calls according to the profile data by providing one or more explicit method calls for target methods that have an execution frequency (as indicated by the profile data) that exceeds a predetermined threshold.
    Type: Grant
    Filed: September 7, 2001
    Date of Patent: September 7, 2010
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Patent number: 7577942
    Abstract: Method, system and article of manufacture for monitoring variables. In one embodiment, information generated by a compiler is used to determine which variables need to be updated when performing a step, a “run to cursor” operation, and when a breakpoint is hit. This may be accomplished by providing as debugger data which variables may be affected at each statement of a program and a control flow graph for the program or procedure. The information about which variables may be affected can be stored as individual variables or sets of variables. When execution of the program being debugged is halted, only those variables whose values may have changed are refreshed in a variables window of a user interface.
    Type: Grant
    Filed: July 26, 2001
    Date of Patent: August 18, 2009
    Assignee: International Business Machines Corporation
    Inventors: Cary Lee Bates, William Jon Schmidt
  • Publication number: 20080189688
    Abstract: Program execution profile data is collected by direct measurement of some code paths, and by inferring data for unmeasured paths. The data collection process may cause errors, which are propagated by the inferencing process. The profile data thus constructed is further enhanced by detecting certain data mismatches, and adjusting inferred data to reduce the scope of errors propagated during the inferencing process. Preferably, a control flow graph of the program being measured is constructed. Mismatches in the total weights of input arcs versus output arcs are detected. For certain specific types of mismatches, it can be known or guessed which count is incorrect, and this count is accordingly corrected. Correction of arc counts proceeds recursively until it is no longer possible to correct mismatches. Additionally, certain other conditions are adjusted as presumed inaccuracies.
    Type: Application
    Filed: April 9, 2008
    Publication date: August 7, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: William Jon Schmidt
  • Publication number: 20080155498
    Abstract: A compiler (or interpreter) detects source language instructions performing arithmetic operations using a fixed point format (preferably packed decimal). Where the operation can be performed without loss of precision or violation of other constraints of the source language, the compiler automatically converts the operands to a floating point format (preferably Decimal Floating Point (DFP)) having hardware support, and re-converts results to the original fixed point format. Preferably, the compiler may combine multiple operations and instructions in an expression tree, analyze the tree, and selectively convert where possible. The compiler preferably performs a heuristic cost judgment in determining whether to use a particular conversion.
    Type: Application
    Filed: March 13, 2008
    Publication date: June 26, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Robert John Donovan, William Jon Schmidt
  • Publication number: 20080148224
    Abstract: A compiler (or interpreter) detects source language instructions performing arithmetic operations using a fixed point format (preferably packed decimal). Where the operation can be performed without loss of precision or violation of other constraints of the source language, the compiler automatically converts the operands to a floating point format (preferably Decimal Floating Point (DFP)) having hardware support, and re-converts results to the original fixed point format. Preferably, the compiler may combine multiple operations and instructions in an expression tree, analyze the tree, and selectively convert where possible. The compiler preferably performs a heuristic cost judgment in determining whether to use a particular conversion.
    Type: Application
    Filed: February 29, 2008
    Publication date: June 19, 2008
    Applicant: International Business Machines Corporation
    Inventors: Robert John Donovan, William Jon Schmidt
  • Patent number: 7389499
    Abstract: A compiler (or interpreter) detects source language instructions performing arithmetic operations using a fixed point format (preferably packed decimal). Where the operation can be performed without loss of precision or violation of other constraints of the source language, the compiler automatically converts the operands to a floating point format (preferably Decimal Floating Point (DFP)) having hardware support, and re-converts results to the original fixed point format. Preferably, the compiler may combine multiple operations and instructions in an expression tree, analyze the tree, and selectively convert where possible. The compiler preferably performs a heuristic cost judgment in determining whether to use a particular conversion.
    Type: Grant
    Filed: October 21, 2004
    Date of Patent: June 17, 2008
    Assignee: International Business Machines Corporation
    Inventors: Robert John Donovan, William Jon Schmidt
  • Patent number: 7386838
    Abstract: Program execution profile data is collected by direct measurement of some code paths, and by inferring data for unmeasured paths. The data collection process may cause errors, which are propagated by the inferencing process. The profile data thus constructed is further enhanced by detecting certain data mismatches, and adjusting inferred data to reduce the scope of errors propagated during the inferencing process. Preferably, a control flow graph of the program being measured is constructed. Mismatches in the total weights of input arcs versus output arcs are detected. For certain specific types of mismatches, it can be known or guessed which count is incorrect, and this count is accordingly corrected. Correction of arc counts proceeds recursively until it is no longer possible to correct mismatches. Additionally, certain other conditions are adjusted as presumed inaccuracies.
    Type: Grant
    Filed: April 3, 2003
    Date of Patent: June 10, 2008
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Patent number: 7120907
    Abstract: Methods and apparatus are disclosed for improved loop unrolling by a compiler. A large class of loops exists for which effective loop unrolling has not previously been performed because they are too large to be completely unrolled, but which do not have a single hot trace that covers an entire loop iteration. The present invention recognizes such loops that have partial hot traces identified using profile data. A set of instructions which constitute a proper superset of the hot trace and a proper subset of the entire loop, and which forms a complete loop iteration is identified. This set of instructions can then be unrolled without unrolling the entire loop.
    Type: Grant
    Filed: August 28, 2003
    Date of Patent: October 10, 2006
    Assignee: International Business Machines Corporation
    Inventors: Robert Ralph Roediger, William Jon Schmidt, Peter Jerome Steinmetz
  • Patent number: 7086043
    Abstract: A superblock unroller creates a superblock in a first instruction stream, and unrolls the superblock using different methods depending on the suitability of the superblock to different types of unrolling. The superblock unroller uses complete unrolling if a number of iterations of the superblock is sufficiently small and if the number of iterations is known at compile-time. The superblock unroller uses static unrolling if the number of iterations of the superblock is too large for complete unrolling and if the number of iterations is known at compile-time. The superblock unroller uses dynamic unrolling if the number of iterations of the superblock is unknown at compile-time. Each of these unrolling methods may include the insertion of count rectification code into the first instruction stream to account for execution that exits the superblock. Code performance may be improved by providing the sophisticated unrolling of superblocks disclosed herein.
    Type: Grant
    Filed: October 29, 2002
    Date of Patent: August 1, 2006
    Assignee: International Business Machines Corporation
    Inventors: Robert Ralph Roediger, William Jon Schmidt, Peter Jerome Steinmetz
  • Patent number: 7076773
    Abstract: An object oriented mechanism and method allow allocating Java objects on a method's invocation stack in a dynamic compilation environment under certain conditions. When a class is dynamically compiled by a just-in-time (JIT) compiler (as the program runs), one or more of its methods may create objects that may be placed on the method's invocation stack. During the compilation of the class, only the information relating to the previously-loaded classes is taken into account. After compilation, as each new class is loaded, the class is analyzed to see if loading the class might change the analysis used to allocate objects on the invocation stacks of previously-compiled methods. If so, the previous object allocations are analyzed in light of the object reference(s) in the newly loaded class, and the previous object allocations are changed from the invocation stack to the heap, if required.
    Type: Grant
    Filed: March 20, 2001
    Date of Patent: July 11, 2006
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Patent number: 7058943
    Abstract: An object oriented mechanism and method allow allocating Java objects on a method's invocation stack in a partial compilation environment under certain conditions. Only the classes that are visible are taken into account when performing escape analysis in accordance with the preferred embodiments. In a first aspect of the invention, conservative assumptions are made to assure that objects are only allocated on an invocation stack when this can be proven safe by examining only those classes in the compilation unit. In a second aspect of the invention, the concept of visible classes is extended to include other classes that may be found from a user-defined classpath that matches the anticipated run-time classpath used to find classes during program execution. When stack allocation decisions for a method depends on such classes that are outside the compilation unit, two versions of run time code for that method are created.
    Type: Grant
    Filed: May 24, 2001
    Date of Patent: June 6, 2006
    Assignee: International Business Machines Corporation
    Inventors: Marc Noel Blais, Daniel Rodman Hicks, William Jon Schmidt
  • Patent number: 6996806
    Abstract: In an exemplary aspect of the invention, a method for displaying a computer program organization on a screen monitor provides a graphical representation of a source code structure during a debugging session. The graphical representation may include a program call graph (PCG) or portion thereof for a procedure within the source code. The PCG may comprise a P_node to symbolize a procedure and an association reference to identify the relationship between two such procedures. Alternatively, the graphical representation may include a control flow graph (CFG) or portion thereof associated with a procedure within the source code. The procedure may comprise of one or more basic blocks, each basic block associated with a potentially executable source code statement. The CFG may comprise a B_node symbolizing a first basic block and an association reference to identify the relationship between two such basic blocks.
    Type: Grant
    Filed: September 21, 2001
    Date of Patent: February 7, 2006
    Assignee: International Business Machines Corporation
    Inventors: Cary Lee Bates, William Jon Schmidt