Hi,
the compiler optimization "instruction scheduling" is a quite old technique that can be found in many modern compilers. From some standard compiler books, I got to know that many schedulers are based on "list scheduling" which seems to be the standard approach. An advanced approach based on profiling is "trace scheduling".
I would like to hear your opinion if there is/was any progress in the last years concerning instruction scheduling leading to more advanced techniques now considered to be standard or if scheduling based on list scheduling is still state-of-the with no major deviations?
The reason I'm asking is that I want to write a master's thesis about instruction scheduling for a research compiler. The compiler is for an TI inorder-issue superscalar DSP which has two pipelines (integer and load/store pipeline) and I'm looking for some challenges that should go beyond the standard approaches which can be found in standard compiler books and thus easily adapted. So, any advices are appreciated.
Regards, Christian