Mercurial > hg > truffle
comparison src/share/vm/oops/instanceKlass.cpp @ 14513:16c705d792be
Merge
author | morris |
---|---|
date | Fri, 28 Feb 2014 08:02:20 -0800 |
parents | 7d30d4f37d31 47f00f3b3900 |
children | d8041d695d19 |
comparison
equal
deleted
inserted
replaced
14493:7d30d4f37d31 | 14513:16c705d792be |
---|---|
2197 | 2197 |
2198 void InstanceKlass::clean_method_data(BoolObjectClosure* is_alive) { | 2198 void InstanceKlass::clean_method_data(BoolObjectClosure* is_alive) { |
2199 for (int m = 0; m < methods()->length(); m++) { | 2199 for (int m = 0; m < methods()->length(); m++) { |
2200 MethodData* mdo = methods()->at(m)->method_data(); | 2200 MethodData* mdo = methods()->at(m)->method_data(); |
2201 if (mdo != NULL) { | 2201 if (mdo != NULL) { |
2202 for (ProfileData* data = mdo->first_data(); | 2202 mdo->clean_method_data(is_alive); |
2203 mdo->is_valid(data); | |
2204 data = mdo->next_data(data)) { | |
2205 data->clean_weak_klass_links(is_alive); | |
2206 } | |
2207 ParametersTypeData* parameters = mdo->parameters_type_data(); | |
2208 if (parameters != NULL) { | |
2209 parameters->clean_weak_klass_links(is_alive); | |
2210 } | |
2211 } | 2203 } |
2212 } | 2204 } |
2213 } | 2205 } |
2214 | 2206 |
2215 | 2207 |
2724 nmethod* cur = osr_nmethods_head(); | 2716 nmethod* cur = osr_nmethods_head(); |
2725 int max_level = CompLevel_none; // Find the max comp level excluding n | 2717 int max_level = CompLevel_none; // Find the max comp level excluding n |
2726 Method* m = n->method(); | 2718 Method* m = n->method(); |
2727 // Search for match | 2719 // Search for match |
2728 while(cur != NULL && cur != n) { | 2720 while(cur != NULL && cur != n) { |
2729 if (TieredCompilation) { | 2721 if (TieredCompilation && m == cur->method()) { |
2730 // Find max level before n | 2722 // Find max level before n |
2731 max_level = MAX2(max_level, cur->comp_level()); | 2723 max_level = MAX2(max_level, cur->comp_level()); |
2732 } | 2724 } |
2733 last = cur; | 2725 last = cur; |
2734 cur = cur->osr_link(); | 2726 cur = cur->osr_link(); |
2746 n->set_osr_link(NULL); | 2738 n->set_osr_link(NULL); |
2747 if (TieredCompilation) { | 2739 if (TieredCompilation) { |
2748 cur = next; | 2740 cur = next; |
2749 while (cur != NULL) { | 2741 while (cur != NULL) { |
2750 // Find max level after n | 2742 // Find max level after n |
2751 max_level = MAX2(max_level, cur->comp_level()); | 2743 if (m == cur->method()) { |
2744 max_level = MAX2(max_level, cur->comp_level()); | |
2745 } | |
2752 cur = cur->osr_link(); | 2746 cur = cur->osr_link(); |
2753 } | 2747 } |
2754 m->set_highest_osr_comp_level(max_level); | 2748 m->set_highest_osr_comp_level(max_level); |
2755 } | 2749 } |
2756 // Remember to unlock again | 2750 // Remember to unlock again |