llvm-project
4a28ba60 - [flang][cuda][openacc] Add UseDevice attribute to model host_data use_device symbols (#195182)

Commit
1 day ago
[flang][cuda][openacc] Add UseDevice attribute to model host_data use_device symbols (#195182) Symbols appearing in `!$acc host_data use_device(...)` were previously marked with `CUDADataAttr::Device`, which caused generic resolution to fail. Introduce a new CUDADataAttr::UseDevice enumerator and use it in `CopySymbolWithDevice` / `CloneDerivedTypeForUseDeviceImpl` instead of Device. The new attribute is: 1. Compatible with any dummy in AreCompatibleCUDADataAttrs. 2. Ranked in the matching distance table (GetMatchingDistance): prefers Device dummies (0), accepts Managed/Unified (2), and allows host dummies (3). 3. Not user-spellable — only set internally during OpenACC name resolution, never parsed from source or written to module files. 4. Treated like Device for non-host-array checks, I/O restrictions, and MLIR lowering (mapped to `cuf::DataAttribute::Device`).
Author
Parents
Loading