<div dir="ltr">Hi,<div><br></div><div>I'm interested in the two pre-RA instruction schedulers used in LLVM, list-hybrid and list-ilp. I've done some digging on the internet and played around with executing some test files using the two schedules. However, I'm still uncertain of the behaviors and heuristics used in each.</div>
<div><br></div><div>For example, the XXXX_ls_rr_sort::isReady for hybrid includes a 3 cycle readydelay (seems arbitrary) whereas the ilp version readies all instructions once data dependencies are resolved.</div><div><br>
</div><div>Additionally, the ilp_ls_rr_sort::operator() just calls BURRSort at the end after applying a bunch of heuristics to the queue beforehand. Reading it is quite laborious (very few comments) and was wondering if anyone had any references to what exactly it is doing and why it is doing it in such order.</div>
<div><br></div><div>I'm focused right now on understanding the behavior of the two schedulers. If anyone could give me some direction (papers, slides) that would be greatly appreciated.</div><div><br clear="all"><div>
Chenyang Liu</div>
</div></div>