-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ACCKernelsTrans should exclude character assignments #2854
Comments
I think the sensible thing for us to do is to exclude character assignments. In #2602 I did initially alter ACCKernelsTrans to exclude all character literals but that had a big, negative performance impact. Therefore, I refined it to check for character vars of assumed size. I can try just checking for literals on the RHS of assignments... |
We could have an option to permit them so that a developer can always enable them if the compiler is happy. |
A similar but related problem...we get an ICE in lib_mpp (the nml reading code therein) for:
where:
and the error is:
|
Sergi has pointed out that we don't have this problem in the OMP-related transformation script because there, we first use the PSyclone/src/psyclone/psyir/transformations/arrayassignment2loops_trans.py Lines 288 to 304 in 2307ac7
It's not a lot of code so I think the simplest solution is to copy that bit into the validate of ACCKernelsTrans. I think any other transformation will be OK because they too will have to first use ArrayAssignment2LoopsTrans .
|
Daley has found that if we include character assignments within a KERNELS region, the nvfortran compiler (24.5) errors with:
Unfortunately, a simple example does not replicate this problem which indicates it's probably a compiler bug and depends on the precise context.
NEMO source files that exercise this problem:
obs_group_def.f90
,sbccpl.f90
The text was updated successfully, but these errors were encountered: