ACM Home Page
Please provide us with feedback. Feedback
Removing redundancy via exception check motion
Full text PdfPdf (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
Vijay Sundaresan  IBM Canada Ltd., Toronto, ON, Canada
Mark Stoodley  IBM Canada Ltd., Toronto, ON, Canada
Pramod Ramarao  IBM Canada Ltd., Toronto, ON, Canada
Sponsors
ACM: Association for Computing Machinery
SIGMICRO: ACM Special Interest Group on Microarchitectural Research and Processing
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 67,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1356058.1356077
What is a DOI?

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
2
3
 
4
 
5
 
6
 
7
 
8
IBM developer kits. http://www-128.ibm.com/developerworks/java/jdk/index.html
9
10
11
 
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

Collaborative Colleagues:
Vijay Sundaresan: colleagues
Mark Stoodley: colleagues
Pramod Ramarao: colleagues