src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/compile.cpp	Wed May 21 16:16:15 2014
--- new/src/share/vm/opto/compile.cpp	Wed May 21 16:16:15 2014

*** 670,679 **** --- 670,680 ---- _inlining_progress(false), _inlining_incrementally(false), _print_inlining_list(NULL), _print_inlining_stream(NULL), _print_inlining_idx(0), + _print_inlining_output(NULL), _preserve_jvm_state(0), _interpreter_frame_size(0) { C = this; CompileWrapper cw(this);
*** 976,985 **** --- 977,987 ---- _inlining_progress(false), _inlining_incrementally(false), _print_inlining_list(NULL), _print_inlining_stream(NULL), _print_inlining_idx(0), + _print_inlining_output(NULL), _preserve_jvm_state(0), _allowed_reasons(0), _interpreter_frame_size(0) { C = this;
*** 2205,2215 **** --- 2207,2217 ---- } } } // (End scope of igvn; run destructor if necessary for asserts.) ! dump_inlining(); ! process_print_inlining(); // A method with only infinite loops has no edges entering loops from root { NOT_PRODUCT( TracePhase t2("graphReshape", &_t_graphReshaping, TimeCompiler); ) if (final_graph_reshaping()) { assert(failing(), "must bail out w/ explicit message");
*** 3866,3876 **** --- 3868,3878 ---- void Compile::print_inlining_assert_ready() { assert(!_print_inlining || _print_inlining_stream->size() == 0, "loosing data"); } ! void Compile::dump_inlining() { ! void Compile::process_print_inlining() { bool do_print_inlining = print_inlining() || print_intrinsics(); if (do_print_inlining || log() != NULL) { // Print inlining message for candidates that we couldn't inline // for lack of space for (int i = 0; i < _late_inlines.length(); i++) {
*** 3883,3895 **** --- 3885,3909 ---- log_late_inline_failure(cg, msg); } } } if (do_print_inlining) { + ResourceMark rm; + stringStream ss; for (int i = 0; i < _print_inlining_list->length(); i++) { ! tty->print("%s", _print_inlining_list->adr_at(i)->ss()->as_string()); ! ss.print("%s", _print_inlining_list->adr_at(i)->ss()->as_string()); + } + size_t end = ss.size(); + _print_inlining_output = NEW_ARENA_ARRAY(comp_arena(), char, end+1); + strncpy(_print_inlining_output, ss.base(), end+1); + _print_inlining_output[end] = 0; } + } + + void Compile::dump_print_inlining() { + if (_print_inlining_output != NULL) { + tty->print_raw(_print_inlining_output); } } void Compile::log_late_inline(CallGenerator* cg) { if (log() != NULL) {

src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File