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.

7.2 An Overview of Multicodes . . . . . . . . . . . . . . . . . . . . . . . 133<br />

7.2.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />

7.3 Multicode Identification . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

7.3.1 Intuition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />

7.3.2 Static Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />

7.3.3 An Initial Approach to Dynamic Profiling . . . . . . . . . . . 140<br />

7.3.4 Reducing the Cost of Dynamic Profiling . . . . . . . . . . . . 144<br />

7.3.5 A Simple Alternative Scoring Technique . . . . . . . . . . . . 150<br />

7.4 Multicode Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />

7.5 Multicode Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

7.6 Multicode Performance Results . . . . . . . . . . . . . . . . . . . . . 158<br />

7.6.1 Individual Benchmark Performance . . . . . . . . . . . . . . . 159<br />

7.6.2 Overall Performance Across All Benchmarks . . . . . . . . . . 167<br />

7.7 Multicode Optimization . . . . . . . . . . . . . . . . . . . . . . . . . 169<br />

7.8 Scoring that Considers the Complete Impact of a Multicode . . . . . 175<br />

7.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181<br />

8 Multicodes and Despecialization 182<br />

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

8.2 Despecialization’s Impact on Multicode Substitution . . . . . . . . . . 183<br />

8.3 Performance Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 187<br />

8.4 Balancing Despecialization, Multicode Substitution and Performance 189<br />

8.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197<br />

9 An Efficient Multicode Identification Algorithm 199<br />

9.1 The Most Contributory Substring Problem . . . . . . . . . . . . . . . 199<br />

9.2 Related String Problems . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />

9.3 Suffix Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />

9.4 An Algorithm for the Most Contributory Substring Problem . . . . . 203<br />

9.5 Handling Overlapping Occurrences . . . . . . . . . . . . . . . . . . . 204<br />

9.6 Other Uses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209<br />

9.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209<br />

10 Future Work 212<br />

10.1 Despecialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212<br />

10.1.1 Evaluating the Impact of 76 Despecializations . . . . . . . . . 212<br />

10.1.2 Further Load / Store Despecializations . . . . . . . . . . . . . 213<br />

ix

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

Saved successfully!

Ooh no, something went wrong!