This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC][modulo-sched] Fix scheduling order within a cycle


Hello,

While testing a patch related to SMS I encountered a problem which this
patch tries to fix.  The problematic case involves write after read to
the same memory location (see attached file sms-4.c). In this case we
have one anti-dep edge with distance 0 from node r (containing the read
operation) to node w (containing the write operation) and true dep edge
with distance 1 from node w to node r.  Consider scheduling node r after
node w was already been scheduled and that node w is scheduled in the
start row of node r's scheduling window. In the current implemetation
we will add node w to node r's must_preceed bitmap although node w
must_follow node r in this case.  Trying to avoid this we can use both
must_follow and must_preceed bitmaps for checking possible scheduling
columns in the start and end rows.  To avoid the situation where a node
appears in both must_follow and must_preceed bitmaps the distance of
the edge is taken into account.  I would appreciate comments regarding
this patch especially the part which tries to avoid situation where a
node appears in both must_follow and must_preceed bitmaps.  My concern
is that there could be situation where for the above case (write after
read) w must_preceed r, so it might be that a more accurate calculation
is needed.  This patch; together with another patch I mentioned at the
beginning where tested on ppc with no regressions so far.

Thanks,
Revital


(See attached file: sms-4.c.txt)(See attached file: patch_fix_order_12.txt)

Attachment: sms-4.c.txt
Description: Text document

Attachment: patch_fix_order_12.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]