diff options
author | Erich Keane <ekeane@nvidia.com> | 2025-09-24 08:55:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-24 08:55:43 -0700 |
commit | 41387abd33bef7655807c5b720a34b05184cc040 (patch) | |
tree | aaa1fdaa80fb4cbd3185a2e28ca17d77e93d70ee /llvm/lib/IR/LLVMContext.cpp | |
parent | 8f7cfd4e9eaf319d21b56e4b51a72ac286c97fa8 (diff) | |
download | llvm-41387abd33bef7655807c5b720a34b05184cc040.zip llvm-41387abd33bef7655807c5b720a34b05184cc040.tar.gz llvm-41387abd33bef7655807c5b720a34b05184cc040.tar.bz2 |
[CIR][OpenACC] Implement pointer/array recipe destructors (#160189)
After previous implementation, I discovered that we were both doing
arrays incorrectly for recipes, plus didn't get the pointer allocations
done correctly. This patch is the first of a few in a series that
attempts to make sure we get all pointers/arrays correct.
This patch is limited to just 'private' and destructors, which
simplifies the review significantly. Destructors are simply looped
through and called at each level.
The 'recipe-decl' is the 'least bounded' (that is, the type of the
expression, in the type of `int[5] i; #pragma acc parallel
private(i[1])`, the type of the `recipe-decl` is `int`. This allows
us to do init/destruction at the element level.
This patch also adds infrastructure for the rest of the series of
private (for the init section), as well as extensive testing for
'private', with a lot of 'TODO' locations.
Future patches will fill these in, but at the moment, there is an NYI
warning for bounds, so a number of tests are updated to handle that.
Diffstat (limited to 'llvm/lib/IR/LLVMContext.cpp')
0 files changed, 0 insertions, 0 deletions