![]() if the top level addition in (D + (C-D + x + ...)) could be proven to not wrap, where the choice of D also maximizes the number of trailing zeroes of (C-D + x + ...), ensuring homogeneous behaviour of the transformation and better canonicalization of such expressions. This enables better canonicalization of expressions like 1 + zext(5 + 20 * %x + 24 * %y) and zext(6 + 20 * %x + 24 * %y) which get both transformed to 2 + zext(4 + 20 * %x + 24 * %y) This pattern is common in address arithmetics and the transformation makes it easier for passes like LoadStoreVectorizer to prove that 2 or more memory accesses are consecutive and optimize (vectorize) them. Reviewed By: mzolotukhin Differential Revision: https://reviews.llvm.org/D48853 llvm-svn: 337859 |
||
---|---|---|
.. | ||
codegenprepare-produced-address-math.ll | ||
correct-order.ll | ||
lit.local.cfg | ||
load-width.ll | ||
merge-tbaa.ll | ||
non-byte-size.ll | ||
preserve-order32.ll | ||
preserve-order64.ll | ||
subchain-interleaved.ll | ||
vector-scalar.ll |