<div dir="ltr"><div>Mips invokes the post-RA scheduler only when OptLevel > Aggressive, so you will have to compile with -O3.<br></div><div><br></div><div>You can also invoke the MI (pre-RA) scheduler with llc option "-enable-misched". As you have pointed out, the post-isel scheduler is mandatory, and therefore you don't have to give any command line options.</div>

<div><br></div><div>Currently, mips has only one generic scheduling itinerary model in MipsSchedule.td that is not tailored to any specific core, so you might have to tweak it to have the scheduler generate efficient code for your target.</div>

<div><br></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Wed, Sep 18, 2013 at 7:41 PM, Liu Xin <span dir="ltr"><<a href="mailto:navy.xliu@gmail.com" target="_blank">navy.xliu@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div>Hi, LLVM, <br><br></div>I found LLVM codegen has 3 passes for instruction scheduling:<br>

<br></div>1) pre-ra sched<br></div>2) post-ra sched<br></div>3) mi sched. <br>
<br></div>for RISC machines, there are data hazard cases appear only after Register Allocation(RA).  for example, $t0 is used immediately after writing(RAW):<br></div><br>ld $t0, MEM<br></div>add $t2, $t0, $0<br><br></div>


There may be one or more stall in pipeline. Instruction scheduler can detect this kinds of conflict and insert other instructions to avoid pipeline bubble. I think this work only can be done after RA.  If so, what's the purpose for 1). I found 1) is mandatory  and 2/3) are optional.  Further, at least one target enable pre-RA-sched with harzardRecognizer. Does it really work out? you can resolve data hazard using pre-RA-sched only? <br>


<br>thanks,<br></div><div>--lx<br><br></div><div><br></div><div><br><br><div><div><div><div><br><div><div><div><div><div><div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div></div>