OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "compiler.h" | 7 #include "compiler.h" |
8 | 8 |
9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
10 #include "codegen.h" | 10 #include "codegen.h" |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 // between graph creation and code generation, we disallow accessing | 452 // between graph creation and code generation, we disallow accessing |
453 // objects through deferred handles during the latter, with exceptions. | 453 // objects through deferred handles during the latter, with exceptions. |
454 DisallowDeferredHandleDereference no_deferred_handle_deref; | 454 DisallowDeferredHandleDereference no_deferred_handle_deref; |
455 Handle<Code> optimized_code = chunk_->Codegen(); | 455 Handle<Code> optimized_code = chunk_->Codegen(); |
456 if (optimized_code.is_null()) { | 456 if (optimized_code.is_null()) { |
457 if (info()->bailout_reason() == kNoReason) { | 457 if (info()->bailout_reason() == kNoReason) { |
458 info_->set_bailout_reason(kCodeGenerationFailed); | 458 info_->set_bailout_reason(kCodeGenerationFailed); |
459 } else if (info()->bailout_reason() == kMapBecameDeprecated) { | 459 } else if (info()->bailout_reason() == kMapBecameDeprecated) { |
460 if (FLAG_trace_opt) { | 460 if (FLAG_trace_opt) { |
461 PrintF("[aborted optimizing "); | 461 PrintF("[aborted optimizing "); |
462 function->ShortPrint(); | 462 info()->closure()->ShortPrint(); |
463 PrintF(" because a map became deprecated]\n"); | 463 PrintF(" because a map became deprecated]\n"); |
464 } | 464 } |
465 return AbortOptimization(); | 465 return AbortOptimization(); |
466 } else if (info()->bailout_reason() == kMapBecameUnstable) { | 466 } else if (info()->bailout_reason() == kMapBecameUnstable) { |
467 if (FLAG_trace_opt) { | 467 if (FLAG_trace_opt) { |
468 PrintF("[aborted optimizing "); | 468 PrintF("[aborted optimizing "); |
469 function->ShortPrint(); | 469 info()->closure()->ShortPrint(); |
470 PrintF(" because a map became unstable]\n"); | 470 PrintF(" because a map became unstable]\n"); |
471 } | 471 } |
472 return AbortOptimization(); | 472 return AbortOptimization(); |
473 } | 473 } |
474 return AbortAndDisableOptimization(); | 474 return AbortAndDisableOptimization(); |
475 } | 475 } |
476 info()->SetCode(optimized_code); | 476 info()->SetCode(optimized_code); |
477 } | 477 } |
478 RecordOptimizationStats(); | 478 RecordOptimizationStats(); |
479 // Add to the weak list of optimized code objects. | 479 // Add to the weak list of optimized code objects. |
(...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1299 AllowHandleDereference allow_deref; | 1299 AllowHandleDereference allow_deref; |
1300 bool tracing_on = info()->IsStub() | 1300 bool tracing_on = info()->IsStub() |
1301 ? FLAG_trace_hydrogen_stubs | 1301 ? FLAG_trace_hydrogen_stubs |
1302 : (FLAG_trace_hydrogen && | 1302 : (FLAG_trace_hydrogen && |
1303 info()->closure()->PassesFilter(FLAG_trace_hydrogen_filter)); | 1303 info()->closure()->PassesFilter(FLAG_trace_hydrogen_filter)); |
1304 return (tracing_on && | 1304 return (tracing_on && |
1305 OS::StrChr(const_cast<char*>(FLAG_trace_phase), name_[0]) != NULL); | 1305 OS::StrChr(const_cast<char*>(FLAG_trace_phase), name_[0]) != NULL); |
1306 } | 1306 } |
1307 | 1307 |
1308 } } // namespace v8::internal | 1308 } } // namespace v8::internal |
OLD | NEW |