diff options
author | Andrew Trick <atrick@apple.com> | 2015-03-27 03:44:13 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2015-03-27 03:44:13 +0000 |
commit | e97ff5a2ad4896324705347ca5514a24122ab17c (patch) | |
tree | 72ff42a0631e9968008cc28cf5c82e4fe452261f /llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | |
parent | ffb0864b44c49fa4ade8e666c64da65d9a49c8c8 (diff) | |
download | bcm5719-llvm-e97ff5a2ad4896324705347ca5514a24122ab17c.tar.gz bcm5719-llvm-e97ff5a2ad4896324705347ca5514a24122ab17c.zip |
Fix a bug in SelectionDAG scheduling backtracking code: PR22304.
It can happen (by line CurSU->isPending = true; // This SU is not in
AvailableQueue right now.) that a SUnit is mark as available but is
not in the AvailableQueue. For SUnit being selected for scheduling
both conditions must be met.
This patch mainly defensively protects from invalid removing a node
from a queue. Sometimes nodes are marked isAvailable but are not in
the queue because they have been defered due to some hazard.
Patch by Pawel Bylica!
llvm-svn: 233351
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoopVectorize.cpp')
0 files changed, 0 insertions, 0 deletions