[PATCH] D100122: Update m_Undef to match vectors/aggrs with undefs and poisons mixed

Juneyoung Lee via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 17 04:55:57 PDT 2021


aqjune added inline comments.


================
Comment at: llvm/include/llvm/IR/PatternMatch.h:92-100
+  static bool check(const Value *V) {
+    if (isa<UndefValue>(V))
+      return true;
+
+    if (auto *CA = dyn_cast<ConstantAggregate>(V))
+      return all_of(CA->operand_values(), check);
+
----------------
lebedev.ri wrote:
> aqjune wrote:
> > lebedev.ri wrote:
> > > I'm not sure i like recursion here.
> > > How about a worklist algorithm?
> > Thank you for the suggestion! I updated this patch.
> The point of that lambda was to check non-aggregate operands on the spot, without adding them into the worklist.
> If we don't want that, just inline the lambda into the loop,
> and do plain `Worklist.emplace_back(V);` before the loop..
Would this new version address the concern, maybe?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D100122



More information about the llvm-commits mailing list