x86_64: Improve Assembler generation

XMLWordPrintable

    • b15

      Various inefficiencies can be spotted in the Assembler routines when instrumenting/profiling. Most prominently, emitting bytes (emit_int8) back to back generate inefficient code.

      Providing methods to emit two, three and four bytes at a time. This generates significantly better code, and a significant improvement to startup time.

      Proof-of-concept: http://cr.openjdk.java.net/~redestad/scratch/emit_bytes.00/

      On Hello World:
      -0.35-0.5M instructions (~0.45% of total)
      -100-150k branches (~0.5% of total)
      -0.2-0.6ms (~0.5-2% of total)

      Effects are visible on bootstrap due significantly speeding up generation of the template interpreter and various runtime adapters. Small scaling improvements are visible throughout warmup since there's an accumulation of small improvements in various places like C1, C2 and adapter generation.

            Assignee:
            Claes Redestad
            Reporter:
            Claes Redestad
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: