Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Excerpt

Methods are often inlined, widening the compiler's "horizon" of optimization.

''TO DO:'' Pull in content from the following sources:

Heuristics

Phasing

Currently, inlining decisions are performed eagerly (in both C1 and C2), as soon as the parser reaches a call site the first time.

...

Hot methods are more likely to be inlined... ''(Say on...)''

Manual advice to the inliner

...

  • Warm up your code properly.
  • Segregate fast paths from slow paths, keeping hot methods small (35 bytecodes or less) with error processing and slow paths in separate methods.
  • Request inlining from the compiler oracle. ''(Need a ref.)''
  • ''Future:'' Find better heuristics and code them into the JVM.
  • ''Future:'' Add an @Inline annotation to the JVM. (Needs hacky POC experimentation first.)
  • ''Future:'' Extend the oracle to include profiling information collected from earlier runs, or generated by an offline configuration tool.