Argonne National Laboratory

Handling Pointers and Dynamic Memory

TitleHandling Pointers and Dynamic Memory
Publication TypeConference Paper
Year of Publication2012
AuthorsHascoet, L, Utke, J
Other NumbersANL/MCS-P2013-0112

Proper handling of pointers and the (de)allocation of dynamic memory in the context of an adjoint computation via source transformation has so far had no established solution that is both comprehensive and efficient. This paper gives a categorization of the memory references involving pointers to heap and stack memory along with principal options to recover addresses in the reverse sweep. The main contributions are a code analysis algorithm to determine which remedy applies, memory mapping algorithms for the general case where one cannot assume invariant absolute addresses and an algorithm for the handling of pointers upon restoring checkpoints that reuses the memory mapping approach for the reverse sweep.