[llvm] [Pipeliner] Fix Phi node dependency calculation (PR #160056)

Yuta Mukai via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 21 09:13:03 PDT 2025


ytmukai wrote:

I think there's some ambiguity in how the term 'overlap' is being used. The function `mayOverlapInLaterIter()` refers to the overlap of memory access regions, whereas the modified portion of the code is checking if the two base operands are always _identical_ in value.  (It is possible to guarantee non-overlap only if the two base operands are identical.)

> This patch fixes a corner case when it assumes a dependency which does not actually exist.

In that example, during the first iteration of both the outer and inner loops, `%BaseRegB = %Input` and `%BaseRegO = %Output`. Therefore, it is not guaranteed that they will hold the same value. Therefore, the function must conservatively return true.

https://github.com/llvm/llvm-project/pull/160056


More information about the llvm-commits mailing list