Allocating call stack frame entries at different memory levels to functions in a program
First Claim
Patent Images
1. A method, comprising:
- traversing a call graph to process functions in a program in the call graph accessing state information stored in call stack frame entries;
allocating at least one call stack frame entry to the state information for each function, wherein the call stack frame entries span multiple memory levels, and wherein one function is capable of being allocated stack entries in multiple memory levels; and
updating a node for each function in the call graph to indicate one memory level and an offset into the indicated memory level indicating a location of the call stack frame entries allocated to the function.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, system, and program for allocating call stack frame entries at different memory levels to functions in a program. Functions in a program accessing state information stored in call stack frame entries are processed. Call stack frame entries are allocated to the state information for each function, wherein the call stack frame entries span multiple memory levels, and wherein one function is capable of being allocated stack entries in multiple memory levels.
20 Citations
33 Claims
-
1. A method, comprising:
-
traversing a call graph to process functions in a program in the call graph accessing state information stored in call stack frame entries; allocating at least one call stack frame entry to the state information for each function, wherein the call stack frame entries span multiple memory levels, and wherein one function is capable of being allocated stack entries in multiple memory levels; and updating a node for each function in the call graph to indicate one memory level and an offset into the indicated memory level indicating a location of the call stack frame entries allocated to the function. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
processing functions in a program accessing state information stored in call stack frame entries, wherein the functions are executed by multiple packet engines in a network processor; and allocating call stack frame entries to the state information for each function, wherein the call stack frame entries span multiple memory levels, wherein one function is capable of being allocated stack entries in multiple memory levels, and wherein the memory levels comprise at least one local memory specific to one packet engine and at least one attached memory device shared by the packet engines.
-
-
12. A system for translating code capable of accessing multiple memory levels, comprising:
-
a processor; a computer readable storage medium including a compiler program executed by the processor to perform; traverse a call graph to process functions in a program in the call graph accessing state information stored in call stack frame entries in the memory levels; allocate at least one call stack frame entry to the state information for each function, wherein the call stack frame entries span the multiple memory levels, and wherein one function is capable of being allocated stack entries in multiple memory levels; and update a node for each function in the call graph to indicate one memory level and an offset into the indicated memory level indicating a location of the call stack frame entries allocated to the function. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A system for translating code capable of accessing multiple memory levels, comprising:
-
a processor; a computer readable storage medium including a compiler program executed by the processor to perform; process functions in a program accessing state information stored in call stack frame entries in the memory levels, wherein the functions are executed by multiple packet engines in a network processor; allocate call stack frame entries to the state information for each function, wherein the call stack frame entries span the multiple memory levels, wherein one function is capable of being allocated stack entries in multiple memory levels, and wherein the memory levels comprise at least one local memory specific to one packet engine and at least one attached memory device shared by the packet engines.
-
-
23. An article of manufacture comprising a computer readable storage medium having a compiler executed by a processor to generate code capable of accessing a plurality of memory levels, wherein the compiler executed to perform operations comprising:
-
traversing a call graph to process functions in a program in the call graph accessing state information stored in call stack frame entries; allocating at least one call stack frame entry to the state information for each function, wherein the call stack frame entries span multiple memory levels, and wherein one function is capable of being allocated stack entries in multiple memory levels; and updating a node for each function in the call graph to indicate one memory level and an offset into the indicated memory level indicating a location of the call stack frame entries allocated to the function. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. An article of manufacture comprising a computer readable storage medium for generating code capable of accessing a plurality of memory levels, wherein the article of manufacture is enabled to perform operations comprising:
-
processing functions in a program accessing state information stored in call stack frame entries, wherein the functions are executed by multiple packet engines in a network processor; and allocating call stack frame entries to the state information for each function, wherein the call stack frame entries span multiple memory levels, wherein one function is capable of being allocated stack entries in multiple memory levels, and wherein the memory levels comprise at least one local memory specific to one packet engine and at least one attached memory device shared by the packet engines.
-
Specification