llvm-project
[flang] Consolidate copy-in/copy-out determination in evaluate framework
#151408
Merged

[flang] Consolidate copy-in/copy-out determination in evaluate framework #151408

eugeneepshteyn
eugeneepshteyn [flang][DRAFT] Copy-in/Copy-out determination
54c0158d
eugeneepshteyn Call DetermineCopyInOut() from lowering
808fb20c
github-actions
eugeneepshteyn clang-format
28bc5bd9
klausler
klausler commented on 2025-07-30
eugeneepshteyn DetermineCopyInOut() is now called from ProcedureRef constructor
f44b9459
eugeneepshteyn clang-format
ffd65635
eugeneepshteyn Minor tweak
fb3a93c6
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
6e052f43
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
b914f793
eugeneepshteyn DetermineCopyInOut() is now called at ProcedureRef instantiation
527b2d76
eugeneepshteyn Very rough beginnings of argument handling in DetermineCopyInOut()
9c1755b2
eugeneepshteyn More args handing in DetermineCopyInOut()
3198e905
eugeneepshteyn clang-format
0378a5f4
eugeneepshteyn clang-format
5d5418a6
eugeneepshteyn clang-format
2cce4bba
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
f6f64ca9
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
4a6d402e
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
698b865f
eugeneepshteyn Initial implementation of DetermineCopyInOutArgument() for implicit
de06d252
eugeneepshteyn Removed empty line
cf42b128
eugeneepshteyn clang-format
9373b90c
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
889f7c10
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-review
905c3156
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
d9452c34
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
fab0c75f
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
9e471767
eugeneepshteyn Braces!
12ca5a81
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
3126a8cf
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
c2fc2e93
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
902894c8
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
c3ef243f
eugeneepshteyn clang-format
143f7bd0
eugeneepshteyn Renamed copy-in/copy-out getter/setter functions
6d0935cf
eugeneepshteyn Contiguity check
15db3f8d
eugeneepshteyn clang-format
58764a61
eugeneepshteyn Continue filling out DetermineCopyInOutArgument(). Implemented IsExpl…
eb270319
eugeneepshteyn clang-format
3ec01ad3
eugeneepshteyn In DetermineCopyInOutArgument(), handle INTENT(IN) and INTENT(OUT)
889d514e
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
040572fa
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
04daa837
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
5136de25
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
7e448f01
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
546af8f6
eugeneepshteyn Support polymorphic-to-non-polymorphic case. Initial hookup into lowe…
068216fa
eugeneepshteyn clang-format
3f36c9fb
eugeneepshteyn array check
070ffd1e
eugeneepshteyn array check
50622660
eugeneepshteyn Changed IsExplicitShape() and restructured the checks
312cf258
eugeneepshteyn Redid the integration to basically the old code but debug output with…
bc2e17ae
eugeneepshteyn Tweaks and debug output
d026f49b
eugeneepshteyn Switched to the new code. 5 failed tests left
55b8e0ee
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
a7815121
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
384bc2ee
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
b3fd99a5
eugeneepshteyn Fixed one issue with assumed rank arrays
258fc64e
eugeneepshteyn clang-format
a1971903
eugeneepshteyn Expaned IsAssumedShape() checks and moved them to Fortran::evaluate n…
30d36b0b
eugeneepshteyn clang-format
47f26560
eugeneepshteyn Passes LIT tests
aa65a3ef
eugeneepshteyn Clean up in lowering to switch to the new checks
d285ded9
eugeneepshteyn Ignore rank support
413eafd2
eugeneepshteyn Polymorphic dummy with ignore rank
4590955c
eugeneepshteyn clang-format (upstream)
d026e0df
eugeneepshteyn clang-format (upstream)
0289de2c
eugeneepshteyn clang-format (started using upstream)
2464dd3e
eugeneepshteyn Added LIT test
f76c9e33
eugeneepshteyn Implement copy-in/copy-out determination in Fortran::evaluate::MayNee…
b12d2c82
eugeneepshteyn clang-format
24c2040b
eugeneepshteyn Removed the old way to integrate copy-in/copy-out check
a760320d
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
6868af82
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-review
e69fa22f
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
1bd1822c
eugeneepshteyn
eugeneepshteyn commented on 2025-08-18
eugeneepshteyn eugeneepshteyn changed the title [flang][DRAFT] Copy-in/Copy-out determination [flang] Consolidate copy-in/copy-out determination in evaluate framework 22 days ago
eugeneepshteyn eugeneepshteyn requested a review from akuhlens akuhlens 22 days ago
eugeneepshteyn eugeneepshteyn requested a review from vzakhari vzakhari 22 days ago
eugeneepshteyn
eugeneepshteyn
eugeneepshteyn commented on 2025-08-18
eugeneepshteyn
eugeneepshteyn commented on 2025-08-18
eugeneepshteyn eugeneepshteyn marked this pull request as ready for review 22 days ago
klausler
klausler commented on 2025-08-18
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
f752112e
eugeneepshteyn Fixed the issue with user defined assignment
7aa458cd
eugeneepshteyn clang-format
d1a8d7c6
eugeneepshteyn Tweaked MayNeedCopyInOut() API
57fd73e2
eugeneepshteyn Simplified IsAssumedRank() and IsAssumedShape()
b7dab28c
eugeneepshteyn Moved IsAssumedRank() and IsAssumedShape() to namespace Fortran::sema…
0239c1d2
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
95f0aac2
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-review
02ee2b7b
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
4938d033
eugeneepshteyn clang-format
0faca169
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
6f828b3f
vzakhari
klausler
klausler commented on 2025-08-19
eugeneepshteyn WIP: new API MayNeedCopy()
450a5d73
eugeneepshteyn clang-format
0be16a48
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
68722d62
eugeneepshteyn Continue implementation of new MayNeedCopy()
dd9560a0
eugeneepshteyn Assumed type check for contiguity
a8c4dcfa
eugeneepshteyn Better void* standing for old implementation
be85c20b
eugeneepshteyn clang-format
36a3049e
eugeneepshteyn Tweaks to MayNeedCopyIn() to bring it closer to the old implementation
69d7ca05
eugeneepshteyn Removed the old implementation (MayNeedCopyInOut) and switched to the…
f6bb3df9
eugeneepshteyn Simplified MayNeedCopyOut()
fce3da47
eugeneepshteyn Enhanced flang/test/Lower/force-temp.f90 to cover more cases
e36a534e
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
6c5a1e2d
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-review
11c27fba
eugeneepshteyn WIP: new API MayNeedCopy()
73e9db73
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
4ab82fdc
eugeneepshteyn Fixed bad merge
3baa7dad
eugeneepshteyn
eugeneepshteyn eugeneepshteyn requested a review from klausler klausler 20 days ago
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
0050af6a
eugeneepshteyn Yet another refactoring and logic update: use common class CopyInOutE…
3e281e49
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
bd61c2a5
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
335a463c
eugeneepshteyn clang-format
b8e78b15
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
9be6a3eb
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
36993cd4
eugeneepshteyn debugging (checking the old code again)
629b67d5
eugeneepshteyn Fixed build issue with the old code
6138cc8d
eugeneepshteyn Different copy-in/copy-out flag configuration
02eec4c1
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
f5be38b7
eugeneepshteyn Removed the old code
5ddac274
eugeneepshteyn updated comment
b5ff5814
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
6284e57c
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-review
def40894
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
09e507a1
klausler
klausler commented on 2025-08-25
eugeneepshteyn Code review feedback
e54a8d27
eugeneepshteyn clang-format
d22d27c0
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
84ce8ad5
eugeneepshteyn force-temp.f90: add test for INTENT(OUT) dummy argument
45eaddc4
eugeneepshteyn MayNeedCopy() simplification
fc283152
eugeneepshteyn Further simplification of MayNeedCopy()
c7a740ca
eugeneepshteyn Removed the old code
0d9302e3
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
3bb10d51
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-review
395e4caf
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
b7c35c9c
eugeneepshteyn Removed DummyDataObject::IsArray() (no longer used)
d22d76f0
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
991df0eb
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
99aaa2b9
klausler
klausler approved these changes on 2025-08-26
eugeneepshteyn Code review feedback
3c64f138
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-dev
0c5dc791
eugeneepshteyn Merge branch 'llvm:main' into copy-inout-review
d79c5881
eugeneepshteyn Merge branch 'copy-inout-dev' into copy-inout-review
8f768ca4
eugeneepshteyn eugeneepshteyn merged 4b6a4aa5 into main 14 days ago
eugeneepshteyn eugeneepshteyn deleted the copy-inout-review branch 14 days ago
tblah tblah added this to the LLVM 21.x Release milestone 13 days ago
tblah tblah removed this from to the LLVM 21.x Release milestone 13 days ago

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone