Commit 651073e
[InstCombine] Fully disable select to and/or i1 folding
This is a patch that disables the poison-unsafe select -> and/or i1 folding.
It has been blocking D72396 and also has been the source of a few miscompilations
described in llvm.org/pr49688 .
D99674 conditionally blocked this folding and successfully fixed the latter one.
The former one was still blocked, and this patch addresses it.
Note that a few test functions that has `_logical` suffix are now deoptimized.
These are created by @nikic to check the impact of disabling this optimization
by copying existing original functions and replacing and/or with select.
I can see that most of these are poison-unsafe; they can be revived by introducing
freeze instruction. I left comments at fcmp + select optimizations (or-fcmp.ll, and-fcmp.ll)
because I think they are good targets for freeze fix.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D1011911 parent 4a7ca8c commit 651073e
File tree
46 files changed
+486
-364
lines changed- clang/test/CodeGenOpenCL
- llvm
- lib/Transforms/InstCombine
- test/Transforms
- InstCombine
- LoopSimplify
- LoopVectorize
- X86
- PGOProfile
- PhaseOrdering
- X86
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
46 files changed
+486
-364
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
598 | 598 | | |
599 | 599 | | |
600 | 600 | | |
601 | | - | |
| 601 | + | |
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | 51 | | |
57 | 52 | | |
58 | 53 | | |
| |||
2664 | 2659 | | |
2665 | 2660 | | |
2666 | 2661 | | |
2667 | | - | |
2668 | | - | |
2669 | | - | |
2670 | | - | |
2671 | | - | |
2672 | | - | |
2673 | | - | |
2674 | | - | |
2675 | | - | |
2676 | | - | |
2677 | | - | |
2678 | | - | |
2679 | | - | |
2680 | | - | |
2681 | | - | |
2682 | | - | |
2683 | | - | |
2684 | | - | |
2685 | | - | |
2686 | | - | |
2687 | | - | |
2688 | | - | |
| 2662 | + | |
| 2663 | + | |
| 2664 | + | |
| 2665 | + | |
2689 | 2666 | | |
2690 | 2667 | | |
2691 | 2668 | | |
2692 | | - | |
| 2669 | + | |
2693 | 2670 | | |
2694 | 2671 | | |
2695 | 2672 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | | - | |
| 68 | + | |
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
17 | 31 | | |
18 | 32 | | |
19 | 33 | | |
| |||
47 | 61 | | |
48 | 62 | | |
49 | 63 | | |
| 64 | + | |
50 | 65 | | |
51 | 66 | | |
52 | | - | |
53 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
54 | 71 | | |
55 | 72 | | |
56 | 73 | | |
| |||
77 | 94 | | |
78 | 95 | | |
79 | 96 | | |
80 | | - | |
81 | 97 | | |
82 | | - | |
| 98 | + | |
| 99 | + | |
83 | 100 | | |
84 | 101 | | |
85 | 102 | | |
| |||
138 | 155 | | |
139 | 156 | | |
140 | 157 | | |
141 | | - | |
| 158 | + | |
142 | 159 | | |
143 | 160 | | |
144 | 161 | | |
| |||
171 | 188 | | |
172 | 189 | | |
173 | 190 | | |
| 191 | + | |
174 | 192 | | |
175 | 193 | | |
176 | | - | |
177 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
178 | 198 | | |
179 | 199 | | |
180 | 200 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1067 | 1067 | | |
1068 | 1068 | | |
1069 | 1069 | | |
1070 | | - | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
1071 | 1073 | | |
1072 | 1074 | | |
1073 | 1075 | | |
| |||
1111 | 1113 | | |
1112 | 1114 | | |
1113 | 1115 | | |
1114 | | - | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
1115 | 1119 | | |
1116 | 1120 | | |
1117 | 1121 | | |
| |||
1155 | 1159 | | |
1156 | 1160 | | |
1157 | 1161 | | |
1158 | | - | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
1159 | 1165 | | |
1160 | 1166 | | |
1161 | 1167 | | |
| |||
1199 | 1205 | | |
1200 | 1206 | | |
1201 | 1207 | | |
1202 | | - | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
1203 | 1211 | | |
1204 | 1212 | | |
1205 | 1213 | | |
| |||
1249 | 1257 | | |
1250 | 1258 | | |
1251 | 1259 | | |
1252 | | - | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
1253 | 1263 | | |
1254 | 1264 | | |
1255 | 1265 | | |
| |||
1293 | 1303 | | |
1294 | 1304 | | |
1295 | 1305 | | |
1296 | | - | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
1297 | 1309 | | |
1298 | 1310 | | |
1299 | 1311 | | |
| |||
1337 | 1349 | | |
1338 | 1350 | | |
1339 | 1351 | | |
1340 | | - | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
1341 | 1355 | | |
1342 | 1356 | | |
1343 | 1357 | | |
| |||
1381 | 1395 | | |
1382 | 1396 | | |
1383 | 1397 | | |
1384 | | - | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
1385 | 1401 | | |
1386 | 1402 | | |
1387 | 1403 | | |
| |||
1431 | 1447 | | |
1432 | 1448 | | |
1433 | 1449 | | |
1434 | | - | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
1435 | 1453 | | |
1436 | 1454 | | |
1437 | 1455 | | |
| |||
1475 | 1493 | | |
1476 | 1494 | | |
1477 | 1495 | | |
1478 | | - | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
1479 | 1499 | | |
1480 | 1500 | | |
1481 | 1501 | | |
| |||
1519 | 1539 | | |
1520 | 1540 | | |
1521 | 1541 | | |
1522 | | - | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
1523 | 1545 | | |
1524 | 1546 | | |
1525 | 1547 | | |
| |||
1563 | 1585 | | |
1564 | 1586 | | |
1565 | 1587 | | |
1566 | | - | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
1567 | 1591 | | |
1568 | 1592 | | |
1569 | 1593 | | |
| |||
1613 | 1637 | | |
1614 | 1638 | | |
1615 | 1639 | | |
1616 | | - | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
1617 | 1643 | | |
1618 | 1644 | | |
1619 | 1645 | | |
| |||
1657 | 1683 | | |
1658 | 1684 | | |
1659 | 1685 | | |
1660 | | - | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
1661 | 1689 | | |
1662 | 1690 | | |
1663 | 1691 | | |
| |||
1701 | 1729 | | |
1702 | 1730 | | |
1703 | 1731 | | |
1704 | | - | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
1705 | 1735 | | |
1706 | 1736 | | |
1707 | 1737 | | |
| |||
1745 | 1775 | | |
1746 | 1776 | | |
1747 | 1777 | | |
1748 | | - | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
1749 | 1781 | | |
1750 | 1782 | | |
1751 | 1783 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
318 | 318 | | |
319 | 319 | | |
320 | 320 | | |
321 | | - | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
322 | 324 | | |
323 | 325 | | |
324 | 326 | | |
| |||
362 | 364 | | |
363 | 365 | | |
364 | 366 | | |
365 | | - | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
366 | 370 | | |
367 | 371 | | |
368 | 372 | | |
| |||
412 | 416 | | |
413 | 417 | | |
414 | 418 | | |
415 | | - | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
416 | 422 | | |
417 | 423 | | |
418 | 424 | | |
| |||
456 | 462 | | |
457 | 463 | | |
458 | 464 | | |
459 | | - | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
460 | 468 | | |
461 | 469 | | |
462 | 470 | | |
| |||
704 | 712 | | |
705 | 713 | | |
706 | 714 | | |
707 | | - | |
708 | | - | |
709 | | - | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
710 | 718 | | |
711 | 719 | | |
712 | 720 | | |
| |||
0 commit comments