Commit 9e6aa2f
[mlir][flang][openmp] Rework parallel reduction operations
This patch reworks the way that parallel reduction operations function to better
match the expected semantics from the OpenMP specification. Previously specific
omp.reduction operations were used inside the region, meaning that the reduction
only applied when the correct operation was used, whereas the specification
states that any change to the variable inside the region should be taken into
account for the reduction.
The new semantics create a private reduction variable as a block argument which
should be used normally for all operations on that variable in the region; this
private variable is then combined with the others into the shared variable. This
way no special omp.reduction operations are needed inside the region.
This patch only makes the change for the `parallel` operation, the change for
the `wsloop` operation will be in a separate patch.1 parent ffab5a0 commit 9e6aa2f
File tree
8 files changed
+211
-63
lines changed- flang
- lib/Lower
- test/Lower/OpenMP
- FIR
- mlir
- include/mlir/Dialect/OpenMP
- lib
- Dialect/OpenMP/IR
- Target/LLVMIR/Dialect/OpenMP
- test
- Dialect/OpenMP
- Target/LLVMIR
8 files changed
+211
-63
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
621 | 621 | | |
622 | 622 | | |
623 | 623 | | |
624 | | - | |
625 | | - | |
626 | | - | |
627 | | - | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
628 | 630 | | |
629 | 631 | | |
630 | 632 | | |
| |||
1079 | 1081 | | |
1080 | 1082 | | |
1081 | 1083 | | |
1082 | | - | |
1083 | | - | |
1084 | | - | |
1085 | | - | |
1086 | | - | |
1087 | | - | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
1088 | 1092 | | |
1089 | 1093 | | |
1090 | 1094 | | |
| |||
1114 | 1118 | | |
1115 | 1119 | | |
1116 | 1120 | | |
| 1121 | + | |
| 1122 | + | |
1117 | 1123 | | |
1118 | 1124 | | |
1119 | 1125 | | |
| |||
1148 | 1154 | | |
1149 | 1155 | | |
1150 | 1156 | | |
| 1157 | + | |
| 1158 | + | |
1151 | 1159 | | |
1152 | 1160 | | |
1153 | 1161 | | |
| |||
1948 | 1956 | | |
1949 | 1957 | | |
1950 | 1958 | | |
1951 | | - | |
| 1959 | + | |
| 1960 | + | |
| 1961 | + | |
1952 | 1962 | | |
1953 | 1963 | | |
1954 | 1964 | | |
1955 | 1965 | | |
1956 | 1966 | | |
1957 | | - | |
| 1967 | + | |
| 1968 | + | |
1958 | 1969 | | |
1959 | 1970 | | |
1960 | 1971 | | |
| |||
2304 | 2315 | | |
2305 | 2316 | | |
2306 | 2317 | | |
| 2318 | + | |
| 2319 | + | |
| 2320 | + | |
| 2321 | + | |
| 2322 | + | |
| 2323 | + | |
| 2324 | + | |
| 2325 | + | |
2307 | 2326 | | |
2308 | 2327 | | |
2309 | 2328 | | |
| |||
2323 | 2342 | | |
2324 | 2343 | | |
2325 | 2344 | | |
| 2345 | + | |
| 2346 | + | |
| 2347 | + | |
| 2348 | + | |
| 2349 | + | |
2326 | 2350 | | |
2327 | 2351 | | |
2328 | 2352 | | |
| |||
2567 | 2591 | | |
2568 | 2592 | | |
2569 | 2593 | | |
| 2594 | + | |
2570 | 2595 | | |
2571 | 2596 | | |
2572 | 2597 | | |
| |||
2576 | 2601 | | |
2577 | 2602 | | |
2578 | 2603 | | |
2579 | | - | |
| 2604 | + | |
| 2605 | + | |
| 2606 | + | |
| 2607 | + | |
| 2608 | + | |
| 2609 | + | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
2580 | 2623 | | |
2581 | 2624 | | |
2582 | 2625 | | |
2583 | 2626 | | |
2584 | 2627 | | |
2585 | | - | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
2586 | 2631 | | |
2587 | 2632 | | |
2588 | 2633 | | |
| |||
3634 | 3679 | | |
3635 | 3680 | | |
3636 | 3681 | | |
3637 | | - | |
3638 | | - | |
| 3682 | + | |
3639 | 3683 | | |
3640 | | - | |
3641 | 3684 | | |
3642 | 3685 | | |
3643 | 3686 | | |
| |||
3673 | 3716 | | |
3674 | 3717 | | |
3675 | 3718 | | |
3676 | | - | |
3677 | 3719 | | |
3678 | 3720 | | |
3679 | 3721 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | | - | |
32 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
33 | 35 | | |
34 | 36 | | |
35 | 37 | | |
| |||
48 | 50 | | |
49 | 51 | | |
50 | 52 | | |
51 | | - | |
52 | | - | |
53 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
54 | 58 | | |
55 | 59 | | |
56 | 60 | | |
| |||
72 | 76 | | |
73 | 77 | | |
74 | 78 | | |
75 | | - | |
| 79 | + | |
76 | 80 | | |
77 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
78 | 85 | | |
79 | | - | |
| 86 | + | |
| 87 | + | |
80 | 88 | | |
81 | 89 | | |
82 | 90 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
32 | 34 | | |
33 | | - | |
| 35 | + | |
| 36 | + | |
34 | 37 | | |
35 | 38 | | |
36 | 39 | | |
| |||
50 | 53 | | |
51 | 54 | | |
52 | 55 | | |
53 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
54 | 59 | | |
55 | | - | |
| 60 | + | |
| 61 | + | |
56 | 62 | | |
57 | 63 | | |
58 | 64 | | |
| |||
76 | 82 | | |
77 | 83 | | |
78 | 84 | | |
79 | | - | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
80 | 88 | | |
81 | | - | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
82 | 93 | | |
83 | | - | |
| 94 | + | |
| 95 | + | |
84 | 96 | | |
85 | 97 | | |
86 | 98 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
| 194 | + | |
| 195 | + | |
199 | 196 | | |
200 | 197 | | |
201 | 198 | | |
202 | 199 | | |
203 | 200 | | |
204 | 201 | | |
205 | 202 | | |
206 | | - | |
| 203 | + | |
207 | 204 | | |
208 | 205 | | |
209 | 206 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
| 38 | + | |
37 | 39 | | |
38 | 40 | | |
39 | 41 | | |
| |||
427 | 429 | | |
428 | 430 | | |
429 | 431 | | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
430 | 497 | | |
431 | 498 | | |
432 | 499 | | |
| |||
1114 | 1181 | | |
1115 | 1182 | | |
1116 | 1183 | | |
| 1184 | + | |
1117 | 1185 | | |
1118 | 1186 | | |
1119 | 1187 | | |
| |||
0 commit comments