OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <iomanip> | 5 #include <iomanip> |
6 #include <sstream> | 6 #include <sstream> |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
11 #include "src/allocation-site-scopes.h" | 11 #include "src/allocation-site-scopes.h" |
12 #include "src/api.h" | 12 #include "src/api.h" |
13 #include "src/arguments.h" | 13 #include "src/arguments.h" |
14 #include "src/base/bits.h" | 14 #include "src/base/bits.h" |
15 #include "src/bootstrapper.h" | 15 #include "src/bootstrapper.h" |
16 #include "src/code-stubs.h" | 16 #include "src/code-stubs.h" |
17 #include "src/codegen.h" | 17 #include "src/codegen.h" |
| 18 #include "src/compiler.h" |
18 #include "src/cpu-profiler.h" | 19 #include "src/cpu-profiler.h" |
19 #include "src/date.h" | 20 #include "src/date.h" |
20 #include "src/debug.h" | 21 #include "src/debug.h" |
21 #include "src/deoptimizer.h" | 22 #include "src/deoptimizer.h" |
22 #include "src/elements.h" | 23 #include "src/elements.h" |
23 #include "src/execution.h" | 24 #include "src/execution.h" |
24 #include "src/field-index-inl.h" | 25 #include "src/field-index-inl.h" |
25 #include "src/field-index.h" | 26 #include "src/field-index.h" |
26 #include "src/full-codegen.h" | 27 #include "src/full-codegen.h" |
27 #include "src/heap/mark-compact.h" | 28 #include "src/heap/mark-compact.h" |
(...skipping 11229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11257 default: | 11258 default: |
11258 UNREACHABLE(); | 11259 UNREACHABLE(); |
11259 break; | 11260 break; |
11260 } | 11261 } |
11261 return NULL; | 11262 return NULL; |
11262 } | 11263 } |
11263 | 11264 |
11264 | 11265 |
11265 void Code::PrintDeoptLocation(FILE* out, int bailout_id) { | 11266 void Code::PrintDeoptLocation(FILE* out, int bailout_id) { |
11266 Deoptimizer::DeoptInfo info = Deoptimizer::GetDeoptInfo(this, bailout_id); | 11267 Deoptimizer::DeoptInfo info = Deoptimizer::GetDeoptInfo(this, bailout_id); |
11267 if (info.deopt_reason != Deoptimizer::kNoReason || info.raw_position != 0) { | 11268 class SourcePosition pos = info.position; |
11268 PrintF(out, " ;;; deoptimize at %d: %s\n", info.raw_position, | 11269 if (info.deopt_reason != Deoptimizer::kNoReason || !pos.IsUnknown()) { |
11269 Deoptimizer::GetDeoptReason(info.deopt_reason)); | 11270 if (FLAG_hydrogen_track_positions) { |
| 11271 PrintF(out, " ;;; deoptimize at %d_%d: %s\n", |
| 11272 pos.inlining_id(), pos.position(), |
| 11273 Deoptimizer::GetDeoptReason(info.deopt_reason)); |
| 11274 } else { |
| 11275 PrintF(out, " ;;; deoptimize at %d: %s\n", pos.raw(), |
| 11276 Deoptimizer::GetDeoptReason(info.deopt_reason)); |
| 11277 } |
11270 } | 11278 } |
11271 } | 11279 } |
11272 | 11280 |
11273 | 11281 |
11274 bool Code::CanDeoptAt(Address pc) { | 11282 bool Code::CanDeoptAt(Address pc) { |
11275 DeoptimizationInputData* deopt_data = | 11283 DeoptimizationInputData* deopt_data = |
11276 DeoptimizationInputData::cast(deoptimization_data()); | 11284 DeoptimizationInputData::cast(deoptimization_data()); |
11277 Address code_start_address = instruction_start(); | 11285 Address code_start_address = instruction_start(); |
11278 for (int i = 0; i < deopt_data->DeoptCount(); i++) { | 11286 for (int i = 0; i < deopt_data->DeoptCount(); i++) { |
11279 if (deopt_data->Pc(i)->value() == -1) continue; | 11287 if (deopt_data->Pc(i)->value() == -1) continue; |
(...skipping 5877 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17157 CompilationInfo* info) { | 17165 CompilationInfo* info) { |
17158 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( | 17166 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( |
17159 handle(cell->dependent_code(), info->isolate()), | 17167 handle(cell->dependent_code(), info->isolate()), |
17160 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); | 17168 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); |
17161 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 17169 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |
17162 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 17170 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |
17163 cell, info->zone()); | 17171 cell, info->zone()); |
17164 } | 17172 } |
17165 | 17173 |
17166 } } // namespace v8::internal | 17174 } } // namespace v8::internal |
OLD | NEW |