integrated prepass scheduling for a java just-in-time compiler on the ia-64 architecture
We present a new integrated prepass scheduling (IPS) algorithm for a Java Just-In-Time (JIT) compiler, which integrates register minimization into list scheduling. We use backtracking in the list scheduling when we have used up all the available registers. To reduce the overhead of backtracking, we incrementally maintain a set of candidate instructions for undoing scheduling. To maximize the ILP after undoing scheduling, we select an instruction chain with the smallest increase in the total execution time. We implemented our new algorithm in a production-level Java JIT compiler for the Intel Itanium processor. The experiment showed that, compared to the best known algorithm by Govindarajan et al., our IPS algorithm improved the performance by up to +1.8\% while it reduced the compilation time for IPS by 58\% on average.
integrability scheduling compilation architecture algorithm minimal use backtracking maintainability instruction ilp select timing processor experience performance product just-in time compilation