< prev index next >

src/share/vm/opto/compile.cpp

Print this page

        

*** 1953,1971 **** set_inlining_progress(false); set_inlining_incrementally(false); } } ! void Compile::inline_incrementally_one(PhaseIterGVN& igvn) { assert(IncrementalInline, "incremental inlining should be on"); - PhaseGVN* gvn = initial_gvn(); - - set_inlining_progress(false); - for_igvn()->clear(); - gvn->replace_with(&igvn); - - { TracePhase tp("incrementalInline_inline", &timers[_t_incrInline_inline]); int i = 0; for (; i <_late_inlines.length() && !inlining_progress(); i++) { CallGenerator* cg = _late_inlines.at(i); _late_inlines_pos = i+1; --- 1953,1964 ---- set_inlining_progress(false); set_inlining_incrementally(false); } } ! void Compile::inline_incrementally_one() { assert(IncrementalInline, "incremental inlining should be on"); TracePhase tp("incrementalInline_inline", &timers[_t_incrInline_inline]); int i = 0; for (; i <_late_inlines.length() && !inlining_progress(); i++) { CallGenerator* cg = _late_inlines.at(i); _late_inlines_pos = i+1;
*** 1975,1996 **** int j = 0; for (; i < _late_inlines.length(); i++, j++) { _late_inlines.at_put(j, _late_inlines.at(i)); } _late_inlines.trunc_to(j); - } - - { - TracePhase tp("incrementalInline_pru", &timers[_t_incrInline_pru]); - ResourceMark rm; - PhaseRemoveUseless pru(gvn, for_igvn()); - } - - { - TracePhase tp("incrementalInline_igvn", &timers[_t_incrInline_igvn]); - igvn = PhaseIterGVN(gvn); - } } // Perform incremental inlining until bound on number of live nodes is reached void Compile::inline_incrementally(PhaseIterGVN& igvn) { TracePhase tp("incrementalInline", &timers[_t_incrInline]); --- 1968,1977 ----
*** 2000,2010 **** set_inlining_incrementally(true); set_inlining_progress(true); uint low_live_nodes = 0; while(inlining_progress() && _late_inlines.length() > 0) { - if (live_nodes() > (uint)LiveNodeCountInliningCutoff) { if (low_live_nodes < (uint)LiveNodeCountInliningCutoff * 8 / 10) { TracePhase tp("incrementalInline_ideal", &timers[_t_incrInline_ideal]); // PhaseIdealLoop is expensive so we only try it once we are // out of live nodes and we only try it again if the previous --- 1981,1990 ----
*** 2018,2028 **** if (live_nodes() > (uint)LiveNodeCountInliningCutoff) { break; } } ! inline_incrementally_one(igvn); if (failing()) return; { TracePhase tp("incrementalInline_igvn", &timers[_t_incrInline_igvn]); --- 1998,2025 ---- if (live_nodes() > (uint)LiveNodeCountInliningCutoff) { break; } } ! for_igvn()->clear(); ! gvn->replace_with(&igvn); ! ! do { ! set_inlining_progress(false); ! inline_incrementally_one(); ! } while (!over_inlining_cutoff() && inlining_progress()); ! ! { ! TracePhase tp("incrementalInline_pru", &timers[_t_incrInline_pru]); ! ResourceMark rm; ! PhaseRemoveUseless pru(gvn, for_igvn()); ! } ! ! { ! TracePhase tp("incrementalInline_igvn", &timers[_t_incrInline_igvn]); ! igvn = PhaseIterGVN(gvn); ! } if (failing()) return; { TracePhase tp("incrementalInline_igvn", &timers[_t_incrInline_igvn]);
< prev index next >