Issue 151290
Summary [BUG][OpenMP][runtime]The OpenMP runtime memory mapping table cannot be properly deleted.
Labels new issue
Assignees
Reporter bmq7911
    Hello, I’ve encountered an issue with OpenMP in LLVM 17. While testing OpenMP memory mapping, I found that when using multi-level chained pointer access, the runtime mapping table cannot be correctly deleted due to reference counting.

For example, consider the following OpenMP directives:
```
#pragma omp target enter data map(to: s.ps->ps->ps->ps->i)
#pragma omp target exit data map(from: s.ps->ps->ps->ps->i)
```
After the enter data directive, the reference counts of the mapped objects are:
```
s.ps(1) -> ps(2) -> ps(2) -> ps(2) -> i(1)
```
Then, during exit data, the directive reduces the reference counts as follows:
```
s.ps(0) -> ps(1) -> ps(1) -> ps(1) -> i(0)
```
As a result, only the mappings for s.ps and i are deleted, while the intermediate mappings remain, which prevents proper cleanup.


_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to