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]

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


Hello,

Following our off-line discussion; attached is the dump file of the
problematic testcase. (sms-4.c)

Here are some relevant details:

insn 61(write) and 58(read) were swapped, so sms tries to generate some
kind of reg-move and fails.

[CYCLE 4 ]: 61, 58,

insn 61 is the only already scheduled instruction which insn 58 depends
on.

The window of insn 58 is (4 .. -1), calculated as follows:

Processing edge: [61 -(T,14,1)-> 58]
Scheduling 8 (58) in psp_pss_not_empty, checking p 11 (61): pred st = 4;
early_start = 0; latency: 14
Processing edge: [58 -(A,0,0)-> 61]
Scheduling 8 (58) in psp_pss_not_empty, checking s 11 (61): succ st = 4;
late_start = 4; latency: 0
Processing edge: [58 -(T,2,0)-> 59]
Scheduling 8 (58) in psp_pss_not_empty, checking s 9 (59): the node is not
scheduled

Trying to schedule node 8                         INSN = 58  in (4 .. -1)
step -1
Scheduled w/o split in 4

insn 61 only must_preceed insn 58 because the latency between 61->58 is
14 which causes the end boundary of the window to be 0.

Thanks,
Revital

(See attached file: test.c.172r.sms)

Attachment: test.c.172r.sms
Description: Binary data


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