IP Library Granted Patent US 8,527,962
Granted Patent B2
US 8,527,962 · App. 12/400,840 · Granted Sep 3, 2013

Promotion of a child procedure in heterogeneous architecture software

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,527,962
App. No.
12/400,840
Granted
Sep 3, 2013
Kind
B2
Abstract

A method for promotion of a child procedure in a software application for a heterogeneous architecture, wherein the heterogeneous architecture comprises a first architecture type and a second architecture type, comprises inserting a parameter representing a parallel frame pointer to a parent procedure of the child procedure into the child procedure; and modifying a reference in the child procedure to a stack variable of the parent procedure to include an indirect access to the parent procedure via the parallel frame pointer.

Claims (49)

1. A method for promotion of a child procedure in a software application for a heterogeneous architecture, wherein the heterogeneous architecture comprises a first architecture type and a second architecture type, the method comprising:

inserting via a microprocessor a parameter representing a parallel frame pointer to a parent procedure of the child procedure into the child procedure; and

modifying via the microprocessor a reference in the child procedure to a stack variable of the parent procedure to include an indirect access to the parent procedure via the parallel frame pointer.

2. The method of claim 1 , further comprising:

collecting the stack variable referenced in the child procedure in an aggregate;

allocating the aggregate in the stack of the parent procedure, and

modifying a reference to the stack variable in the parent procedure to include a reference to the aggregate.

3. The method of claim 2 , further comprising:

passing the address of the aggregate to a symmetric multiprocessing (SMP) runtime function, and

passing the parallel frame pointer, the parallel frame pointer comprising the address of the aggregate, to the promoted child procedure via the SMP runtime function.

4. The method of claim 1 , further comprising:

inserting a parameter representing a parallel frame pointer to an ancestor procedure of the child procedure into the child promoted procedure; and

modifying a reference in the child procedure to a stack variable of the ancestor procedure to include an indirect access via the parallel frame pointer to the ancestor parent procedure.

5. The method of claim 1 , further comprising:

inserting a reference to a parallel frame pointer to an ancestor procedure of the promoted child procedure in an aggregate allocated in the parent procedure; and

modifying a reference in the child procedure to a stack variable of the ancestor procedure to include indirect accesses through the parallel frame pointer to the ancestor parent procedure.

6. The method of claim 1 , further comprising:

compiling the parent procedure for the first architecture type; and

compiling the child procedure for the second architecture type.

7. A computer program product comprising a non-transitory computer readable storage medium containing computer code that, when executed by a computer, implements a method for promotion of a child procedure in a software application for a heterogeneous architecture, wherein the heterogeneous architecture comprises a first architecture type and a second architecture type, wherein the method comprises: inserting via a microprocessor of the computer a parameter representing a parallel frame pointer to a parent procedure of the child procedure into the child procedure; and

modifying via the microprocessor a reference in the child procedure to a stack variable of the parent procedure to include an indirect access to the parent procedure via the parallel frame pointer.

8. The computer program product according to claim 7 , further comprising:

collecting the stack variable referenced in the child procedure in an aggregate;

collecting the stack variable referenced in the child procedure in an aggregate;

allocating the aggregate in the stack of the parent procedure, and

modifying a reference to the stack variable in the parent procedure to include a reference to the aggregate.

9. The computer program product according to method of claim 8 , further comprising:

passing the address of the aggregate to a symmetric multiprocessing (SMP) runtime function, and

passing the parallel frame pointer, the parallel frame pointer comprising the address of the aggregate, to the promoted child procedure via the SMP runtime function.

10. The computer program product according to claim 7 , further comprising:

inserting a parameter representing a parallel frame pointer to an ancestor procedure of the child procedure into the child promoted procedure; and

modifying a reference in the child procedure to a stack variable of the ancestor procedure to include an indirect access via the parallel frame pointer to the ancestor parent procedure.

11. The computer program product according to claim 7 , further comprising:

inserting a reference to a parallel frame pointer to an ancestor procedure of the promoted child procedure in an aggregate allocated in the parent procedure; and

modifying a reference in the child procedure to a stack variable of the ancestor procedure to include indirect accesses through the parallel frame pointer to the ancestor parent procedure.

12. The computer program product according to claim 7 , further comprising:

compiling the parent procedure for the first architecture type; and

compiling the child procedure for the second architecture type.

13. A system for promotion of a child procedure in a software application for a heterogeneous architecture, the system comprising:

a first architecture type;

a second architecture type;

a compiler configured to compile the software application for the first architecture type and the second architecture type; and

a promotion module having a microprocessor, the microprocessor of the promotion module configured to insert a parameter representing a parallel frame pointer to a parent procedure of the child procedure into the child procedure and modify a reference in the child procedure to a stack variable of the parent procedure to include an indirect access to the parent procedure via the parallel frame pointer.

14. The system of claim 13 , wherein the promotion module is further configured to collect the stack variable referenced in the child procedure in an aggregate, allocate the aggregate in the stack of the parent procedure, and modify a reference to the stack variable in the parent procedure to include a reference to the aggregate.

15. The system of claim 14 , further comprising a symmetric multiprocessing (SMP) runtime function, the SMP runtime function configured to receive a reference to the aggregate.

16. The system of claim 15 , wherein the SMP runtime function is further configured to and pass the parallel frame pointer to the promoted child procedure, the parallel frame pointer comprising the address of the aggregate.

17. The system of claim 13 , wherein the promotion module is further configured to inserting a parameter representing a parallel frame pointer to an ancestor procedure of the child procedure into the child promoted procedure, and modify a reference in the child procedure to a stack variable of the ancestor procedure to include an indirect access via the parallel frame pointer to the ancestor parent procedure.

18. The system of claim 13 , wherein the promotion module is further configured to insert a reference to a parallel frame pointer to an ancestor procedure of the promoted child procedure in an aggregate allocated in the parent procedure; and modify a reference in the child procedure to a stack variable of the ancestor procedure to include indirect accesses through the parallel frame pointer to the ancestor parent procedure.

19. The system of claim 13 , wherein the compiler is further configured to compile the parent procedure for the first architecture type and compile the child procedure for the second architecture type.

Assignments (2)
CONVEYOR IS ASSIGNING UNDIVIDED 50% INTEREST Recorded Nov 8, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044413/0124 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2009
From: SILVERA, RAUL; TIOTTO, ETTORE; ZHANG, GUANSONG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022369/0742 →