[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