[PATCH] D91833: [SelectionDAG] Avoid aliasing analysis if the object size is unknown.

Hsiangkai Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 23 19:20:03 PST 2020


HsiangKai added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp:103
+    // vector objects on the stack.
+    if (*NumBytes0 == static_cast<int64_t>(MemoryLocation::UnknownSize) ||
+        *NumBytes1 == static_cast<int64_t>(MemoryLocation::UnknownSize))
----------------
niravd wrote:
> HsiangKai wrote:
> > niravd wrote:
> > > This is too aggressive. We can still determine that a two addresses are non-aliasing even if one is unknown size. (e.g. FrameIndex vs. Global)
> > The checking is under the condition that BasePtr0.equalBaseIndex(BasePtr1, ...) equals true. It would not be the case you considered.
> What about the case where equalBaseIndex returns true, and the lowered addressed access has a known size smaller than the difference? In that case, we should be able to determine that they are do not alias.
I doubt there is a such scenario to share the same base between fixed and scalable types. I could add an assertion here.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91833



More information about the llvm-commits mailing list