The 'layout' is LIR transformation used to assign relative positions for basic blocks in memory. Three different layout algorithms are supported today:

1) Topological (reverse-postorder) layout of basic blocks 2) Top-down layout algorithm 3) Bottom-up layout algorithm

To read more about top-down and bottom-up algorithm details check "Profile guided code positioning" paper by Hansen & Pettis.

Command line line options:

-XX:jit.arg.codegen.layout.type=topological - enables topological layout

-XX:jit.arg.codegen.layout.type=topdown     - enables top-down layout

-XX:jit.arg.codegen.layout.type=bottomup    - enables bottom-up layout

-XX:jit.arg.codegen.layout.type=mixed       - enables top-down layout for methods without loops and bottom-up for methods with loops

Source files:

src/codegenerator/ia32/Ia32CodeLayout.*

src/codegenerator/ia32/Ia32CodeLayoutTopDown.*

src/codegenerator/ia32/Ia32CodeLayoutBottomUp.*

Jitrino_OPT/layout (last edited 2009-09-20 21:54:36 by localhost)