Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[SYCL] Implement no-decomposition for kernel types that don't need it. (
#2477) Kernel arguments don't need to be decomposed unless they contain a pointer or a special type, so we don't want to decompose structs/arrays containing these. This patch accomplishes that. First, we add a new attribute without a spelling that is added during the 'checking' stage, that the later vistiors can then check to see if decomposition is necessary. Next, we add a new checker to run during the checking stage that applies the attribute based on logic. Basically, a container doesn't need to be decomposed if all of its 'children' are acceptable, so we simply hold a stack of the containers to tell which need to be decomposed. This, of course, works recursively. Finally, we add some new calls to the visitor that handle the case of a 'simple array' and a 'simple struct', which are ones that don't require decomposition.
- Loading branch information