[PATCH] D70634: Ignore Unknown dependencies using vectorize.ivdep metadata

Yashas Andaluri via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 12 06:04:59 PST 2019


YashasAndaluri added a comment.

Thank you for checking this diff and for the suggestions! Sorry for the delayed update on this.

In D70634#1758952 <https://reviews.llvm.org/D70634#1758952>, @Meinersbur wrote:

> [serious] We did not come to a conclusion during the discussion <https://lists.llvm.org/pipermail/llvm-dev/2019-August/134592.html> about the semantics ivdep being implementation-dependent.


I was under the impression that Unknown dependencies were ambiguous to the vectorizer and so would be along the lines of the Cray semantics. Please suggest what would be a good approach for this.

> Also consider that `vectorize_enable(assume_safety)` has been designed such that if previous passes move code into the loop that has not been in the source code loop, the safety semantic does not apply to the moved code. This implementation would apply ivdep on the moved code (which might be okay if we shift the responsibility to the code motion pass to remove the metadata).

I believe `vectorize_enable(assume_safety)` does this by marking the memory access instructions in the original loop (before any code is moved into the loop) with `llvm.access.group`  metadata? Would it be recommended to do something similar for ivdep?


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

https://reviews.llvm.org/D70634





More information about the llvm-commits mailing list