Commit 62e7b87
[Flang][OpenMP] Fix allocating arrays with size intrinisic
Attempt to address the following example from causing an assert or ICE:
subroutine test(a)
implicit none
integer :: i
real(kind=real64), dimension(:) :: a
real(kind=real64), dimension(size(a, 1)) :: b
!$omp target map(tofrom: b)
do i = 1, 10
b(i) = i
end do
!$omp end target
end subroutine
Where we utilise a Fortran intrinsic (size) to calculate the size of allocatable arrays and then map it to device.
Borrowing some of Kareem Ergawy's current work to disentangle bounds generation from the semantic/PFT information.
Co-authored-by: Kareem Ergawy <[email protected]>1 parent 10f315d commit 62e7b87
File tree
9 files changed
+177
-44
lines changed- flang
- lib
- Lower
- OpenMP
- Optimizer/OpenMP
- test
- Lower/OpenMP
- Transforms
- offload/test/offloading/fortran
9 files changed
+177
-44
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
609 | 609 | | |
610 | 610 | | |
611 | 611 | | |
612 | | - | |
613 | | - | |
614 | | - | |
615 | | - | |
616 | | - | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
617 | 616 | | |
618 | 617 | | |
619 | 618 | | |
620 | 619 | | |
621 | 620 | | |
622 | 621 | | |
623 | 622 | | |
624 | | - | |
625 | | - | |
626 | | - | |
627 | | - | |
628 | | - | |
629 | | - | |
630 | | - | |
631 | | - | |
632 | | - | |
633 | 623 | | |
634 | 624 | | |
635 | 625 | | |
636 | 626 | | |
637 | | - | |
| 627 | + | |
638 | 628 | | |
639 | 629 | | |
640 | 630 | | |
| |||
648 | 638 | | |
649 | 639 | | |
650 | 640 | | |
651 | | - | |
652 | | - | |
| 641 | + | |
653 | 642 | | |
654 | 643 | | |
655 | 644 | | |
| |||
659 | 648 | | |
660 | 649 | | |
661 | 650 | | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
662 | 659 | | |
663 | 660 | | |
664 | 661 | | |
| |||
1224 | 1221 | | |
1225 | 1222 | | |
1226 | 1223 | | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
1227 | 1244 | | |
1228 | 1245 | | |
1229 | 1246 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
922 | 922 | | |
923 | 923 | | |
924 | 924 | | |
925 | | - | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
926 | 934 | | |
927 | 935 | | |
928 | | - | |
929 | | - | |
930 | | - | |
931 | | - | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
932 | 943 | | |
933 | 944 | | |
934 | 945 | | |
935 | 946 | | |
936 | 947 | | |
937 | 948 | | |
938 | 949 | | |
939 | | - | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
940 | 961 | | |
941 | 962 | | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
942 | 980 | | |
943 | 981 | | |
944 | 982 | | |
945 | 983 | | |
946 | 984 | | |
947 | 985 | | |
948 | 986 | | |
949 | | - | |
950 | | - | |
| 987 | + | |
| 988 | + | |
951 | 989 | | |
952 | 990 | | |
953 | 991 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
158 | 158 | | |
159 | 159 | | |
160 | 160 | | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
161 | 169 | | |
162 | 170 | | |
163 | 171 | | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
| 172 | + | |
| 173 | + | |
168 | 174 | | |
169 | 175 | | |
170 | 176 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
| 83 | + | |
84 | 84 | | |
| 85 | + | |
85 | 86 | | |
86 | 87 | | |
87 | 88 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
0 commit comments