mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
6614597: Performance variability in jvm2008 xml.validation
Fix incorrect marking of methods as not compilable. Reviewed-by: never
This commit is contained in:
parent
4e8608a124
commit
0c27c5537e
18 changed files with 213 additions and 133 deletions
|
@ -414,8 +414,6 @@ void Parse::profile_not_taken_branch(bool force_update) {
|
|||
void Parse::profile_call(Node* receiver) {
|
||||
if (!method_data_update()) return;
|
||||
|
||||
profile_generic_call();
|
||||
|
||||
switch (bc()) {
|
||||
case Bytecodes::_invokevirtual:
|
||||
case Bytecodes::_invokeinterface:
|
||||
|
@ -424,6 +422,7 @@ void Parse::profile_call(Node* receiver) {
|
|||
case Bytecodes::_invokestatic:
|
||||
case Bytecodes::_invokedynamic:
|
||||
case Bytecodes::_invokespecial:
|
||||
profile_generic_call();
|
||||
break;
|
||||
default: fatal("unexpected call bytecode");
|
||||
}
|
||||
|
@ -444,13 +443,16 @@ void Parse::profile_generic_call() {
|
|||
void Parse::profile_receiver_type(Node* receiver) {
|
||||
assert(method_data_update(), "must be generating profile code");
|
||||
|
||||
// Skip if we aren't tracking receivers
|
||||
if (TypeProfileWidth < 1) return;
|
||||
|
||||
ciMethodData* md = method()->method_data();
|
||||
assert(md != NULL, "expected valid ciMethodData");
|
||||
ciProfileData* data = md->bci_to_data(bci());
|
||||
assert(data->is_ReceiverTypeData(), "need ReceiverTypeData here");
|
||||
|
||||
// Skip if we aren't tracking receivers
|
||||
if (TypeProfileWidth < 1) {
|
||||
increment_md_counter_at(md, data, CounterData::count_offset());
|
||||
return;
|
||||
}
|
||||
ciReceiverTypeData* rdata = (ciReceiverTypeData*)data->as_ReceiverTypeData();
|
||||
|
||||
Node* method_data = method_data_addressing(md, rdata, in_ByteSize(0));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue