llvm-project
e0054e98 - [MLIR][OpenMP] Emit nullary check for mapped pointer members and appropriate size select based on results (#124604)

Commit
248 days ago
[MLIR][OpenMP] Emit nullary check for mapped pointer members and appropriate size select based on results (#124604) This PR aims to fix a mapping error when trying to map nullary elements of a record type (primary example is allocatables/pointer types in Fortran at the moment). This should be legal to map, just not write to without pointing to anything within the target region. A common Fortran OpenMP idiom/example where this is useful can be found in the added Fortran offload example. The runtime error arises when we try to map the pointer member utilising a prescribed constant size that we receive from the lowered type, resulting in mapping of data that will be non-existent when there is no allocated data. The fix in this case is to emit a runtime check to see if the data has been allocated, if it hasn't been we select a size of 0, if it has we emit the usual type size.
Author
Parents
Loading