[PATCH] D76944: [GVN] Fix VNCoercion for Scalable Vector.

Huihui Zhang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 9 16:53:54 PDT 2020


huihuiz added inline comments.


================
Comment at: llvm/lib/Analysis/BasicAliasAnalysis.cpp:543
+      Type *GEPIdxedTy = GTI.getIndexedType();
+      if (GEPIdxedTy->isVectorTy() && GEPIdxedTy->getVectorIsScalable()) {
+        GepHasConstantOffset = false;
----------------
huihuiz wrote:
> efriedma wrote:
> > Can you check DL.getTypeAllocSize(GEPIdxedTy).Scalable instead, since you're calling getTypeAllocSize anyway?
> > 
> > I don't think this is the right way to break out of this loop early; if the offset isn't recorded in "Decomposed", other code might assume it's zero?
> Spend sometime look again, BasicAAResult::aliasGEP is using the offset/varIndices recorded in DecomposedGEP. For scalable type, we might end up inaccurate alias result.
> 
> Working on fixes for this logic.
Fixing BasicAA in D77828.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76944





More information about the llvm-commits mailing list