Abstract | ||
---|---|---|
We present a new algorithm for eliminating null pointer checks from programs written in Java™. Our new algorithm is split into two phases. In the first phase, it moves null checks backward, and it is iterated for a few times with other optimizations to eliminate redundant null checks and maximize the effectiveness of other optimizations. In the second phase, it moves null checks forward and converts many null checks to hardware traps in order to minimize the execution cost of the remaining null checks. As a result, it eliminates many null checks effectively and exploits the maximum use of hardware traps. This algorithm has been implemented in the IBM cross-platform Java Just-in-Time (JIT) compiler. Our experimental results show that our approach improves performance by up to 71% for jBYTEmark and up to 10% for SPECjvm98 over the previously known best algorithm. They also show that it increases JIT compilation time by only 2.3%. Although we implemented our algorithm for Java, it is also applicable for other languages requiring null checking.
|
Year | DOI | Venue |
---|---|---|
2000 | 10.1145/356989.357002 | Special Interest Group on Computer Architecture |
Keywords | Field | DocType |
hardware trap,null pointer check,ibm cross-platform java just-in-time,jit compilation time,best algorithm,remaining null check,effective null pointer check,new algorithm,redundant null check,null checking,null check | Pointer (computer programming),Computer science,Parallel computing,Algorithm,Real-time computing,Compiler,Redundancy (engineering),Just-in-time compilation,Systems architecture,Computer hardware,Iterated function,Java | Conference |
Volume | Issue | ISSN |
35 | 11 | 0163-5964 |
ISBN | Citations | PageRank |
1-58113-317-0 | 23 | 1.18 |
References | Authors | |
10 | 3 |
Name | Order | Citations | PageRank |
---|---|---|---|
Motohiro Kawahito | 1 | 197 | 13.92 |
Hideaki Komatsu | 2 | 410 | 34.00 |
Toshio Nakatani | 3 | 741 | 56.80 |