Multi-stage profiler
AssigneeInternational Business Machines Corporation
InventorsRobert Ralph Roediger, William Jon Schmidt
Life of this patent
Estimating the term…
Abstract
A profiler that operates in a multi-stage environment is disclosed. As program code undergoes a series of transformations, branches of interest are selected and tracked. Regardless of how many transformations are involved only a single instrumentation/data gathering phase is required. The gathered profile data is then used to perform various optimizations at the differing transformation stages.
Claims17
A method for optimizing a program, said method comprising the steps of:
- analyzing N branching structures for said program, each said branching structure being a different representation of said program;
- collecting profile data once for said program;
- applying said profile data to each of said N branching structures so that an optimized branching structure is created;
- and
- optimizing said program based on said profile data and said optimized branching structure.
A method for optimizing a program, said method comprising the steps of:
- identifying one or more first branches within a first branching structure of said program;
- instrumenting second branches within a second branching structure of said program;
- collecting profile data based on said instrumentation step;
- applying said profile data to said first branching structure at said first branches;
- optimizing said program based on said first branching structure and thereby creating a third branching structure;
- applying said profile data to said third branching structure;
- and
- optimizing said program based on said third branching structure.
A program product for optimizing a program, said program product comprising:
- signal bearing media;
- and
- a program stored on said signal bearing media that is configured to carry out the steps of:
- analyzing N branching structures for said program, each said branching structure being a different representation of said program;
- collecting profile data once for said program;
- applying said profile data to each of said N branching structures so that an optimized branching structure is created;
- and
- optimizing said program based on said profile data and said optimized branching structure.
A program product for optimizing a program, said program product comprising:
- signal bearing media;
- and
- a program stored on said signal bearing media that is configured to carry out the steps of:
- identifying one or more first branches within a first branching structure of said program;
- instrumenting second branches within a second branching structure of said program;
- collecting profile data based on said instrumentation step;
- applying said profile data to said first branching structure at said first branches;
- optimizing said program based on said first branching structure and thereby creating a third branching structure;
- applying said profile data to said third branching structure;
- and
- optimizing said program based on said third branching structure.
An apparatus, said apparatus comprising:
- a processor;
- memory connected to said processor;
- and
- a translator stored in said memory, said translator being configured to carry out the steps of:
- analyzing N branching structures for said program, each said branching structure being a different representation of said program;
- collecting profile data once for said program;
- applying said profile data to each of said N branching structures so that an optimized branching structure is created;
- and
- optimizing said program based on said profile data and said optimized branching structure.
An apparatus, said apparatus comprising:
- a processor;
- memory connected to said processor;
- and
- a translator stored in said memory, said translator being configured to carry out the steps of:
- identifying one or more first branches within a first branching structure of said program;
- instrumenting second branches within a second branching structure of said program;
- collecting profile data based on said instrumentation step;
- applying said profile data to said first branching structure at said first branches;
- optimizing said program based on said first branching structure and thereby creating a third branching structure;
- applying said profile data to said third branching structure;
- and
- optimizing said program based on said third branching structure.
Dependencies are inferred from the claim text.