On Wed, Oct 22, 2014 at 09:45:29AM +0200, FX wrote: > I’m afraid I don’t understand the reasoning here: > > > Since malloc and free are magically provided by the ptx environment, but > > realloc is missing, it's nontrivial to provide an implementation for it. > > The Fortran frontend likes to generate calls to realloc, but in one case it > > seems like we can compute the old size, and call a function that does > > malloc/memcpy/free instead. > > Does "nontrivial to provide” mean that you don’t provide a realloc() > implementation in libc or libgcc? If so, I’m afraid the Fortran compiler will > be terminally broken, and fixing just one of the use cases is not sufficient.
Yeah, I wonder why can't you just wrap the PTX "malloc"/"free" by allocating small header in front of the allocated area where your wrapping implementation will deal with everything you need (remember the size of the allocation, so realloc can work, or if PTX malloc doesn't support alignment, also bias so that you can support aligned_alloc or posix_memalign). As an optimization, if the compiler could prove that certain allocations are never realloced, never need aligned memory etc., you could optimize it to avoid the wrappers and use PTX "malloc"/"free" directly. Jakub