Commit af9a426
authored
[LAA] Only use inbounds/nusw in isNoWrap if the GEP is dereferenced. (llvm#161445)
Update isNoWrap to only use the inbounds/nusw flags from GEPs that are
guaranteed to be dereferenced on every iteration. This fixes a case
where we incorrectly determine no dependence.
I think the issue is isolated to code that evaluates the resulting
AddRec at BTC, just using it to compute the distance between accesses
should still be fine; if the access does not execute in a given
iteration, there's no dependence in that iteration. But isolating the
code is not straight-forward, so be conservative for now. The practical
impact should be very minor (only one loop changed across a corpus with
27k modules from large C/C++ workloads.
Fixes llvm#160912.
PR: llvm#1614451 parent 83d1599 commit af9a426
File tree
10 files changed
+188
-57
lines changed- llvm
- include/llvm/Analysis
- lib
- Analysis
- Target
- AArch64
- ARM
- Transforms
- Scalar
- Vectorize
- test
- Analysis/LoopAccessAnalysis
- Transforms/LoopVectorize
- RISCV
- X86
10 files changed
+188
-57
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
893 | 893 | | |
894 | 894 | | |
895 | 895 | | |
896 | | - | |
| 896 | + | |
897 | 897 | | |
898 | 898 | | |
899 | 899 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
806 | 806 | | |
807 | 807 | | |
808 | 808 | | |
809 | | - | |
| 809 | + | |
810 | 810 | | |
811 | 811 | | |
812 | | - | |
813 | | - | |
| 812 | + | |
| 813 | + | |
814 | 814 | | |
815 | 815 | | |
816 | 816 | | |
| |||
934 | 934 | | |
935 | 935 | | |
936 | 936 | | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
937 | 940 | | |
938 | 941 | | |
939 | 942 | | |
| |||
1015 | 1018 | | |
1016 | 1019 | | |
1017 | 1020 | | |
| 1021 | + | |
1018 | 1022 | | |
1019 | 1023 | | |
1020 | 1024 | | |
| |||
1029 | 1033 | | |
1030 | 1034 | | |
1031 | 1035 | | |
1032 | | - | |
1033 | | - | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
1034 | 1048 | | |
1035 | 1049 | | |
1036 | 1050 | | |
| |||
1293 | 1307 | | |
1294 | 1308 | | |
1295 | 1309 | | |
1296 | | - | |
| 1310 | + | |
1297 | 1311 | | |
1298 | 1312 | | |
1299 | 1313 | | |
| |||
1606 | 1620 | | |
1607 | 1621 | | |
1608 | 1622 | | |
1609 | | - | |
| 1623 | + | |
1610 | 1624 | | |
1611 | 1625 | | |
1612 | 1626 | | |
| |||
1630 | 1644 | | |
1631 | 1645 | | |
1632 | 1646 | | |
1633 | | - | |
| 1647 | + | |
1634 | 1648 | | |
1635 | 1649 | | |
1636 | 1650 | | |
| |||
2047 | 2061 | | |
2048 | 2062 | | |
2049 | 2063 | | |
2050 | | - | |
2051 | | - | |
2052 | | - | |
2053 | | - | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
2054 | 2068 | | |
2055 | 2069 | | |
2056 | 2070 | | |
| |||
2627 | 2641 | | |
2628 | 2642 | | |
2629 | 2643 | | |
2630 | | - | |
| 2644 | + | |
| 2645 | + | |
2631 | 2646 | | |
2632 | 2647 | | |
2633 | 2648 | | |
| |||
2691 | 2706 | | |
2692 | 2707 | | |
2693 | 2708 | | |
2694 | | - | |
| 2709 | + | |
| 2710 | + | |
2695 | 2711 | | |
2696 | 2712 | | |
2697 | 2713 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1387 | 1387 | | |
1388 | 1388 | | |
1389 | 1389 | | |
1390 | | - | |
1391 | | - | |
1392 | | - | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
1393 | 1393 | | |
1394 | 1394 | | |
1395 | 1395 | | |
| |||
1643 | 1643 | | |
1644 | 1644 | | |
1645 | 1645 | | |
1646 | | - | |
1647 | | - | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
1648 | 1649 | | |
1649 | 1650 | | |
1650 | 1651 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6207 | 6207 | | |
6208 | 6208 | | |
6209 | 6209 | | |
6210 | | - | |
| 6210 | + | |
| 6211 | + | |
6211 | 6212 | | |
6212 | 6213 | | |
6213 | 6214 | | |
| |||
6216 | 6217 | | |
6217 | 6218 | | |
6218 | 6219 | | |
6219 | | - | |
6220 | | - | |
| 6220 | + | |
| 6221 | + | |
6221 | 6222 | | |
6222 | 6223 | | |
6223 | 6224 | | |
| |||
6262 | 6263 | | |
6263 | 6264 | | |
6264 | 6265 | | |
6265 | | - | |
| 6266 | + | |
| 6267 | + | |
6266 | 6268 | | |
6267 | 6269 | | |
6268 | 6270 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2448 | 2448 | | |
2449 | 2449 | | |
2450 | 2450 | | |
2451 | | - | |
| 2451 | + | |
| 2452 | + | |
2452 | 2453 | | |
2453 | 2454 | | |
2454 | 2455 | | |
| |||
2498 | 2499 | | |
2499 | 2500 | | |
2500 | 2501 | | |
2501 | | - | |
| 2502 | + | |
| 2503 | + | |
2502 | 2504 | | |
2503 | 2505 | | |
2504 | 2506 | | |
| |||
2585 | 2587 | | |
2586 | 2588 | | |
2587 | 2589 | | |
2588 | | - | |
| 2590 | + | |
| 2591 | + | |
2589 | 2592 | | |
2590 | 2593 | | |
2591 | 2594 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
92 | | - | |
93 | | - | |
| 92 | + | |
| 93 | + | |
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
106 | | - | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
107 | 109 | | |
108 | 110 | | |
109 | 111 | | |
| |||
287 | 289 | | |
288 | 290 | | |
289 | 291 | | |
290 | | - | |
291 | | - | |
| 292 | + | |
| 293 | + | |
292 | 294 | | |
293 | 295 | | |
294 | 296 | | |
| |||
538 | 540 | | |
539 | 541 | | |
540 | 542 | | |
541 | | - | |
| 543 | + | |
542 | 544 | | |
543 | 545 | | |
544 | 546 | | |
| |||
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
462 | 462 | | |
463 | 463 | | |
464 | 464 | | |
465 | | - | |
466 | | - | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
467 | 468 | | |
468 | 469 | | |
469 | 470 | | |
| |||
Lines changed: 16 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
22 | 26 | | |
23 | 27 | | |
24 | 28 | | |
| 29 | + | |
25 | 30 | | |
26 | 31 | | |
27 | 32 | | |
| |||
63 | 68 | | |
64 | 69 | | |
65 | 70 | | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
66 | 75 | | |
67 | 76 | | |
68 | 77 | | |
| 78 | + | |
69 | 79 | | |
70 | 80 | | |
71 | 81 | | |
| |||
109 | 119 | | |
110 | 120 | | |
111 | 121 | | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
112 | 126 | | |
113 | 127 | | |
114 | 128 | | |
| 129 | + | |
115 | 130 | | |
116 | 131 | | |
117 | 132 | | |
| |||
0 commit comments