Post-register allocation profile directed instruction scheduling
First Claim
1. A computer implemented method for selective instruction scheduling, the computer implemented method comprising:
- determining whether a region of code exceeds a modification threshold after performing register allocation on the region of code;
recording a number of register spills, a number of register copies and a number of register exchanges that occur during register allocationresponsive to determining that the region of code exceeds the modification threshold, marking the region of code as a modified region of code;
responsive to marking the region of code as the modified region of code, determining whether the region of code exceeds an execution threshold;
and responsive to determining that the region of code is marked as a modified region of code and determining that the region of code exceeds the execution threshold, performing post-register allocation instruction scheduling on the region of code.
5 Assignments
0 Petitions
Accused Products
Abstract
A computer implemented method, system, and computer usable program code for selective instruction scheduling. A determination is made whether a region of code exceeds a modification threshold after performing register allocation on the region of code. The region of code is marked as a modified region of code in response to the determination that the region of code exceeds the modification threshold. A determination is made whether the region of code exceeds an execution threshold in response to the determination that the region of code is marked as a modified region of code. Post-register allocation instruction scheduling is performed on the region of code in response to the determination that the region of code is marked as a modified region of code and the determination that the region of code exceeds the execution threshold.
-
Citations
18 Claims
-
1. A computer implemented method for selective instruction scheduling, the computer implemented method comprising:
-
determining whether a region of code exceeds a modification threshold after performing register allocation on the region of code; recording a number of register spills, a number of register copies and a number of register exchanges that occur during register allocation responsive to determining that the region of code exceeds the modification threshold, marking the region of code as a modified region of code; responsive to marking the region of code as the modified region of code, determining whether the region of code exceeds an execution threshold; and responsive to determining that the region of code is marked as a modified region of code and determining that the region of code exceeds the execution threshold, performing post-register allocation instruction scheduling on the region of code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
a processor for executing an operating system and a dynamic compiler; and a storage operably coupled to the processor for storing the operating system and dynamic compiler wherein the operating system and dynamic compiler may be loaded into a main memory for execution by the processor wherein the dynamic compiler determines whether a region of code exceeds a modification threshold after performing register allocation on the region of code, recording a number of register spills, a number of register copies and a number of register exchanges that occur during register allocation, marks the region of code as a modified region of code in response to a determination that the region of code exceeds a modification threshold, determines whether the region of code exceeds an execution threshold in response to determining that the region of code is marked as a modified region of code, and performs post-register allocation instruction scheduling on the modified region of code in response to the determination that the region of code is marked as a modified region of code and that the region of code exceeds the execution threshold. - View Dependent Claims (12, 13, 14)
-
-
15. A computer program product comprising a computer usable medium including computer usable program code for selective instruction scheduling, said computer program product including:
-
computer usable program code for determining whether a region of code exceeds a modification threshold after performing register allocation on the region of code; computer usable program code for recording a number of register spills, a number of register copies and a number of register exchanges that occur during register allocation computer usable program code responsive to determining the region of code exceeds a modification threshold, for marking the region of code as a modified region of code; computer usable program code responsive to determining that the region of code has been marked as a modified region of code, for determining whether a region of code exceeds an execution threshold; and computer usable program code responsive to the region of code being marked as a modified region of code and determining that the region of code exceeds the execution threshold, for performing post-register allocation instruction scheduling on the modified region of code. - View Dependent Claims (16, 17, 18)
-
Specification