comparison src/share/vm/oops/methodKlass.cpp @ 1783:d5d065957597

6953144: Tiered compilation Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation. Reviewed-by: kvn, never, phh, twisti
author iveresov
date Fri, 03 Sep 2010 17:51:07 -0700
parents 9d7a8ab3736b
children f95d63e2154a
comparison
equal deleted inserted replaced
1782:f353275af40e 1783:d5d065957597
1 /* 1 /*
2 * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
73 m->set_interpreter_throwout_count(0); 73 m->set_interpreter_throwout_count(0);
74 m->set_vtable_index(methodOopDesc::garbage_vtable_index); 74 m->set_vtable_index(methodOopDesc::garbage_vtable_index);
75 75
76 // Fix and bury in methodOop 76 // Fix and bury in methodOop
77 m->set_interpreter_entry(NULL); // sets i2i entry and from_int 77 m->set_interpreter_entry(NULL); // sets i2i entry and from_int
78 m->set_highest_tier_compile(CompLevel_none);
79 m->set_adapter_entry(NULL); 78 m->set_adapter_entry(NULL);
80 m->clear_code(); // from_c/from_i get set to c2i/i2i 79 m->clear_code(); // from_c/from_i get set to c2i/i2i
81 80
82 if (access_flags.is_native()) { 81 if (access_flags.is_native()) {
83 m->clear_native_function(); 82 m->clear_native_function();
87 NOT_PRODUCT(m->set_compiled_invocation_count(0);) 86 NOT_PRODUCT(m->set_compiled_invocation_count(0);)
88 m->set_interpreter_invocation_count(0); 87 m->set_interpreter_invocation_count(0);
89 m->invocation_counter()->init(); 88 m->invocation_counter()->init();
90 m->backedge_counter()->init(); 89 m->backedge_counter()->init();
91 m->clear_number_of_breakpoints(); 90 m->clear_number_of_breakpoints();
91
92 assert(m->is_parsable(), "must be parsable here."); 92 assert(m->is_parsable(), "must be parsable here.");
93 assert(m->size() == size, "wrong size for object"); 93 assert(m->size() == size, "wrong size for object");
94 // We should not publish an uprasable object's reference 94 // We should not publish an uprasable object's reference
95 // into one that is parsable, since that presents problems 95 // into one that is parsable, since that presents problems
96 // for the concurrent parallel marking and precleaning phases 96 // for the concurrent parallel marking and precleaning phases
244 st->print_cr(" - max locals: %d", m->max_locals()); 244 st->print_cr(" - max locals: %d", m->max_locals());
245 st->print_cr(" - size of params: %d", m->size_of_parameters()); 245 st->print_cr(" - size of params: %d", m->size_of_parameters());
246 st->print_cr(" - method size: %d", m->method_size()); 246 st->print_cr(" - method size: %d", m->method_size());
247 if (m->intrinsic_id() != vmIntrinsics::_none) 247 if (m->intrinsic_id() != vmIntrinsics::_none)
248 st->print_cr(" - intrinsic id: %d %s", m->intrinsic_id(), vmIntrinsics::name_at(m->intrinsic_id())); 248 st->print_cr(" - intrinsic id: %d %s", m->intrinsic_id(), vmIntrinsics::name_at(m->intrinsic_id()));
249 if (m->highest_tier_compile() != CompLevel_none) 249 if (m->highest_comp_level() != CompLevel_none)
250 st->print_cr(" - highest tier: %d", m->highest_tier_compile()); 250 st->print_cr(" - highest level: %d", m->highest_comp_level());
251 st->print_cr(" - vtable index: %d", m->_vtable_index); 251 st->print_cr(" - vtable index: %d", m->_vtable_index);
252 st->print_cr(" - i2i entry: " INTPTR_FORMAT, m->interpreter_entry()); 252 st->print_cr(" - i2i entry: " INTPTR_FORMAT, m->interpreter_entry());
253 st->print_cr(" - adapter: " INTPTR_FORMAT, m->adapter()); 253 st->print_cr(" - adapter: " INTPTR_FORMAT, m->adapter());
254 st->print_cr(" - compiled entry " INTPTR_FORMAT, m->from_compiled_entry()); 254 st->print_cr(" - compiled entry " INTPTR_FORMAT, m->from_compiled_entry());
255 st->print_cr(" - code size: %d", m->code_size()); 255 st->print_cr(" - code size: %d", m->code_size());