<div dir="ltr">Hi Ahmed,<div><br></div><div>Greetings. If you're looking for scheduling logic in C2, that would mostly be in opto/gcm.cpp and opto/lcm.cpp, for Global Code Motion and Local Code Motion, respectively.</div><div><br></div><div>The place that initiates code scheduling is from Compile::Code_Gen() in opto/compile.cpp:</div><div><br></div><div><div>2320   // Build a proper-looking CFG</div><div>2321   PhaseCFG cfg(node_arena(), root(), matcher);</div><div>2322   _cfg = &cfg;</div><div>2323   {</div><div>2324     TracePhase tp("scheduler", &timers[_t_scheduler]);</div><div>2325     bool success = cfg.do_global_code_motion(); // <- Scheduling initiated from here</div><div>2326     if (!success) {</div><div>2327       return;</div><div>2328     }</div><div>2329 </div><div>2330     print_method(PHASE_GLOBAL_CODE_MOTION, 2);</div><div>2331     NOT_PRODUCT( verify_graph_edges(); )</div><div>2332     debug_only( cfg.verify(); )</div><div>2333   }</div></div><div><br></div><div>Follow that path and you'll be able to find all the code you need.</div><div><br></div><div>Best regards,</div><div>Kris</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 15, 2015 at 10:56 AM, Ahmed Khawaja <span dir="ltr"><<a href="mailto:ahmed.khawaja@oracle.com" target="_blank">ahmed.khawaja@oracle.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Greetings,<br>
<br>
           I am inquiring as to what would be a good starting point to get familiar with the current instruction scheduling capabilities of the C2 compiler in hotspot. I am relatively new to working with Hotspot and have primarily been working with the macro-assembler and will now be looking at the instruction scheduling abilities. I am going through the source code now but I am not exactly sure where instruction scheduling is done. The OpenJDK wiki also seems to be somewhat empty on this and the compiler passes in general.<br>
<br>
Thanks in advance,<br>
   Ahmed<br>
</blockquote></div><br></div>