Automatic Object Inlining for the HotSpot Client Compiler

Projects > Compiler and JVM Research at JKU

We designed a feedback-directed optimization system for object inlining and array inlining that utilizes the just-in-time compiler and the garbage collector. Object inlining reduces the costs of field accesses by combining referenced objects with their referencing object. The order of objects on the heap is changed by the garbage collector so that they are placed next to each other. Then their offset is fixed, i.e. the objects are colocated. This allows field loads to be replaced by address arithmetic using the just-in-time compiler. Array inlining expands the concepts of object inlining to arrays, which are frequently used for the implementation of dynamic data structures. There are currently no plans to integrate this work into the product version.

Publications

  • Christian Wimmer, Hanspeter Mössenböck:
    Automatic Feedback-Directed Object Fusing
    In ACM Transactions on Architecture and Code Optimization (TACO), volume 7, issue 2, pp. 7:1-7:35, September 2010.
    Summary paper that covers all parts of the optimization, but does not describe the algorithmic details. Read this if you want to get familiar with the topic.
  • Christian Wimmer:
    Automatic Object Inlining in a Java Virtual Machine
    PhD thesis, Institute for System Software, Johannes Kepler University Linz, 2008.
    Describes the details of all algorithms and contains an extensive evaluation as well as a survey of related work. Read this if you are interested in the implementation details.
  • Christian Wimmer, Hanspeter Mössenböck:
    Automatic Array Inlining in Java Virtual Machines
    Intl. Symposium on Code Generation and Optimization (CGO'08), pp. 14-23. ACM Press, 2008. doi:10.1145/1356058.1356061
    Conference paper that covers only the array inlining part of the optimization system.
  • Christian Wimmer, Hanspeter Mössenböck:
    Automatic Feedback-Directed Object Inlining in the Java HotSpot™ Virtual Machine
    ACM/USENIX Intl. Conf. on Virtual Execution Environments (VEE'07), pp. 12-21. ACM Press, 2007. doi:10.1145/1254810.1254813
    Conference paper that covers only the object inlining part of the optimization system.
  • Christian Wimmer, Hanspeter Mössenböck:
    Automatic Object Colocation Based on Read Barriers
    Joint Modular Languages Conference (JMLC'06), LNCS 4228, pp. 326-345. Springer-Verlag, 2006. doi:10.1007/11860990_20
    Conference paper that covers only the object colocation part. It describes an early version of the work, so it does not fully reflect the final version.