Commit 3ade12c
committed
[AArch64][SME] Propagate desired ZA states in the MachineSMEABIPass
This patch adds a propagation step to the MachineSMEABIPass that
propagates desired ZA states forwards/backwards (from predecessors to
successors, or vice versa).
The aim of this is to pick better ZA states for edge bundles, as when
many (or all) blocks in a bundle do not have a preferred ZA state, the
ZA state assigned to a bundle can be less than ideal.
An important case is nested loops, where only the inner loop has a
preferred ZA state. Here we'd like to propagate the ZA state up from the
inner loop to the outer loops (to avoid saves/restores in any loop).
Change-Id: I39f9c7d7608e2fa070be2fb88351b4d1d00790411 parent 6b6e62a commit 3ade12c
File tree
6 files changed
+495
-175
lines changed- llvm
- lib/Target/AArch64
- test/CodeGen/AArch64
6 files changed
+495
-175
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
124 | | - | |
125 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
126 | 128 | | |
127 | 129 | | |
128 | 130 | | |
| |||
268 | 270 | | |
269 | 271 | | |
270 | 272 | | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
271 | 278 | | |
272 | 279 | | |
273 | 280 | | |
| |||
426 | 433 | | |
427 | 434 | | |
428 | 435 | | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
429 | 443 | | |
430 | 444 | | |
431 | 445 | | |
432 | 446 | | |
433 | 447 | | |
434 | 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 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
435 | 500 | | |
436 | 501 | | |
437 | 502 | | |
| |||
444 | 509 | | |
445 | 510 | | |
446 | 511 | | |
447 | | - | |
448 | | - | |
449 | 512 | | |
450 | 513 | | |
451 | 514 | | |
452 | 515 | | |
453 | 516 | | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | 517 | | |
459 | 518 | | |
460 | 519 | | |
461 | | - | |
462 | | - | |
463 | | - | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
464 | 525 | | |
465 | | - | |
| 526 | + | |
| 527 | + | |
466 | 528 | | |
467 | | - | |
468 | | - | |
469 | | - | |
| 529 | + | |
470 | 530 | | |
471 | | - | |
| 531 | + | |
| 532 | + | |
472 | 533 | | |
| 534 | + | |
| 535 | + | |
473 | 536 | | |
474 | 537 | | |
475 | 538 | | |
476 | 539 | | |
477 | 540 | | |
478 | 541 | | |
479 | | - | |
480 | | - | |
481 | 542 | | |
482 | 543 | | |
483 | 544 | | |
| |||
922 | 983 | | |
923 | 984 | | |
924 | 985 | | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
925 | 1023 | | |
926 | 1024 | | |
927 | 1025 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
354 | | - | |
355 | 354 | | |
356 | 355 | | |
357 | 356 | | |
| |||
389 | 388 | | |
390 | 389 | | |
391 | 390 | | |
392 | | - | |
393 | | - | |
394 | 391 | | |
395 | 392 | | |
| 393 | + | |
| 394 | + | |
396 | 395 | | |
397 | 396 | | |
398 | 397 | | |
399 | | - | |
400 | 398 | | |
401 | | - | |
402 | 399 | | |
403 | 400 | | |
404 | 401 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | 231 | | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
290 | 259 | | |
291 | 260 | | |
292 | 261 | | |
| |||
910 | 879 | | |
911 | 880 | | |
912 | 881 | | |
913 | | - | |
| 882 | + | |
914 | 883 | | |
915 | 884 | | |
916 | 885 | | |
| |||
923 | 892 | | |
924 | 893 | | |
925 | 894 | | |
926 | | - | |
927 | | - | |
| 895 | + | |
| 896 | + | |
928 | 897 | | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
929 | 902 | | |
| 903 | + | |
930 | 904 | | |
931 | | - | |
932 | | - | |
933 | 905 | | |
934 | 906 | | |
935 | 907 | | |
936 | | - | |
937 | | - | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
938 | 911 | | |
| 912 | + | |
939 | 913 | | |
940 | | - | |
941 | 914 | | |
942 | | - | |
| 915 | + | |
943 | 916 | | |
944 | 917 | | |
945 | 918 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
| 66 | + | |
| 67 | + | |
76 | 68 | | |
77 | 69 | | |
78 | 70 | | |
79 | 71 | | |
80 | 72 | | |
81 | | - | |
82 | | - | |
| 73 | + | |
| 74 | + | |
83 | 75 | | |
84 | | - | |
| 76 | + | |
85 | 77 | | |
86 | 78 | | |
87 | 79 | | |
| |||
0 commit comments