[PATCH] D108281: [GVN] Improve alias analysis for parallel accesses

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 18 09:04:56 PDT 2021


Meinersbur requested changes to this revision.
Meinersbur added a comment.
This revision now requires changes to proceed.

`llvm.loop.parallel_accesses` is only relative to the loop that it is attached to. The information is not useful if not also passing the loop under consideration. That is, the access may be "parallel" in one loop but not in another. For instance:

  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      A[j] = ...; // DepInst
      use(A[j]); // QueryInst
    }
  }

Clearly, DepInst and QueryInst do alias every time, yet the `j`-loop can be execute in parallel so `llvm.loop.parallel_accesses` can be attached to it. However, the i-loop cannot be executed in parallel.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D108281



More information about the llvm-commits mailing list