3.6.1 patch nomination: r233351 Fix PR22304

Paweł Bylica chfast at gmail.com
Fri Mar 27 06:16:55 PDT 2015


Hi Andrew, Quentin, Owen & Tom,

I'm not sure who is the owner of the code but I worked with Quentin and
Andrew on the solution. I would like the fix to be included in 3.6.1.

- Paweł

r233351:

Bug: https://llvm.org/bugs/show_bug.cgi?id=22304
Review: http://reviews.llvm.org/D8556

Author: atrick
Date: Thu Mar 26 22:44:13 2015
New Revision: 233351

URL: http://llvm.org/viewvc/llvm-project?rev=233351&view=rev
Log:
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!

Added:
    llvm/trunk/test/CodeGen/Generic/scheduler-backtracking.ll
Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150327/e5eb5b03/attachment.html>


More information about the llvm-commits mailing list