hotspot/src/share/vm/oops/generateOopMap.cpp
methodHandle ResolveOopMapConflicts::do_potential_rewrite(TRAPS) {
{- -------------------------------------------
(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.