PSyclone
PSyclone copied to clipboard
(Closes #2499) scalarization transformation implementation
First implementation is here. I have unit tests for the private routines, I need to test it with code examples doing the full transformation properly but in theory its implemented here for now.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 99.86%. Comparing base (
6f618c9) to head (ed75417). Report is 351 commits behind head on master.
Additional details and impacted files
@@ Coverage Diff @@
## master #2563 +/- ##
=======================================
Coverage 99.86% 99.86%
=======================================
Files 357 355 -2
Lines 48332 48402 +70
=======================================
+ Hits 48266 48339 +73
+ Misses 66 63 -3
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@hiker Quick question on how the ordering of statements goes with the dependency system - if you have an assignment such as a = a + 1 does the a access on the RHS appear before the a on the LHS? I assume so (and that makes sense) but I just wanted to double check as I have a superfluous (and unreachable) if statement if so.
@sergisiso this is ready for a first look. I didn't add anything to user or dev guide for now, let me know if you think I should.
I'm waiting for hiker to clarify my question before I remove the code at lines 123 in the transformation, but I expect to remove those lines as I think they're unreachable.
@sergisiso I've addressed most of the comments here - I think the next_access one is a bigger issue than just here (and we need to decide if the variable access tooling should handle this or if we just do it in next_access, but I think we can do an implementation for this in the mean time anyway).
I need to still expand the tests for the apply routine and add documentation before another review though I think.
@LonelyCat124 I don't mind the order of these (if you put the associated TODOs), but wouldn't want to go very far with some logic that then will need to be deleted.