[PATCH] D99853: [InstSimplify] Teach isUndefValue to understand const vector with both undef & poison
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 8 00:39:57 PDT 2021
lebedev.ri added a comment.
In D99853#2675873 <https://reviews.llvm.org/D99853#2675873>, @aqjune wrote:
> In D99853#2667983 <https://reviews.llvm.org/D99853#2667983>, @nikic wrote:
>
>> This problem isn't really limited to this one function in InstSimplify. Might it make sense to adjust UndefValue to actually represent such constants? We'd have to add a bitmask to it that indicates which values are poison.
>
> Hi,
> There is ConstantStruct as well, so to make support that case UndefValue needs to store individual elements, I guess.
>
> What do you think about updating `m_Undef` pattern matcher to recognize constants like `<undef, poison>` & replacing `isa<UndefValue>(V)` with `match(V, m_Undef())`?
> The benefit is that we don't need to add to UndefValue the data structures ConstantAggregate is having.
>
> p.s: BTW, `ConstantStruct::get` and `ConstantArray::getImpl` are not returning `poison` even if all elements are poison. I'll make a commit that applies the change that was made to `ConstantVector::getImpl` in the past.
+1 to fixing matcher
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99853/new/
https://reviews.llvm.org/D99853
More information about the llvm-commits
mailing list