'inline_helpers' - provides a mechanism to inline various VM helpers

The optimization examines every HIR instruction and searches for HIR opcodes that lead to generation of VM helpers. Every suitable for the optimization instruction is replaced with a direct call of a special Java method. Finally the optimization calls inlining of this method.

The body of the method used as a replacement for complex HIR instruction must be provided by VM component.
The method can be can be written using org.vmmagic.unboxed package that allows to use direct memory access from Java.

Example of 'inline_helpers' configuration from 'server.emconf' file:

#helper inliner configuration

-XX:jit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.path=ssa
-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.pipeline=SD2_OPT_helper_inliner_pipeline

-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_NEW_RESOLVED_USING_VTABLE_AND_SIZE=on
-XX:jit.SD2_OPT.arg.optimizer.inline_helpers.VM_RT_NEW_RESOLVED_USING_VTABLE_AND_SIZE_hotnessPercent=1

implementation file: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/optimizer/helper_inliner.cpp

Jitrino_OPT/inline_helpers (last edited 2009-09-20 21:55:16 by localhost)