[PATCH] D50925: [LICM] Hoist stores of invariant values to invariant addresses out of loops

Anna Thomas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 23 08:54:49 PDT 2018


anna added a comment.

I'll take a closer look at the patch, but at first glance it looks like some cases of invariant store that's preventing the vectorizer (because LICM wasn't hoisting/sinking the store) may be handled by running LICM before vectorization: testcases in https://reviews.llvm.org/D50665 maybe worth trying here - note that those test cases are running LICM before vectorization.

There are 3 kinds of tests worth adding:

1. predicated invariant stores, i.e. the block containing the store itself is predicated and not guaranteed to execute (cannot be handled by LICM)
2. invariant store value is a phi containing invariant incoming values and the phi result depends on an invariant condition (can be handled by LICM. This patch handles?)
3. invariant store value is a phi containing  invariant incoming values and the phi result depends on a variant condition (cannot be handled by LICM safely)


https://reviews.llvm.org/D50925





More information about the llvm-commits mailing list