-
Notifications
You must be signed in to change notification settings - Fork 33
#1312 ScalarArray code generation #3101
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
base: master
Are you sure you want to change the base?
Conversation
| def scalar_array(self, scalar_arr_arg, var_accesses=None): | ||
| ''' | ||
| Override the default implementation as there's no need to specify | ||
| ScalarArrays for an OpenACC data region. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This isn't true I'm afraid - they will need to be added to a data region. However, you could leave this as a TODO as I'm not sure we're ever going to need data regions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for that - it's currently a very rough draft so some of the comments are currently just borrowed from other functions. But, I will definitely note that down!
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3101 +/- ##
==========================================
- Coverage 99.95% 99.95% -0.01%
==========================================
Files 377 378 +1
Lines 53667 53766 +99
==========================================
+ Hits 53645 53743 +98
- Misses 22 23 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
This still isn't working as intended, but is getting closer to correct. As an example, the code gen is now adding the scalar arrays to the generated code, alongside the arrays containing their dimensions. However, it is not adding these dimensions to the generated code (e.g., no Furthermore, the stub_gen test is failing because we are currently adding the dimensions array to the psyir layer as an |
…and fix relevant test ordering
|
I'm having a little trouble getting Still trying to find what needs adding to fix this. |
|
This is now working and passing the tests with and without compilation. I'll warn you that I've had to do a slightly strange fix to correct the ordering of the declarations in code generation. As mentioned on Monday, there isn't a way of changing the order of declarations - they appear in the order that they are added to the symbol table. Since the ScalarArray is an argument it was always being added before the dimensions array, and this was causing compile time errors as the dimensions array is being used in the ScalarArray declaration. My fix for this is simply finding the ScalarArray in the symbol table and replacing it with itself, so that it is being added after the dimensions array. Hopefully you're happy with this This should now be ready for review again |
|
I'm not sure why CodeCov has only just decided that this was a problem. I've looked at the line it's complaining about (line 773 in arg_ordering.py) and I don't see an easy way of avoiding this problem without splitting I still think that this is ready for review, and would be interested if you have any thoughts about this |
Adding code generation for ScalarArrays (towards #1312 ). The metadata support was added in #2173.