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.

45<br />

Chapter 4<br />

Despecialization<br />

The Java Virtual Machine Specification [73] defines the functionality of 201 distinct<br />

bytecodes. Previous studies described in Chapter 3 have divided the bytecodes into<br />

groups based on differing criteria. As part of this study, the bytecodes were divided<br />

into two distinct categories:<br />

Specialized Bytecode: A bytecode that provides functionality that is<br />

easily replicated using other bytecodes defined by the Java Virtual Machine<br />

Specification. In some cases, it is possible to provide the identical<br />

functionality using exactly one other Java bytecode. In other cases, it is<br />

necessary to use a short sequence of Java bytecodes in order to replicate<br />

the task performed by the specialized bytecode.<br />

General Purpose Bytecode: A bytecode that provides functionality<br />

that is difficult to mimic using a small number of other bytecodes.<br />

An important consequence of this definition is the fact that specialized bytecodes are<br />

not a necessary part of the Java Virtual Machine Specification since their functionality<br />

can be replicated using other general purpose bytecodes. As a result, this study<br />

examines the impact removing the specialized bytecodes has on application runtime,<br />

class file size and the correctness of the Java Virtual Machine.<br />

4.1 Despecialization Categories<br />

A total of 76 specialized bytecodes were identified during this study. These can be<br />

logically separated into 7 distinct categories. Each of the categories is described in a<br />

separate subsection below. Table 4.5, located on page 59, presents a complete list of<br />

all 76 bytecodes.

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

Saved successfully!

Ooh no, something went wrong!