The results from check_allocs(foo, (...)) cannot strictly be expected to apply across Julia invocations or across any new method definitions (i.e. worlds). Furthermore, we don't have yet have sufficient testing to guarantee that our optimization pipeline in GPUCompiler will never diverge (however slightly) from the base Julia pipeline.
The unfortunate result is that we don't have the parity/stability guarantees we need from the Julia compiler to use check_allocs(foo, ...) for allocation-free guarantees at runtime.
This adds a note to clarify that such a usage is unsound.
The results from
check_allocs(foo, (...))
cannot strictly be expected to apply across Julia invocations or across any new method definitions (i.e. worlds). Furthermore, we don't have yet have sufficient testing to guarantee that our optimization pipeline in GPUCompiler will never diverge (however slightly) from the base Julia pipeline.The unfortunate result is that we don't have the parity/stability guarantees we need from the Julia compiler to use
check_allocs(foo, ...)
for allocation-free guarantees at runtime.This adds a note to clarify that such a usage is unsound.