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