llvm-project
ba01e8d2 - [Flang][OpenMP] Allow user-defined default mappers to bypass the implicit mapper fence (#189136)

Commit
16 days ago
[Flang][OpenMP] Allow user-defined default mappers to bypass the implicit mapper fence (#189136) Currently we wall out implicit declare mappers from being applied to enter/exit/update (which we'll need to address in future PRs, as this likely should work to some extent for allocatable member mapping). A side effect of this is that it's causing user-defined default declare mappers to not apply in scenarios when they should. I believe these user-defined default declare mappers should apply in all cases where that type is mapped and no other mapper has been explicitly specified, as they replace the original default mapping behaviour from my admittedly shoddy specification reading skills. The user defined default mappers should "implicitly" apply because: 1. No explicit mapper modifier is specified 2. The fallback behavior should be "as if the modifier was specified with the default mapper-identifier" (Section 5.9) 3. The user-defined default mapper "overrides the predefined default mapper for the given type" (Section 5.8.2) This was 5.2-ish sectioning so information might be outdated for 6+ and the rules might be changed (if I interpreted them correctly in the first place). There's a couple of other tweaks I did in the refactoring, mainly making sure the explicit mapper can be used in conjunction with possible specified default mappers for other types. As technically, you're allowed to specify one mapper and map other bits and pieces in the same mapping clause and the mapper simply doesn't apply to the other things not of the same type.
Author
Parents
Loading