Patent ReferencesComputer method and system for conservative-stack and generational heap garbage collection Garbage collection system for improved use of memory by removal of reference conflicts Unified compiler framework for control and data speculation with recovery code Method and apparatus for finding bugs related to garbage collection in a virtual machine Patent #: 6327701 InventorsApplicationNo. 211388 filed on 12/14/1998US Classes:717/133, Using procedure or function call graph707/205, File allocation707/206, Garbage collection717/132, Using program flow graph717/154, Including analysis of program717/155, Data flow analysis717/156, Using flow graph717/157Using procedure or function call graphExaminersPrimary: Morse, GregoryAssistant: Vo, Tuyet T. Attorney, Agent or FirmInternational ClassG06F 009/45AbstractA method is provided for tracking the type of at least one local variable after calling a subroutine. The exemplary method associates each one of a plurality of branch instructions calling the subroutine with a first information, which indicates the type of value stored in the local variable when each one of the plurality of branch instructions is executed. The exemplary method associates at least one execution point-of-interest within the subroutine with a second information. The execution point-of-interest is any point within the subroutine where it may be necessary to ascertain the type of each local variable. The second information is a data structure indicating a change in type made to the local variable after entering the subroutine and before the execution point-of-interest. The exemplary method associates the execution point-of-interest with a return address for the subroutine. This return address enables the method to identify the point in the calling program from which the current subroutine was called. When a request is received to identify the type of the local variable at the execution point-of-interest in the subroutine, the exemplary method obtains a second map from the second information using the execution point-of-interest. The second map indicates the change in type of the local variable made within the subroutine. The method also obtains the return address associated with the execution point-of-interest, and obtains a first map from the first information using the return address. The first map indicates the type of value stored in the local variable when one of the branch instructions is executed to call the subroutine. Given the first and second maps, the exemplary method merges the first map with the second map to identify a current type for the local variable. In performing this merge, the method combines the type status of the local variable as modified by the subroutine with the type status of the local variable as it stood before calling the subroutine.Other References
| |