comparison src/share/vm/runtime/simpleThresholdPolicy.cpp @ 1964:22ef3370343b

7000349: Tiered reacts incorrectly to C1 compilation failures Summary: Fix policy reaction to C1 comilation failures, make C1 properly report errors. Reviewed-by: kvn
author iveresov
date Tue, 16 Nov 2010 15:57:16 -0800
parents d5d065957597
children f95d63e2154a
comparison
equal deleted inserted replaced
1963:0ac62b4d6507 1964:22ef3370343b
174 level = (CompLevel)TieredStopAtLevel; 174 level = (CompLevel)TieredStopAtLevel;
175 } 175 }
176 if (level == CompLevel_none) { 176 if (level == CompLevel_none) {
177 return; 177 return;
178 } 178 }
179 // Check if the method can be compiled, if not - try different levels. 179 // Check if the method can be compiled. If it cannot be compiled with C1, continue profiling
180 // in the interpreter and then compile with C2 (the transition function will request that,
181 // see common() ). If the method cannot be compiled with C2 but still can with C1, compile it with
182 // pure C1.
180 if (!can_be_compiled(mh, level)) { 183 if (!can_be_compiled(mh, level)) {
181 if (level < CompLevel_full_optimization && can_be_compiled(mh, CompLevel_full_optimization)) {
182 compile(mh, bci, CompLevel_full_optimization, THREAD);
183 }
184 if (level == CompLevel_full_optimization && can_be_compiled(mh, CompLevel_simple)) { 184 if (level == CompLevel_full_optimization && can_be_compiled(mh, CompLevel_simple)) {
185 compile(mh, bci, CompLevel_simple, THREAD); 185 compile(mh, bci, CompLevel_simple, THREAD);
186 } 186 }
187 return; 187 return;
188 } 188 }