Title :
A Novel Lightweight Instruction Scheduling Algorithm for Just-in-Time Compiler
Author :
Shi, Xiaohua ; Guo, Peng
Author_Institution :
Sch. of Comput. Sci., Beihang Univ., Beijing, China
Abstract :
In this paper, we present a lightweight algorithm of instruction scheduling to reduce the pipeline stalls on XScale. The algorithm is designed for and implemented in a J2ME just-in-time (JIT) compiler. It is not based on directed acyclic graphs (DAGs) or expression trees, but a novel data structure namely extended dependency matrix (EDM). The algorithm has almost linear time complexity to one order of magnitude less of the code length in practice, and linear to the code length in the worst cases. It consumes only about 1 KB constant memory space. On the benchmarks we studied, it can eliminate up to 41% data dependency stalls at runtime. The algorithm is on average 2 times faster than a list scheduling implementation, in terms of compilation time. On all benchmarks we studied, the performance is more than 90% as efficient as that obtained using more time and memory consuming algorithms on average.
Keywords :
Java; computational complexity; data structures; matrix algebra; program compilers; scheduling; EDM; J2ME; JIT; code length; constant memory space; data structure; directed acyclic graph; expression tree; extended dependency matrix; just-in-time compiler; lightweight instruction scheduling algorithm; linear time complexity; pipeline stall reduction; Computer science; Java; Out of order; Pipelines; Processor scheduling; Reduced instruction set computing; Registers; Runtime; Scheduling algorithm; Software engineering; Instruction Scheduling; Just-In-Time Compiler;
Conference_Titel :
Software Engineering, 2009. WCSE '09. WRI World Congress on
Conference_Location :
Xiamen
Print_ISBN :
978-0-7695-3570-8
DOI :
10.1109/WCSE.2009.39