C2: Share MacroAssembler between mach nodes during code emission

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Fixed
    • Priority: P3
    • 23
    • Affects Version/s: 15
    • Component/s: hotspot
    • b19

      Right now, every mach node uses a brand new MacroAssembler instance.
      Refactor the code, so a single MacroAssembler instance is shared across the whole code emission phase.

      The motivation is to reduce memory consumption and speed up C2. `C2_MacroAssembler` is based on `ResourceObj` which allocates in compiler arena. Each small `C2_MacroAssembler masm()` will add allocation to arena until we finish compilation. Also speedup because we don't need to do such allocations.

            Assignee:
            Cesar Soares
            Reporter:
            Vladimir Ivanov
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: