8005031: Some cleanup in c2 to prepare for incremental inlining support

Collection of small changes to prepare for incremental inlining.

Reviewed-by: twisti, kvn
This commit is contained in:
Roland Westrelin 2012-12-18 14:55:25 +01:00
parent fb74718339
commit b1c3e5ccc6
14 changed files with 221 additions and 96 deletions

View file

@ -610,7 +610,9 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
_trace_opto_output(TraceOptoOutput || method()->has_option("TraceOptoOutput")),
_printer(IdealGraphPrinter::printer()),
#endif
_congraph(NULL) {
_congraph(NULL),
_print_inlining_list(NULL),
_print_inlining(0) {
C = this;
CompileWrapper cw(this);
@ -666,6 +668,9 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
PhaseGVN gvn(node_arena(), estimated_size);
set_initial_gvn(&gvn);
if (PrintInlining) {
_print_inlining_list = new (comp_arena())GrowableArray<PrintInliningBuffer>(comp_arena(), 1, 1, PrintInliningBuffer());
}
{ // Scope for timing the parser
TracePhase t3("parse", &_t_parser, true);
@ -754,6 +759,7 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
}
}
assert(_late_inlines.length() == 0, "should have been processed");
dump_inlining();
print_method("Before RemoveUseless", 3);
@ -899,7 +905,9 @@ Compile::Compile( ciEnv* ci_env,
#endif
_dead_node_list(comp_arena()),
_dead_node_count(0),
_congraph(NULL) {
_congraph(NULL),
_print_inlining_list(NULL),
_print_inlining(0) {
C = this;
#ifndef PRODUCT
@ -3351,3 +3359,11 @@ void Compile::ConstantTable::fill_jump_table(CodeBuffer& cb, MachConstantNode* n
cb.consts()->relocate((address) constant_addr, relocInfo::internal_word_type);
}
}
void Compile::dump_inlining() {
if (PrintInlining) {
for (int i = 0; i < _print_inlining_list->length(); i++) {
tty->print(_print_inlining_list->at(i).ss()->as_string());
}
}
}