Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/deoptimization.cpp @ 22441:fd3d534aecca
virtual object reallocation during deoptimization must always been done if INCLUDE_JVMCI is defined
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 20 Aug 2015 21:56:50 +0200 |
parents | c28cb37b2e1d |
children | f27c163d7dc2 |
comparison
equal
deleted
inserted
replaced
22440:800a7b2335b0 | 22441:fd3d534aecca |
---|---|
226 bool realloc_failures = false; | 226 bool realloc_failures = false; |
227 | 227 |
228 #if defined(COMPILER2) || INCLUDE_JVMCI | 228 #if defined(COMPILER2) || INCLUDE_JVMCI |
229 // Reallocate the non-escaping objects and restore their fields. Then | 229 // Reallocate the non-escaping objects and restore their fields. Then |
230 // relock objects if synchronization on them was eliminated. | 230 // relock objects if synchronization on them was eliminated. |
231 #ifdef COMPILER2 | 231 #ifndef INCLUDE_JVMCI |
232 if (DoEscapeAnalysis || EliminateNestedLocks) { | 232 if (DoEscapeAnalysis || EliminateNestedLocks) { |
233 if (EliminateAllocations) { | 233 if (EliminateAllocations) { |
234 #endif // COMPILER2 | 234 #endif // INCLUDE_JVMCI |
235 assert (chunk->at(0)->scope() != NULL,"expect only compiled java frames"); | 235 assert (chunk->at(0)->scope() != NULL,"expect only compiled java frames"); |
236 GrowableArray<ScopeValue*>* objects = chunk->at(0)->scope()->objects(); | 236 GrowableArray<ScopeValue*>* objects = chunk->at(0)->scope()->objects(); |
237 | 237 |
238 // The flag return_oop() indicates call sites which return oop | 238 // The flag return_oop() indicates call sites which return oop |
239 // in compiled code. Such sites include java method calls, | 239 // in compiled code. Such sites include java method calls, |
272 } | 272 } |
273 if (save_oop_result) { | 273 if (save_oop_result) { |
274 // Restore result. | 274 // Restore result. |
275 deoptee.set_saved_oop_result(&map, return_value()); | 275 deoptee.set_saved_oop_result(&map, return_value()); |
276 } | 276 } |
277 #ifdef COMPILER2 | 277 #ifndef INCLUDE_JVMCI |
278 } | 278 } |
279 if (EliminateLocks) { | 279 if (EliminateLocks) { |
280 #endif // COMPILER2 | 280 #endif // INCLUDE_JVMCI |
281 #ifndef PRODUCT | 281 #ifndef PRODUCT |
282 bool first = true; | 282 bool first = true; |
283 #endif | 283 #endif |
284 for (int i = 0; i < chunk->length(); i++) { | 284 for (int i = 0; i < chunk->length(); i++) { |
285 compiledVFrame* cvf = chunk->at(i); | 285 compiledVFrame* cvf = chunk->at(i); |
307 } | 307 } |
308 } | 308 } |
309 #endif | 309 #endif |
310 } | 310 } |
311 } | 311 } |
312 #ifdef COMPILER2 | 312 #ifndef INCLUDE_JVMCI |
313 } | 313 } |
314 } | 314 } |
315 #endif // COMPILER2 | 315 #endif // INCLUDE_JVMCI |
316 #endif // COMPILER2 || INCLUDE_JVMCI | 316 #endif // COMPILER2 || INCLUDE_JVMCI |
317 | 317 |
318 // Ensure that no safepoint is taken after pointers have been stored | 318 // Ensure that no safepoint is taken after pointers have been stored |
319 // in fields of rematerialized objects. If a safepoint occurs from here on | 319 // in fields of rematerialized objects. If a safepoint occurs from here on |
320 // out the java state residing in the vframeArray will be missed. | 320 // out the java state residing in the vframeArray will be missed. |