Commit 44220ba
committed
[InstCombine] Don't require GEP in indexed compare fold
The indexed compare fold folds comparisons like p+a == p+b to
a == b, even in cases where the a/b are complex (e.g. via multiple
geps, or phis).
Currently, it requires that the LHS is actually a GEP, but this
requirement isn't really necessary: We can handle the pattern
p == p+b as well.
This patch removes the GEP requirement, allowing additional
comparisons to be optimized away.1 parent 50aacb9 commit 44220ba
File tree
4 files changed
+33
-37
lines changed- llvm
- lib/Transforms/InstCombine
- test/Transforms
- InstCombine
- PhaseOrdering
4 files changed
+33
-37
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
626 | 626 | | |
627 | 627 | | |
628 | 628 | | |
629 | | - | |
| 629 | + | |
630 | 630 | | |
631 | | - | |
632 | | - | |
633 | | - | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
634 | 634 | | |
635 | 635 | | |
636 | | - | |
637 | | - | |
| 636 | + | |
638 | 637 | | |
639 | 638 | | |
640 | | - | |
| 639 | + | |
| 640 | + | |
641 | 641 | | |
642 | 642 | | |
643 | | - | |
| 643 | + | |
644 | 644 | | |
645 | | - | |
646 | | - | |
| 645 | + | |
| 646 | + | |
647 | 647 | | |
648 | 648 | | |
649 | | - | |
| 649 | + | |
650 | 650 | | |
651 | 651 | | |
652 | 652 | | |
653 | 653 | | |
654 | | - | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
655 | 657 | | |
656 | 658 | | |
657 | 659 | | |
| |||
800 | 802 | | |
801 | 803 | | |
802 | 804 | | |
803 | | - | |
804 | | - | |
805 | | - | |
806 | | - | |
| 805 | + | |
807 | 806 | | |
808 | 807 | | |
809 | 808 | | |
| |||
851 | 850 | | |
852 | 851 | | |
853 | 852 | | |
854 | | - | |
855 | | - | |
856 | | - | |
| 853 | + | |
857 | 854 | | |
858 | 855 | | |
859 | 856 | | |
| |||
7312 | 7309 | | |
7313 | 7310 | | |
7314 | 7311 | | |
| 7312 | + | |
| 7313 | + | |
| 7314 | + | |
| 7315 | + | |
7315 | 7316 | | |
7316 | 7317 | | |
7317 | 7318 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
686 | 686 | | |
687 | 687 | | |
688 | 688 | | |
689 | | - | |
690 | 689 | | |
691 | 690 | | |
692 | 691 | | |
693 | 692 | | |
694 | 693 | | |
695 | | - | |
696 | | - | |
697 | | - | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
698 | 698 | | |
699 | 699 | | |
700 | 700 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | | - | |
12 | | - | |
| 10 | + | |
13 | 11 | | |
14 | 12 | | |
15 | 13 | | |
| |||
22 | 20 | | |
23 | 21 | | |
24 | 22 | | |
25 | | - | |
26 | | - | |
27 | | - | |
| 23 | + | |
28 | 24 | | |
29 | 25 | | |
30 | 26 | | |
| |||
37 | 33 | | |
38 | 34 | | |
39 | 35 | | |
40 | | - | |
41 | | - | |
42 | | - | |
| 36 | + | |
43 | 37 | | |
44 | 38 | | |
45 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| |||
0 commit comments