Summary: | 碩士 === 國立臺灣大學 === 資訊工程學研究所 === 101 === This thesis discusses several properties of Dalvik Tracing JIT and explains the reason why does the existing optimization or algorithm can''t eliminate some redundant null pointer check.
To solve this problem, this thesis proposed a new algorithm based on SSA renaming to eliminate these redundant checks. For the partial redundant checks, we can even take advantage of the Tracing JIT, and speculatively move the checks to the loop header so that we can reduce the number of instructions per iteration.
For the non-redundant checks, this thesis utilize the hardware trap and page protection mechanism to reduce the run-time cost of the normal execution of the program.
Our experimental results shows that our approach can speed up LinPack by 20.08% and SciMark 2.0 by 2.74%. For the benchmarks that seldom access Java objects or arrays, the overhead of our approach are negligible.
|