| Removing redundancy via exception check motion |
| Full text |
Pdf
(253 KB)
|
Source
|
Code Generation and Optimization
archive
Proceedings of the sixth annual IEEE/ACM international symposium on Code generation and optimization
table of contents
Boston, MA, USA
SESSION: Compiler optimization
table of contents
Pages 134-143
Year of Publication: 2008
ISBN:978-1-59593-978-4
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 7, Downloads (12 Months): 67, Citation Count: 0
|
|
|
ABSTRACT
Partial redundancy elimination aims to reduce the number of times an expression is computed more than once. The traditional Lazy Code Motion (LCM) algorithm formulated by Knoop, Ruthing and Steffen, through its reliance on unordered bit vectors, is severely limited in its ability to remove redundancy when precise exception semantics are required because bit vectors cannot express the order of exception checks. This paper describes our new PRE algorithm Exception Check Motion that uses the LCM algorithm to treat and optimize exception checks in a similar way to any other expression. Unlike earlier techniques that can remove only the compare instruction of a partially redundant exception check, our solution can eliminate both the compare and trap instructions without any run time code patching or expensive recovery operations. Since it is the trap instructions that restrict subsequent code motions, our technique gives downstream optimizations more flexibility to improve the performance of the resulting code once the partially redundant checks are eliminated. Our analysis has been implemented in the IBM® Testarossa (TR) just-in-time (JIT) compiler in the IBM Developer Kit for Java Release 5.0 as part of the J9 Virtual Machine. We measure performance improvements up to 7.6% and averaging 2.5% across 22 SPEC and DaCapo benchmarks on 4-way IBM pSeries (PowerPC) hardware.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Stephen M. Blackburn , Robin Garner , Chris Hoffmann , Asjad M. Khang , Kathryn S. McKinley , Rotem Bentzur , Amer Diwan , Daniel Feinberg , Daniel Frampton , Samuel Z. Guyer , Martin Hirzel , Antony Hosking , Maria Jump , Han Lee , J. Eliot B. Moss , B. Moss , Aashish Phansalkar , Darko Stefanović , Thomas VanDrunen , Daniel von Dincklage , Ben Wiedermann, The DaCapo benchmarks: java benchmarking development and analysis, Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
 |
2
|
Rastislav Bodík , Rajiv Gupta , Vivek Sarkar, ABCD: eliminating array bounds checks on demand, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.321-333, June 18-21, 2000, Vancouver, British Columbia, Canada
|
 |
3
|
Rastislav Bodík , Rajiv Gupta , Mary Lou Soffa, Complete removal of redundant expressions, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.1-14, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
4
|
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
| |
8
|
IBM developer kits. http://www-128.ibm.com/developerworks/java/jdk/index.html
|
 |
9
|
|
 |
10
|
Jens Knoop , Oliver Rüthing , Bernhard Steffen, Lazy code motion, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.224-234, June 15-19, 1992, San Francisco, California, United States
|
 |
11
|
Jens Knoop , Oliver Rüthing , Bernhard Steffen, The power of assignment motion, Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation, p.233-245, June 18-21, 1995, La Jolla, California, United States
|
| |
12
|
|
 |
13
|
|
| |
14
|
National Institute of Standards and Technology. SciMark 2.0 http://math.nist.gov/scimark2/
|
| |
15
|
|
| |
16
|
Standard Performance Evaluation Corporation SPECjbb2005 (Java Server Benchmark) http://www.spec.org/jbb2005/
|
| |
17
|
Standard Performance Evaluation Corporation SPECjbb2000 (Java Business Benchmark) http://www.spec.org/jbb2000/
|
| |
18
|
Standard Performance Evaluation Corporation SPECjvm98 Benchmarks. http://www.spec.org/jvm98/
|
| |
19
|
|
| |
20
|
|
|