<div dir="auto"><div><div class="gmail_quote"><div dir="ltr">Hi Mattias, </div><div dir="ltr"><br></div><div dir="ltr">Not sure about the latency but you can implement a HazardRecognizer to detect that case (MachineScheduler uses an instance of one)</div><div dir="ltr"><br></div><div dir="ltr">Best, </div><div dir="ltr">Alex</div><div dir="ltr"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
-----Original Message-----<br>
From: llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev-bounces@lists.llvm.org</a>] On Behalf Of Mattias Eriksson V via llvm-dev<br>
Sent: September-24-18 12:23 PM<br>
To: llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>><br>
Subject: [llvm-dev] Unmodeled side effects and scheduling latency<br>
<br>
Hi!<br>
<br>
I Have a question on how to think about instructions marked with "hasSideEffects = 1" in the scheduler. In my out-of-tree back-end we recently had this situation:<br>
<br>
SU(0): set_configuration_reg<br>
SU(1): read_from_memory<br>
<br>
SU(0) is marked with "hasSideEffects = 1". <br>
ScheduleDAGInstrs::buildSchedGraph() considered there to be an order-dependency between the instructions, but set its latency to 0. So our custom VLIW scheduler put SU(0) and SU(1) in the same bundle. In reality the configuration register actually affects how the read behaves, so bundling these two caused a bug.<br>
<br>
Is the scheduler correct in setting the latency to 0 correct in this case?<br>
<br>
<br>
Mattias<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div></div>