Compiler optimization: Java bytecode

前端 未结 1 803
无人及你
无人及你 2020-12-08 11:40

I\'m currently writing a toy compiler targeting Java bytecode in the translation.

I would like to know if there is some kind of catalog, maybe a summary, of various

相关标签:
1条回答
  • 2020-12-08 12:25

    You are aware of Proguard? http://proguard.sourceforge.net/

    This is a great bytecode optimizer which implements a lot of optimizations. See the FAQ for a list: http://proguard.sourceforge.net/FAQ.html

    • Evaluate constant expressions.
    • Remove unnecessary field accesses and method calls.
    • Remove unnecessary branches.
    • Remove unnecessary comparisons and instanceof tests.
    • Remove unused code blocks.
    • Merge identical code blocks.
    • Reduce variable allocation.
    • Remove write-only fields and unused method parameters.
    • Inline constant fields, method parameters, and return values.
    • Inline methods that are short or only called once.
    • Simplify tail recursion calls.
    • Merge classes and interfaces.
    • Make methods private, static, and final when possible.
    • Make classes static and final when possible.
    • Replace interfaces that have single implementations.
    • Perform over 200 peephole optimizations, like replacing ...*2 by ...<<1.
    • Optionally remove logging code.

    I'm sure you can further look into the source code to understand how they are implemented.

    0 讨论(0)
提交回复
热议问题