Optimizing assembled code for execution using execution statistics collection, without inserting instructions in the code and reorganizing the code based on the statistics collected
First Claim
1. A computer-implemented method for optimizing assembled code organization for execution on a processor system, said assembled code being without instructions for execution statistics collection, said optimizing method comprising the steps of:
- (a) executing said assembled code on said processor system;
(b) simultaneous with said step (a), accumulating execution statistics on said assembled code within said processor system'"'"'s execution environment without requiring said instructions for execution statistics collection to be in said assembled code; and
(c) automatically re-configuring said executed assembled code organization by providing said execution statistics collected in said step (b) to an optimizer to improve execution performance of said executed assembled code within said processor system'"'"'s execution environment.
0 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, a software development technique is capable of efficiently organizing for execution a conditional code segment having multiple associated conditional paths. The development technique employs in association with each path of the code segment, a probability compiler directive which dictates to the compiler a probability for satisfying a conditional test of the associated path. In another aspect, a system/process is capable of optimizing organization of assembled program code for a code'"'"'s particular execution environment. This optimization approach tunes assembled code organization for each specific execution environment, employing run-time based statistical data collected during performance execution of the assembled code. The execution environment, consisting of hardware, software, and other factors such as workload, input data, etc., can also be collected and employed by an optimizer unit to best reorganize the assembled program code for a current execution environment.
158 Citations
20 Claims
-
1. A computer-implemented method for optimizing assembled code organization for execution on a processor system, said assembled code being without instructions for execution statistics collection, said optimizing method comprising the steps of:
-
(a) executing said assembled code on said processor system; (b) simultaneous with said step (a), accumulating execution statistics on said assembled code within said processor system'"'"'s execution environment without requiring said instructions for execution statistics collection to be in said assembled code; and (c) automatically re-configuring said executed assembled code organization by providing said execution statistics collected in said step (b) to an optimizer to improve execution performance of said executed assembled code within said processor system'"'"'s execution environment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for compiling and optimizing execution of a program code, said system comprising:
-
means for compiling said program code into assembled code without inserting instructions for execution statistics collection into said assembled code; memory means coupled to said compiling means for holding said assembled code for execution; a processor coupled to said memory means for executing said assembled code held by said memory means, said processor having an execution environment; means, coupled to said processor and to an optimizer, for collecting execution statistics on said assembled code executed by said processor without requiring said instructions for execution statistics collection to be in said assembled code; and means, including said optimizer, for re-configuring said executed assembled code, said re-configuring means employing said execution statistics collected by said collection means, said re-configuring means outputting a re-configured optimized assembled code. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method for optimizing assembled code organization for execution on a processor system, without inserting instructions for execution statistics collection into said assembled code, said optimizing method comprising the steps of:
-
(a) executing said assembled code on said processor system; (b) simultaneous with said step (a), and external to said step (a), accumulating execution statistics on said executed assembled code within said processor system'"'"'s execution environment; and (c) automatically re-configuring said executed assembled code organization by providing said execution statistics collected in said step (b) to an optimizer to improve execution performance of said executed assembled code within said processor system'"'"'s execution environment.
-
-
20. A system for compiling and enhancing execution of a program code, said system comprising:
-
means for compiling said program code into assembled code without inserting instructions for execution statistics collection into said assembled code; memory means coupled to said compiling means for holding said assembled code for execution; a processor coupled to said memory means for executing said assembled code held by said memory means, said processor having an execution environment; means, external to the assembled code and coupled to said processor and to an optimizer, for collecting execution statistics on said executed assembled code executed by said processor; and means, including said optimizer, for re-configuring said executed assembled code, said re-configuring means employing said execution statistics collected by said collection means, said re-configuring means outputting a re-configured optimized assembled code.
-
Specification