13.10.2014 Views

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

182<br />

Chapter 8<br />

Multicodes and Despecialization<br />

In many respects, despecialization and multicode substitution are competitors. Despecialization<br />

attempts to minimize the number of bytecodes in the Java instruction<br />

set while multicode substitution introduces new instructions. Despecialization increases<br />

the size of the bytecode stream due to the need for additional opcodes and<br />

operands to represent the program. In contrast, multicodes reduce the size of the<br />

bytecode stream by reducing the number of opcodes used to represent the program.<br />

Performing despecialization typically results in a performance loss, while performing<br />

multicode substitution improves the performance of the applications it is applied to.<br />

This chapters takes the notions presented in Chapters 4, 5 and 7 and brings them<br />

together, testing benchmarks when both despecialization and multicode substitution<br />

have been performed. The impact that bringing these techniques together has on<br />

multicode identification is considered and performance results are presented for the<br />

benchmarks in the SPEC JVM98 Benchmark Suite.<br />

8.1 Multicode Identification in the Presence of Despecialization<br />

The previous chapter presented an algorithm for identifying a set of multicodes that<br />

would have a beneficial impact on execution performance. The algorithm relies on<br />

profiling an application, or collection of applications, to obtain a dynamic stream of<br />

bytecodes, divided into multicode blocks. Each contiguous sub-sequence of bytecodes<br />

within a multicode block is a candidate sequence, and the number of times each<br />

candidate sequence occurs is accumulated.<br />

When an application is despecialized, the dynamic sequence of bytecodes gener-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!