Pattern-Based Peephole Optimizations with Java JIT Tests
We present JOG, a framework that facilitates developing Java JIT
peephole optimizations alongside JIT tests. JOG enables developers
to write a pattern, in Java itself, that specifies desired code transformations by writing code before and after the optimization, as
well as any necessary preconditions. Such patterns can be written
in the same way that tests of the optimization are already written
in OpenJDK. JOG translates each pattern into C/C++ code that
can be integrated as a JIT optimization pass. JOG also generates
Java tests for optimizations from patterns. Furthermore, JOG can
automatically detect possible shadow relation between a pair of
optimizations where the effect of the shadowed optimization is
overridden by another. Our evaluation shows that JOG makes it
easier to write readable JIT optimizations alongside tests without
decreasing the effectiveness of JIT optimizations. We wrote 162
patterns, including 68 existing optimizations in OpenJDK, 92 new
optimizations adapted from LLVM, and two new optimizations that
we proposed. We opened eight pull requests (PRs) for OpenJDK,
including six for new optimizations, one on removing shadowed
optimizations, and one for newly generated JIT tests; seven PRs
have already been integrated into the master branch of OpenJDK.
Thu 20 JulDisplayed time zone: Pacific Time (US & Canada) change
10:30 - 12:00 | ISSTA 10: Test OptimizationsTechnical Papers at Smith Classroom (Gates G10) Chair(s): Wing Lam University of Illinois at Urbana-Champaign | ||
10:30 15mTalk | More Precise Regression Test Selection via Reasoning about Semantics-Modifying ChangesACM SIGSOFT Distinguished Paper Technical Papers Yu Liu University of Texas at Austin, Jiyang Zhang University of Texas at Austin, Pengyu Nie University of Texas at Austin, Milos Gligoric University of Texas at Austin, Owolabi Legunsen Cornell University DOI | ||
10:45 15mTalk | Catamaran: Low-Overhead Memory Safety Enforcement via Parallel Acceleration Technical Papers Yiyu Zhang Nanjing University, Tianyi Liu Nanjing University, Zewen Sun Nanjing University, Zhe Chen Nanjing University of Aeronautics and Astronautics, Xuandong Li Nanjing University, Zhiqiang Zuo Nanjing University DOI | ||
11:00 15mTalk | Applying and Extending the Delta Debugging Algorithm for Elevator Dispatching Algorithms (Experience Paper) Technical Papers DOI Pre-print | ||
11:15 15mTalk | June: A Type Testability Transformation for Improved ATG Performance Technical Papers Dan Bruce University College London, David Kelly King’s College London, Hector Menendez King’s College London, Earl T. Barr University College London; Google DeepMind, David Clark University College London DOI | ||
11:30 15mTalk | Pattern-Based Peephole Optimizations with Java JIT Tests Technical Papers Zhiqiang Zang University of Texas at Austin, Aditya Thimmaiah University of Texas at Austin, Milos Gligoric University of Texas at Austin DOI Pre-print | ||
11:45 15mTalk | GPUHarbor: Testing GPU Memory Consistency at Large (Experience Paper)ACM SIGSOFT Distinguished Artifact Technical Papers Reese Levine University of California at Santa Cruz, Mingun Cho University of California at Davis, Devon McKee University of California at Santa Cruz, Andrew Quinn University of California at Santa Cruz, Tyler Sorensen University of California at Santa Cruz DOI |