Commit 9ca8c49
committed
[WIP] Delayed privatization.
This is a PoC for delayed privatization in OpenMP. Instead of directly
emitting privatization code in the frontend, we add a new op to outline
the privatization logic for a symbol and call-like mapping that maps
from the host symbol to a block argument in the OpenMP region.
Example:
```
!$omp target private(x)
!$end omp target
```
Would be code-generated by flang as:
```
func.func @foo() {
omp.target x.privatizer %x -> %argx: !fir.ref<i32> {
bb0(%argx: !fir.ref<i32>):
// ... use %argx ....
}
}
"omp.private"() <{function_type = (!fir.ref<i32>) -> !fir.ref<i32>, sym_name = "x.privatizer"}> ({
^bb0(%arg0: !fir.ref<i32>):
%0 = fir.alloca i32 {bindc_name = "x", pinned, uniq_name = "_QFprivate_clause_allocatableEx"}
%1 = fir.load %arg0 : !fir.ref<i32>
fir.store %1 to %0 : !fir.ref<i32>
omp.yield(%0 : !fir.ref<i32>)
}) : () -> ()
```
Later, we would inline the delayed privatizer function-like op in the
OpenMP region to basically get the same code generated directly by the
fronend at the moment.
So far this PoC implements the following:
- Adds the delayed privatization op: `omp.private`.
- For simple symbols, emits the op.
Still TODO:
- Extend the `omp.target` op to somehow model the oulined privatization
logic.
- Inline the outlined privatizer before emitting LLVM IR.
- Support more complex symbols like allocatables.1 parent ce72f78 commit 9ca8c49
File tree
8 files changed
+206
-46
lines changed- flang
- include/flang/Lower
- lib/Lower
- test/Lower/OpenMP/FIR
- mlir
- include/mlir/Dialect/OpenMP
- lib/Dialect
- Func/IR
- OpenMP/IR
8 files changed
+206
-46
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
92 | 93 | | |
93 | 94 | | |
94 | 95 | | |
95 | | - | |
| 96 | + | |
| 97 | + | |
96 | 98 | | |
97 | 99 | | |
98 | 100 | | |
| |||
111 | 113 | | |
112 | 114 | | |
113 | 115 | | |
114 | | - | |
| 116 | + | |
| 117 | + | |
115 | 118 | | |
116 | 119 | | |
117 | 120 | | |
118 | 121 | | |
119 | | - | |
120 | | - | |
121 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
122 | 126 | | |
123 | 127 | | |
124 | 128 | | |
| |||
295 | 299 | | |
296 | 300 | | |
297 | 301 | | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
298 | 306 | | |
299 | 307 | | |
300 | 308 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
104 | 107 | | |
105 | 108 | | |
106 | 109 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
498 | 498 | | |
499 | 499 | | |
500 | 500 | | |
501 | | - | |
502 | | - | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
503 | 504 | | |
504 | | - | |
| 505 | + | |
505 | 506 | | |
506 | 507 | | |
507 | 508 | | |
508 | 509 | | |
509 | | - | |
510 | | - | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
511 | 513 | | |
512 | 514 | | |
513 | 515 | | |
| |||
610 | 612 | | |
611 | 613 | | |
612 | 614 | | |
613 | | - | |
| 615 | + | |
| 616 | + | |
614 | 617 | | |
615 | 618 | | |
616 | 619 | | |
617 | 620 | | |
618 | 621 | | |
619 | 622 | | |
620 | | - | |
| 623 | + | |
621 | 624 | | |
622 | 625 | | |
623 | 626 | | |
| |||
720 | 723 | | |
721 | 724 | | |
722 | 725 | | |
723 | | - | |
| 726 | + | |
724 | 727 | | |
725 | 728 | | |
726 | 729 | | |
| |||
745 | 748 | | |
746 | 749 | | |
747 | 750 | | |
748 | | - | |
| 751 | + | |
| 752 | + | |
749 | 753 | | |
750 | 754 | | |
751 | 755 | | |
752 | 756 | | |
753 | | - | |
| 757 | + | |
754 | 758 | | |
755 | 759 | | |
756 | 760 | | |
757 | | - | |
| 761 | + | |
758 | 762 | | |
759 | 763 | | |
760 | 764 | | |
| |||
763 | 767 | | |
764 | 768 | | |
765 | 769 | | |
766 | | - | |
| 770 | + | |
767 | 771 | | |
| 772 | + | |
768 | 773 | | |
769 | 774 | | |
770 | 775 | | |
| |||
1060 | 1065 | | |
1061 | 1066 | | |
1062 | 1067 | | |
1063 | | - | |
1064 | | - | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
1065 | 1072 | | |
1066 | 1073 | | |
1067 | 1074 | | |
1068 | 1075 | | |
1069 | 1076 | | |
1070 | 1077 | | |
1071 | 1078 | | |
1072 | | - | |
1073 | | - | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
1074 | 1083 | | |
1075 | 1084 | | |
1076 | 1085 | | |
| |||
1079 | 1088 | | |
1080 | 1089 | | |
1081 | 1090 | | |
1082 | | - | |
1083 | | - | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
1084 | 1095 | | |
1085 | 1096 | | |
1086 | | - | |
1087 | | - | |
1088 | | - | |
| 1097 | + | |
| 1098 | + | |
1089 | 1099 | | |
1090 | | - | |
| 1100 | + | |
1091 | 1101 | | |
1092 | 1102 | | |
1093 | 1103 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
172 | | - | |
| 172 | + | |
| 173 | + | |
173 | 174 | | |
174 | 175 | | |
175 | 176 | | |
176 | | - | |
177 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
178 | 181 | | |
179 | 182 | | |
180 | 183 | | |
| |||
197 | 200 | | |
198 | 201 | | |
199 | 202 | | |
200 | | - | |
| 203 | + | |
| 204 | + | |
201 | 205 | | |
202 | 206 | | |
203 | 207 | | |
| |||
206 | 210 | | |
207 | 211 | | |
208 | 212 | | |
209 | | - | |
| 213 | + | |
| 214 | + | |
210 | 215 | | |
211 | 216 | | |
212 | | - | |
| 217 | + | |
213 | 218 | | |
214 | 219 | | |
215 | 220 | | |
| |||
239 | 244 | | |
240 | 245 | | |
241 | 246 | | |
242 | | - | |
| 247 | + | |
| 248 | + | |
243 | 249 | | |
244 | 250 | | |
245 | 251 | | |
246 | 252 | | |
247 | | - | |
| 253 | + | |
248 | 254 | | |
249 | 255 | | |
250 | 256 | | |
251 | 257 | | |
252 | 258 | | |
253 | | - | |
254 | | - | |
255 | | - | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
256 | 264 | | |
257 | 265 | | |
258 | 266 | | |
| |||
487 | 495 | | |
488 | 496 | | |
489 | 497 | | |
490 | | - | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
491 | 501 | | |
| 502 | + | |
492 | 503 | | |
493 | 504 | | |
494 | 505 | | |
495 | 506 | | |
496 | 507 | | |
497 | 508 | | |
498 | 509 | | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
499 | 546 | | |
500 | 547 | | |
501 | 548 | | |
| |||
2272 | 2319 | | |
2273 | 2320 | | |
2274 | 2321 | | |
| 2322 | + | |
2275 | 2323 | | |
2276 | 2324 | | |
2277 | 2325 | | |
| |||
2291 | 2339 | | |
2292 | 2340 | | |
2293 | 2341 | | |
2294 | | - | |
| 2342 | + | |
2295 | 2343 | | |
2296 | 2344 | | |
2297 | 2345 | | |
| 2346 | + | |
2298 | 2347 | | |
2299 | 2348 | | |
2300 | 2349 | | |
| |||
2307 | 2356 | | |
2308 | 2357 | | |
2309 | 2358 | | |
2310 | | - | |
| 2359 | + | |
| 2360 | + | |
2311 | 2361 | | |
2312 | 2362 | | |
2313 | 2363 | | |
2314 | 2364 | | |
2315 | 2365 | | |
| 2366 | + | |
2316 | 2367 | | |
2317 | 2368 | | |
2318 | 2369 | | |
| |||
2361 | 2412 | | |
2362 | 2413 | | |
2363 | 2414 | | |
| 2415 | + | |
2364 | 2416 | | |
2365 | 2417 | | |
2366 | 2418 | | |
| |||
2382 | 2434 | | |
2383 | 2435 | | |
2384 | 2436 | | |
2385 | | - | |
| 2437 | + | |
2386 | 2438 | | |
| 2439 | + | |
2387 | 2440 | | |
2388 | 2441 | | |
2389 | 2442 | | |
| |||
0 commit comments