Mercurial > hg > graal-jvmci-8
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 } |