[PATCH] D118538: [SLP] Schedule only sub-graph of vectorizable instructions

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 16 09:52:28 PDT 2022


reames added a comment.

I did take a look at this, and figured out at least one of the problems.  The scheduling code does not account for implicit control dependencies.  (e.g. consider a case where we reorder two maythrow functions)  The alloca symptom is one example of this, but there are also a bunch of others.  The original code ends up being (mostly?) correct by relying on the scheduler not to change the order of two instructions which are both "ready".  I have this bad feeling that the original code is wrong in some cornercase, but don't have a reproducer.  To reland this patch, I will need to implement implicit control flow dependencies.

There may be another problem here as well.  I discovered the above via code inspection, and I can't quite map how that bug causes the sanitizer failures.  However, I haven't looked into that as a) the reproduction is annoying complicated and b) I've been focused on memoryssa in the meantime.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D118538



More information about the llvm-commits mailing list