This repository was archived by the owner on Mar 28, 2020. It is now read-only.
Commit 3f92210
Hal Finkel
[LV] Extend InstWidening with CM_Widen_Recursive
Changes to the original scalar loop during LV code gen cause the return value
of Legal->isConsecutivePtr() to be inconsistent with the return value during
legal/cost phases (further analysis and information of the bug is in D39346).
This patch is an alternative fix to PR34965 following the CM_Widen approach
proposed by Ayal and Gil in D39346. It extends InstWidening enum with
CM_Widen_Reverse to properly record the widening decision for consecutive
reverse memory accesses and, consequently, get rid of the
Legal->isConsetuviePtr() call in LV code gen. I think this is a simpler/cleaner
solution to PR34965 than the one in D39346.
Fixes PR34965.
Patch by Diego Caballero, thanks!
Differential Revision: https://reviews.llvm.org/D40742
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320913 91177308-0d34-0410-b5e6-96231b3b80d81 parent cd27af2 commit 3f92210
File tree
2 files changed
+84
-5
lines changed- lib/Transforms/Vectorize
- test/Transforms/LoopVectorize
2 files changed
+84
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1612 | 1612 | | |
1613 | 1613 | | |
1614 | 1614 | | |
| 1615 | + | |
| 1616 | + | |
1615 | 1617 | | |
1616 | 1618 | | |
1617 | 1619 | | |
| |||
1966 | 1968 | | |
1967 | 1969 | | |
1968 | 1970 | | |
1969 | | - | |
| 1971 | + | |
| 1972 | + | |
1970 | 1973 | | |
1971 | 1974 | | |
1972 | 1975 | | |
| |||
3204 | 3207 | | |
3205 | 3208 | | |
3206 | 3209 | | |
3207 | | - | |
3208 | | - | |
| 3210 | + | |
| 3211 | + | |
| 3212 | + | |
3209 | 3213 | | |
3210 | 3214 | | |
3211 | 3215 | | |
| |||
5711 | 5715 | | |
5712 | 5716 | | |
5713 | 5717 | | |
| 5718 | + | |
5714 | 5719 | | |
5715 | 5720 | | |
5716 | 5721 | | |
| |||
7180 | 7185 | | |
7181 | 7186 | | |
7182 | 7187 | | |
7183 | | - | |
| 7188 | + | |
| 7189 | + | |
| 7190 | + | |
| 7191 | + | |
| 7192 | + | |
| 7193 | + | |
7184 | 7194 | | |
7185 | 7195 | | |
7186 | 7196 | | |
| |||
7270 | 7280 | | |
7271 | 7281 | | |
7272 | 7282 | | |
7273 | | - | |
| 7283 | + | |
| 7284 | + | |
7274 | 7285 | | |
7275 | 7286 | | |
7276 | 7287 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
0 commit comments