Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-3729

[drlvm][jit] Escape analysis improvement

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: DRLVM
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      The patch contains:

      • escape analysis reviewing,
      • adding escape analysis to opt pass,
      • enabling synchronization removal optimization,
      • fixing known escape analysis failures.
      1. escape.3.patch
        335 kB
        Natalya Golovleva

        Activity

        Hide
        ngolovle Natalya Golovleva added a comment -

        Escape analysis optimization pass is included in 'opt' and 'server' configuration files.
        It works on ia32 and em64t platforms.

        Available options to manage escape analysis are:

        escape.max_level[=0] - max level callee method analysis
        escape.do_sync_removal[=

        {on,OFF}] - do synchronization removal optimization
        escape.do_sync_removal_vc[={ON,off}] - do synchronization removal optimization
        for virtual call escaped operands
        escape.do_sync_removal_sm[={ON,off}]
        - do synchronization removal optimization
        for synchronized methods
        escape.do_scalar_repl[={ON,off}] - do scalar replacement optimization for
        local and escaped objects
        escape.do_esc_scalar_repl[={ON,off}]
        - scalar replacement for escaped objects
        escape.do_scalar_repl_only_final_fields[={on,OFF}

        ]
        escape.scalarize_final_fields[=

        {on,OFF}

        ] - scalarize final field usage when
        escaped object wasn't optimized
        escape.exec_count_mult[=0] - entry node execCount multiplier

        Show
        ngolovle Natalya Golovleva added a comment - Escape analysis optimization pass is included in 'opt' and 'server' configuration files. It works on ia32 and em64t platforms. Available options to manage escape analysis are: escape.max_level [=0] - max level callee method analysis escape.do_sync_removal[= {on,OFF}] - do synchronization removal optimization escape.do_sync_removal_vc [={ON,off}] - do synchronization removal optimization for virtual call escaped operands escape.do_sync_removal_sm[={ON,off}] - do synchronization removal optimization for synchronized methods escape.do_scalar_repl [={ON,off}] - do scalar replacement optimization for local and escaped objects escape.do_esc_scalar_repl[={ON,off}] - scalar replacement for escaped objects escape.do_scalar_repl_only_final_fields[={on,OFF} ] escape.scalarize_final_fields[= {on,OFF} ] - scalarize final field usage when escaped object wasn't optimized escape.exec_count_mult [=0] - entry node execCount multiplier
        Hide
        ngolovle Natalya Golovleva added a comment -

        The changes may be committed.

        Show
        ngolovle Natalya Golovleva added a comment - The changes may be committed.
        Hide
        varlax Alexey Varlamov added a comment -

        Applied at r536140, fixed 2 warning about unused vars in release mode (see EscAnalyzer::insertSaveJitHelperCall()).

        Show
        varlax Alexey Varlamov added a comment - Applied at r536140, fixed 2 warning about unused vars in release mode (see EscAnalyzer::insertSaveJitHelperCall()).

          People

          • Assignee:
            varlax Alexey Varlamov
            Reporter:
            ngolovle Natalya Golovleva
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development