[PATCH] D93229: [VectorCombine] allow peeking through GEPs when creating a vector load

Juneyoung Lee via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 16 17:35:07 PST 2020


aqjune added a comment.

In D93229#2457696 <https://reviews.llvm.org/D93229#2457696>, @spatel wrote:

> We can use an alternate plan to make incremental progress, but it will cause redundancy while we transition:
>
> 1. Replicate all of the regression tests with the poison constant instead of undef. If we add some unique TODO text marker on all of those new tests, we can then grep to make sure everything that we expect to get updated is actually updated in later steps.
> 2. Update instcombine/simplify/vectorizer folds to match poison patterns (create a `m_UndefOrPoison()` pattern matcher?)

m_Undef already matches poison because PoisonValue is a subclass of UndefValue :)

> 3. Run Alive2 through all of the updated regression tests to verify.
> 4. Update codegen to deal with poison constant?
> 5. Update folds from step 2 to create poison rather than undef (if that's what they were doing)?
> 6. Change IRBuilder or other instruction creators to create poison from the start.

I think we can split the goal and first work on replacing the placeholder value that is used by `insertelement` only.
In this case, actually InstSimplify/InstCombine change isn't necessary as well. It can be done only when suboptimal assembly is being generated. 
What do you think?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D93229/new/

https://reviews.llvm.org/D93229



More information about the llvm-commits mailing list