Hiroshi Inoue, Takao Moriyama, et al.
Software - Practice and Experience
It is a major challenge for a Java JIT compiler to perform single-precision floating-point operations efficiently for the x86 processors. In previous research, the double-precision mode is set as the default precision mode when methods are invoked. Sophisticated approaches then use heuristic approaches to optimization by considering the trade-offs between roundings and mode switches. However, this convention introduces redundant mode switches across method boundaries. Furthermore, methods that include both single- and double-precision operations cannot switch the mode, even if single-precision operations are dominant. We propose a new approach to these problems. We eliminate redundant mode switches by ignoring the default precision mode and calling a method in the same precision mode as the caller. For methods that include both single- and double-precision methods, we reduce the overhead of rounding by isolating code segments of a given method that should be executed in the single-precision mode. We implemented our approach in IBM's Just-in-Time compiler, and obtained experimental results demonstrating that, in SPECjvm98, it consistently shows the best performance in any configuration of benchmark programs, inline policies, and processor architectures compared with previous research approaches. Copyright © 2004 John Wiley & Sons, Ltd.
Hiroshi Inoue, Takao Moriyama, et al.
Software - Practice and Experience
Motohiro Kawahito, Hideaki Komatsu, et al.
EuroSys 2008
Arquimedes Canedo, Takeo Yoshizawa, et al.
International Journal for Numerical Methods in Engineering
Motohiro Kawahito, Hideaki Komatsu, et al.
SIGPLAN Notices (ACM Special Interest Group on Programming Languages)