Top


定義場所(file name)

hotspot/src/share/vm/oops/generateOopMap.cpp

名前(function name)

methodHandle ResolveOopMapConflicts::do_potential_rewrite(TRAPS) {

本体部(body)

  {- -------------------------------------------
  (1) GenerateOopMap::compute_map() を呼んで, 
      バイトコードの抽象実行を行う.
      (この過程で rewrite 処理も実行される)
      ---------------------------------------- -}

      compute_map(CHECK_(methodHandle()));

  {- -------------------------------------------
  (1) (デバッグ用の処理) (#ifndef PRODUCT 時にのみ実行)
      ---------------------------------------- -}

    #ifndef PRODUCT
      // Tracking and statistics
      if (PrintRewrites) {
        _nof_invocations++;
        if (did_rewriting()) {
          _nof_rewrites++;
          if (did_relocation()) _nof_relocations++;
          tty->print("Method was rewritten %s: ", (did_relocation()) ? "and relocated" : "");
          method()->print_value(); tty->cr();
          tty->print_cr("Cand.: %d rewrts: %d (%d%%) reloc.: %d (%d%%)",
              _nof_invocations,
              _nof_rewrites,    (_nof_rewrites    * 100) / _nof_invocations,
              _nof_relocations, (_nof_relocations * 100) / _nof_invocations);
        }
      }
    #endif

  {- -------------------------------------------
  (1) 結果をリターン
      ---------------------------------------- -}

      return methodHandle(THREAD, method());
    }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.