src/share/vm/opto/compile.cpp

Print this page
rev 3898 : 8005031: Some cleanup in c2 to prepare for incremental inlining support
Summary: collection of small changes to prepare for incremental inlining.
Reviewed-by:

*** 608,618 **** _dead_node_count(0), #ifndef PRODUCT _trace_opto_output(TraceOptoOutput || method()->has_option("TraceOptoOutput")), _printer(IdealGraphPrinter::printer()), #endif ! _congraph(NULL) { C = this; CompileWrapper cw(this); #ifndef PRODUCT if (TimeCompiler2) { --- 608,620 ---- _dead_node_count(0), #ifndef PRODUCT _trace_opto_output(TraceOptoOutput || method()->has_option("TraceOptoOutput")), _printer(IdealGraphPrinter::printer()), #endif ! _congraph(NULL), ! _print_inlining_chunks(NULL), ! _print_inlining(0) { C = this; CompileWrapper cw(this); #ifndef PRODUCT if (TimeCompiler2) {
*** 664,673 **** --- 666,678 ---- uint estimated_size = method()->code_size()*4+64; estimated_size = (estimated_size < MINIMUM_NODE_HASH ? MINIMUM_NODE_HASH : estimated_size); PhaseGVN gvn(node_arena(), estimated_size); set_initial_gvn(&gvn); + if (PrintInlining) { + _print_inlining_chunks = new GrowableArray<PrintInliningChunk>(1, 1, PrintInliningChunk()); + } { // Scope for timing the parser TracePhase t3("parse", &_t_parser, true); // Put top into the hash table ASAP. initial_gvn()->transform_no_reclaim(top());
*** 752,761 **** --- 757,767 ---- cg->do_late_inline(); if (failing()) return; } } assert(_late_inlines.length() == 0, "should have been processed"); + dump_inlining(); print_method("Before RemoveUseless", 3); // Remove clutter produced by parsing. if (!failing()) {
*** 897,907 **** _trace_opto_output(TraceOptoOutput), _printer(NULL), #endif _dead_node_list(comp_arena()), _dead_node_count(0), ! _congraph(NULL) { C = this; #ifndef PRODUCT TraceTime t1(NULL, &_t_totalCompilation, TimeCompiler, false); TraceTime t2(NULL, &_t_stubCompilation, TimeCompiler, false); --- 903,915 ---- _trace_opto_output(TraceOptoOutput), _printer(NULL), #endif _dead_node_list(comp_arena()), _dead_node_count(0), ! _congraph(NULL), ! _print_inlining_chunks(NULL), ! _print_inlining(0) { C = this; #ifndef PRODUCT TraceTime t1(NULL, &_t_totalCompilation, TimeCompiler, false); TraceTime t2(NULL, &_t_stubCompilation, TimeCompiler, false);
*** 3349,3353 **** --- 3357,3369 ---- assert(*constant_addr == (((address) n) + i), err_msg_res("all jump-table entries must contain adjusted node pointer: " INTPTR_FORMAT " == " INTPTR_FORMAT, *constant_addr, (((address) n) + i))); *constant_addr = cb.consts()->target(*labels.at(i), (address) constant_addr); cb.consts()->relocate((address) constant_addr, relocInfo::internal_word_type); } } + + void Compile::dump_inlining() { + if (PrintInlining) { + for (int i = 0; i < _print_inlining_chunks->length(); i++) { + tty->print(_print_inlining_chunks->at(i).ss()->as_string()); + } + } + }