(Closes #3334 #1013) Permit only module-inlined Kernels to be transformed#3294
(Closes #3334 #1013) Permit only module-inlined Kernels to be transformed#3294
Conversation
|
Possibly I need to store the RoutineSymbol associated with a Kernel within the Kernel class (c.f. Call.reference). That way, I can tell whether it has been module-inlined or not and can get rid of the special flag for that. |
|
Note to self: I will need to remove the EDIT: can't do this because we do still output OpenCL versions of kernels in some tests. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3294 +/- ##
==========================================
- Coverage 99.95% 99.95% -0.01%
==========================================
Files 384 385 +1
Lines 54225 54087 -138
==========================================
- Hits 54203 54065 -138
Misses 22 22 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Coverage is now all good but the LFRic extraction integration test failed :-( |
|
In lfric/eg17/full_example_extract: $ diff main_psy.f90 on_main/main_psy.f90
4d3
< use testkern_w0_kernel_mod, only : testkern_w0_code
74a74
> use testkern_w0_kernel_mod, only : some_other_var, testkern_w0_codeso it appears the |
|
This turned out to be due to the fact that I've moved the import of Kernel routines up into the Container and then the ExtractNode was falling foul of #1734 |
| assert isinstance(kschedule.symbol_table.lookup("xstart").interface, | ||
| ArgumentInterface) | ||
| assert isinstance(kschedule.symbol_table.lookup("xstop").interface, | ||
| assert isinstance(kschedule.symbol_table.lookup("xstop_1").interface, |
There was a problem hiding this comment.
Why has this changed? I am a bit worried about this one because if the call had argument names, this would not match anymore.
|
Unfortunately, my change to |
Require that all kernel transformations act only on module-inlined Kernels.
Do away with the 'rename-and-write' functionality currently used for modified kernels.
We have to keep the
-okerncommand-line flag as that is used when creating OpenCL versions of Kernels.