Explain the term instruction scheduling understood as part of the compilation process. Describe what effects it might have on compile-time or run-time performance when performed by a compiler.
For a plausible, but not necessarily implemented, machine architecture of your choice give an algorithm which performs instruction scheduling. Note carefully what information on instructions is liable to be needed and the unit of code over which scheduling is done.
Discuss the following statements:
(a) An instruction scheduling phase cannot do as well as an assembly code programmer because
st.w r0,d cannot be interleaved.