Program optimization and parallelization using idioms
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Idiom recognition in the Polaris parallelizing compiler
ICS '95 Proceedings of the 9th international conference on Supercomputing
Directed graph pattern matching and topological embedding
Journal of Algorithms
Advanced compiler design and implementation
Advanced compiler design and implementation
Effectively exploiting indirect jumps
Software—Practice & Experience
Exploiting superword level parallelism with multimedia instruction sets
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
A dynamic optimization framework for a Java just-in-time compiler
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
Array form representation of idiom recognition system for numerical programs
Proceedings of the 2001 conference on APL: an arrays odyssey
Stride prefetching by dynamically inspecting objects
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A framework for the integration of partial evaluation and abstract interpretation of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
The IBM eServer z990 microprocessor
IBM Journal of Research and Development
Partial redundancy elimination for access expressions by speculative code motion
Software—Practice & Experience
Superword-Level Parallelism in the Presence of Control Flow
Proceedings of the international symposium on Code generation and optimization
An Architecture Framework for Transparent Instruction Set Customization in Embedded Processors
Proceedings of the 32nd annual international symposium on Computer Architecture
Evolution of a java just-in-time compiler for IA-32 platforms
IBM Journal of Research and Development
JavaTM just-in-time compiler and virtual machine improvements for server and middleware applications
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
Idiom recognition framework using topological embedding
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
Modern processors support hardware-assist instructions (such as TRT and TROT instructions on IBM zSeries) to accelerate certain functions such as delimiter search and character conversion. Such special instructions have often been used in high performance libraries, but they have not been exploited well in optimizing compilers except for some limited cases. We propose a new idiom recognition technique derived from a topological embedding algorithm [4] to detect idiom patterns in the input program more aggressively than in previous approaches. Our approach can detect a pattern even if the code segment does not exactly match the idiom. For example, we can detect a code segment that includes additional code within the idiom pattern. We implemented our new idiom recognition approach based on the Java Just-In-Time (JIT) compiler that is part of the J9 Java Virtual Machine, and we supported several important idioms for special hardware-assist instructions on the IBM zSeries and on some models of the IBM pSeries. To demonstrate the effectiveness of our technique, we performed two experiments. The first one is to see how many more patterns we can detect compared to the previous approach. The second one is to see how much performance improvement we can achieve over the previous approach. For the first experiment, we used the Java Compatibility Kit (JCK) API tests. For the second one we used IBM XML parser, SPECjvm98, and SPCjbb2000. In summary, relative to a baseline implementation using exact pattern matching, our algorithm converted 75% more loops in JCK tests. We also observed significant performance improvement of the XML parser by 64%, of SPECjvm98 by 1%, and of SPECjbb2000 by 2% on average on a z990. Finally, we observed the JIT compilation time increases by only 0.32% to 0.44%.