[PATCH] D41701: [DAG] Teach BaseIndexOffset to correctly handle with indexed operations

Nirav Dave via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 5 10:51:44 PST 2018

niravd added a comment.

In https://reviews.llvm.org/D41701#966881, @efriedma wrote:

> I would prefer to have a regression test, but it's okay if you can't come up with a way to write one.

Comment at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp:90
+    else // If unknown, give up now.
+      return BaseIndexOffset(Base, Index, Offset, IsIndexSignExt);
+  } else if (N->getAddressingMode() == ISD::PRE_DEC) {
efriedma wrote:
> Does this need to be something like "BaseIndexOffset(Base, N->getOffset(), 0, false);"?  Currently, it looks like this code is discarding the increment.
Good catch. This won't work on pre-decrement though as we'd need the negated index. I've changed it to mark such cases as returning no information and modifying other uses to check for a null base. 


More information about the llvm-commits mailing list