-
Notifications
You must be signed in to change notification settings - Fork 15.4k
[flang] Consolidate copy-in/copy-out determination in evaluate framework #151408
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
Merged
Merged
Changes from 126 commits
Commits
Show all changes
131 commits
Select commit
Hold shift + click to select a range
54c0158
[flang][DRAFT] Copy-in/Copy-out determination
eugeneepshteyn 808fb20
Call DetermineCopyInOut() from lowering
eugeneepshteyn 28bc5bd
clang-format
eugeneepshteyn f44b945
DetermineCopyInOut() is now called from ProcedureRef constructor
eugeneepshteyn ffd6563
clang-format
eugeneepshteyn fb3a93c
Minor tweak
eugeneepshteyn 6e052f4
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn b914f79
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 527b2d7
DetermineCopyInOut() is now called at ProcedureRef instantiation
eugeneepshteyn 9c1755b
Very rough beginnings of argument handling in DetermineCopyInOut()
eugeneepshteyn 3198e90
More args handing in DetermineCopyInOut()
eugeneepshteyn 0378a5f
clang-format
eugeneepshteyn 5d5418a
clang-format
eugeneepshteyn 2cce4bb
clang-format
eugeneepshteyn f6f64ca
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 4a6d402
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 698b865
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn de06d25
Initial implementation of DetermineCopyInOutArgument() for implicit
eugeneepshteyn cf42b12
Removed empty line
eugeneepshteyn 9373b90
clang-format
eugeneepshteyn 889f7c1
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 905c315
Merge branch 'llvm:main' into copy-inout-review
eugeneepshteyn d9452c3
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn fab0c75
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn 9e47176
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 12ca5a8
Braces!
eugeneepshteyn 3126a8c
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn c2fc2e9
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 902894c
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn c3ef243
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 143f7bd
clang-format
eugeneepshteyn 6d0935c
Renamed copy-in/copy-out getter/setter functions
eugeneepshteyn 15db3f8
Contiguity check
eugeneepshteyn 58764a6
clang-format
eugeneepshteyn eb27031
Continue filling out DetermineCopyInOutArgument(). Implemented IsExpl…
eugeneepshteyn 3ec01ad
clang-format
eugeneepshteyn 889d514
In DetermineCopyInOutArgument(), handle INTENT(IN) and INTENT(OUT)
eugeneepshteyn 040572f
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 04daa83
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 5136de2
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 7e448f0
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 546af8f
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 068216f
Support polymorphic-to-non-polymorphic case. Initial hookup into lowe…
eugeneepshteyn 3f36c9f
clang-format
eugeneepshteyn 070ffd1
array check
eugeneepshteyn 5062266
array check
eugeneepshteyn 312cf25
Changed IsExplicitShape() and restructured the checks
eugeneepshteyn bc2e17a
Redid the integration to basically the old code but debug output with…
eugeneepshteyn d026f49
Tweaks and debug output
eugeneepshteyn 55b8e0e
Switched to the new code. 5 failed tests left
eugeneepshteyn a781512
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 384bc2e
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn b3fd99a
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 258fc64
Fixed one issue with assumed rank arrays
eugeneepshteyn a197190
clang-format
eugeneepshteyn 30d36b0
Expaned IsAssumedShape() checks and moved them to Fortran::evaluate n…
eugeneepshteyn 47f2656
clang-format
eugeneepshteyn aa65a3e
Passes LIT tests
eugeneepshteyn d285ded
Clean up in lowering to switch to the new checks
eugeneepshteyn 413eafd
Ignore rank support
eugeneepshteyn 4590955
Polymorphic dummy with ignore rank
eugeneepshteyn d026e0d
clang-format (upstream)
eugeneepshteyn 0289de2
clang-format (upstream)
eugeneepshteyn 2464dd3
clang-format (started using upstream)
eugeneepshteyn f76c9e3
Added LIT test
eugeneepshteyn b12d2c8
Implement copy-in/copy-out determination in Fortran::evaluate::MayNee…
eugeneepshteyn 24c2040
clang-format
eugeneepshteyn a760320
Removed the old way to integrate copy-in/copy-out check
eugeneepshteyn 6868af8
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn e69fa22
Merge branch 'llvm:main' into copy-inout-review
eugeneepshteyn 1bd1822
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn f752112
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 7aa458c
Fixed the issue with user defined assignment
eugeneepshteyn d1a8d7c
clang-format
eugeneepshteyn 57fd73e
Tweaked MayNeedCopyInOut() API
eugeneepshteyn b7dab28
Simplified IsAssumedRank() and IsAssumedShape()
eugeneepshteyn 0239c1d
Moved IsAssumedRank() and IsAssumedShape() to namespace Fortran::sema…
eugeneepshteyn 95f0aac
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 02ee2b7
Merge branch 'llvm:main' into copy-inout-review
eugeneepshteyn 4938d03
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn 0faca16
clang-format
eugeneepshteyn 6f828b3
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn 450a5d7
WIP: new API MayNeedCopy()
eugeneepshteyn 0be16a4
clang-format
eugeneepshteyn 68722d6
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn dd9560a
Continue implementation of new MayNeedCopy()
eugeneepshteyn a8c4dcf
Assumed type check for contiguity
eugeneepshteyn be85c20
Better void* standing for old implementation
eugeneepshteyn 36a3049
clang-format
eugeneepshteyn 69d7ca0
Tweaks to MayNeedCopyIn() to bring it closer to the old implementation
eugeneepshteyn f6bb3df
Removed the old implementation (MayNeedCopyInOut) and switched to the…
eugeneepshteyn fce3da4
Simplified MayNeedCopyOut()
eugeneepshteyn e36a534
Enhanced flang/test/Lower/force-temp.f90 to cover more cases
eugeneepshteyn 6c5a1e2
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 11c27fb
Merge branch 'llvm:main' into copy-inout-review
eugeneepshteyn 73e9db7
WIP: new API MayNeedCopy()
eugeneepshteyn 4ab82fd
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn 3baa7da
Fixed bad merge
eugeneepshteyn 0050af6
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 3e281e4
Yet another refactoring and logic update: use common class CopyInOutE…
eugeneepshteyn bd61c2a
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 335a463
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn b8e78b1
clang-format
eugeneepshteyn 9be6a3e
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 36993cd
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 629b67d
debugging (checking the old code again)
eugeneepshteyn 6138cc8
Fixed build issue with the old code
eugeneepshteyn 02eec4c
Different copy-in/copy-out flag configuration
eugeneepshteyn f5be38b
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 5ddac27
Removed the old code
eugeneepshteyn b5ff581
updated comment
eugeneepshteyn 6284e57
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn def4089
Merge branch 'llvm:main' into copy-inout-review
eugeneepshteyn 09e507a
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn e54a8d2
Code review feedback
eugeneepshteyn d22d27c
clang-format
eugeneepshteyn 84ce8ad
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 45eaddc
force-temp.f90: add test for INTENT(OUT) dummy argument
eugeneepshteyn fc28315
MayNeedCopy() simplification
eugeneepshteyn c7a740c
Further simplification of MayNeedCopy()
eugeneepshteyn 0d9302e
Removed the old code
eugeneepshteyn 3bb10d5
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 395e4ca
Merge branch 'llvm:main' into copy-inout-review
eugeneepshteyn b7c35c9
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn d22d76f
Removed DummyDataObject::IsArray() (no longer used)
eugeneepshteyn 991df0e
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn 99aaa2b
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn 3c64f13
Code review feedback
eugeneepshteyn 0c5dc79
Merge branch 'llvm:main' into copy-inout-dev
eugeneepshteyn d79c588
Merge branch 'llvm:main' into copy-inout-review
eugeneepshteyn 8f768ca
Merge branch 'copy-inout-dev' into copy-inout-review
eugeneepshteyn File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
!(forCopyOut && HasVectorSubscript(...))would be clearer, I think.