[PATCH] D128586: [SCEV] Use SCEVUnknown(poison) instead of SCEVUnknown(undef).

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 25 09:10:09 PDT 2022


fhahn added inline comments.


================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:7199
     if (!DT.isReachableFromEntry(I->getParent()))
-      return getUnknown(UndefValue::get(V->getType()));
+      return getUnknown(PoisonValue::get(V->getType()));
   } else if (ConstantInt *CI = dyn_cast<ConstantInt>(V))
----------------
nikic wrote:
> This change is fine, but I don't think the containsUndef -> containsPoison change makes sense. We can still have SCEVUnknown of UndefValue (from other places), and I believe current containsUndef() callers do want to check for those as well.
I suppose we would need to check for both undef & poison, which is achieved by just checking for UndefVal (because PoisonValue inherits from UndefValue)?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D128586



More information about the llvm-commits mailing list