×

Methods for comparing versions of a program

  • US 7,571,427 B2
  • Filed: 06/24/2004
  • Issued: 08/04/2009
  • Est. Priority Date: 11/14/2000
  • Status: Expired due to Fees
First Claim
Patent Images

1. A computer-implemented method for propagating profile information from a first version of a program into a second version of a program, the method comprising:

  • identifying a portion of the first version of the program, wherein the portion of the first version of the program is in a binary format;

    identifying a portion of the second version of the program, wherein the portion of the second version of the program is in a binary format;

    determining whether the portion of the first version of the program is equivalent to the portion of the second version of the program;

    reusing preexisting profile information from the first version of the program for the second version of the program when the portion of the first version of the program is equivalent to the portion of the second version of the program, wherein the preexisting profile information includes the execution characteristics of the portion of the first version during runtime;

    when the portion of the first version of the program is not equivalent to the portion of the second version of the program,determining whether the portion of the first version of the program matches the portion of the second version of the program according to a fuzziness level, wherein the fuzziness level includes at least one member of a group comprising;

    a fuzziness level having opcodes and operands included in the fuzziness level, a fuzziness level having address offsets excluded from the fuzziness level, a fuzziness level having an address offset from a beginning of a target block excluded from the fuzziness level, a fuzziness level having immediate operands and operands of return instructions excluded from the fuzziness level, a fuzziness level having opcode and types of operands included in the fuzziness level, and a fuzziness level having only opcode included in the fuzziness level,reusing preexisting profile information from the first version of the program for the second version of the program when the portion of the first version of the program matches the portion of the second version of the program according to the fuzziness level, wherein the preexisting profile information includes the execution characteristics of the portion of the first version during runtime, andwhen the portion of the first version of the program does not match the portion of the second version of the program according to the fuzziness level, collecting new profile information for the portion of the second version of the program.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×