Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: src/objects.cc

Issue 2410353004: OBJECT_PRINT needs to have ICState2String() defined. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/objects.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 "src/objects.h" 5 #include "src/objects.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <iomanip> 8 #include <iomanip>
9 #include <memory> 9 #include <memory>
10 #include <sstream> 10 #include <sstream>
(...skipping 14488 matching lines...) Expand 10 before | Expand all | Expand 10 after
14499 DCHECK(kind() == OPTIMIZED_FUNCTION); 14499 DCHECK(kind() == OPTIMIZED_FUNCTION);
14500 Object* weak_cell_cache = 14500 Object* weak_cell_cache =
14501 DeoptimizationInputData::cast(deoptimization_data())->WeakCellCache(); 14501 DeoptimizationInputData::cast(deoptimization_data())->WeakCellCache();
14502 if (weak_cell_cache->IsWeakCell()) { 14502 if (weak_cell_cache->IsWeakCell()) {
14503 DCHECK(this == WeakCell::cast(weak_cell_cache)->value()); 14503 DCHECK(this == WeakCell::cast(weak_cell_cache)->value());
14504 return WeakCell::cast(weak_cell_cache); 14504 return WeakCell::cast(weak_cell_cache);
14505 } 14505 }
14506 return NULL; 14506 return NULL;
14507 } 14507 }
14508 14508
14509 #if defined(OBJECT_PRINT) || defined(ENABLE_DISASSEMBLER)
14510
14511 const char* Code::ICState2String(InlineCacheState state) {
14512 switch (state) {
14513 case UNINITIALIZED:
14514 return "UNINITIALIZED";
14515 case PREMONOMORPHIC:
14516 return "PREMONOMORPHIC";
14517 case MONOMORPHIC:
14518 return "MONOMORPHIC";
14519 case RECOMPUTE_HANDLER:
14520 return "RECOMPUTE_HANDLER";
14521 case POLYMORPHIC:
14522 return "POLYMORPHIC";
14523 case MEGAMORPHIC:
14524 return "MEGAMORPHIC";
14525 case GENERIC:
14526 return "GENERIC";
14527 }
14528 UNREACHABLE();
14529 return NULL;
14530 }
14531
14532 void Code::PrintExtraICState(std::ostream& os, // NOLINT
14533 Kind kind, ExtraICState extra) {
14534 os << "extra_ic_state = ";
14535 if ((kind == STORE_IC || kind == KEYED_STORE_IC) &&
14536 is_strict(static_cast<LanguageMode>(extra))) {
14537 os << "STRICT\n";
14538 } else {
14539 os << extra << "\n";
14540 }
14541 }
14542
14543 #endif // defined(OBJECT_PRINT) || defined(ENABLE_DISASSEMBLER)
14544
14509 #ifdef ENABLE_DISASSEMBLER 14545 #ifdef ENABLE_DISASSEMBLER
14510 14546
14511 void DeoptimizationInputData::DeoptimizationInputDataPrint( 14547 void DeoptimizationInputData::DeoptimizationInputDataPrint(
14512 std::ostream& os) { // NOLINT 14548 std::ostream& os) { // NOLINT
14513 disasm::NameConverter converter; 14549 disasm::NameConverter converter;
14514 int const inlined_function_count = InlinedFunctionCount()->value(); 14550 int const inlined_function_count = InlinedFunctionCount()->value();
14515 os << "Inlined functions (count = " << inlined_function_count << ")\n"; 14551 os << "Inlined functions (count = " << inlined_function_count << ")\n";
14516 for (int id = 0; id < inlined_function_count; ++id) { 14552 for (int id = 0; id < inlined_function_count; ++id) {
14517 Object* info = LiteralArray()->get(id); 14553 Object* info = LiteralArray()->get(id);
14518 os << " " << Brief(SharedFunctionInfo::cast(info)) << "\n"; 14554 os << " " << Brief(SharedFunctionInfo::cast(info)) << "\n";
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
14755 int pc_offset = Smi::cast(get(i + kReturnOffsetIndex))->value(); 14791 int pc_offset = Smi::cast(get(i + kReturnOffsetIndex))->value();
14756 int handler_field = Smi::cast(get(i + kReturnHandlerIndex))->value(); 14792 int handler_field = Smi::cast(get(i + kReturnHandlerIndex))->value();
14757 int handler_offset = HandlerOffsetField::decode(handler_field); 14793 int handler_offset = HandlerOffsetField::decode(handler_field);
14758 CatchPrediction prediction = HandlerPredictionField::decode(handler_field); 14794 CatchPrediction prediction = HandlerPredictionField::decode(handler_field);
14759 os << " " << std::setw(4) << pc_offset << " -> " << std::setw(4) 14795 os << " " << std::setw(4) << pc_offset << " -> " << std::setw(4)
14760 << handler_offset << " (prediction=" << prediction << ")\n"; 14796 << handler_offset << " (prediction=" << prediction << ")\n";
14761 } 14797 }
14762 } 14798 }
14763 14799
14764 14800
14765 const char* Code::ICState2String(InlineCacheState state) {
14766 switch (state) {
14767 case UNINITIALIZED: return "UNINITIALIZED";
14768 case PREMONOMORPHIC: return "PREMONOMORPHIC";
14769 case MONOMORPHIC: return "MONOMORPHIC";
14770 case RECOMPUTE_HANDLER:
14771 return "RECOMPUTE_HANDLER";
14772 case POLYMORPHIC: return "POLYMORPHIC";
14773 case MEGAMORPHIC: return "MEGAMORPHIC";
14774 case GENERIC: return "GENERIC";
14775 }
14776 UNREACHABLE();
14777 return NULL;
14778 }
14779
14780
14781 void Code::PrintExtraICState(std::ostream& os, // NOLINT
14782 Kind kind, ExtraICState extra) {
14783 os << "extra_ic_state = ";
14784 if ((kind == STORE_IC || kind == KEYED_STORE_IC) &&
14785 is_strict(static_cast<LanguageMode>(extra))) {
14786 os << "STRICT\n";
14787 } else {
14788 os << extra << "\n";
14789 }
14790 }
14791
14792
14793 void Code::Disassemble(const char* name, std::ostream& os) { // NOLINT 14801 void Code::Disassemble(const char* name, std::ostream& os) { // NOLINT
14794 os << "kind = " << Kind2String(kind()) << "\n"; 14802 os << "kind = " << Kind2String(kind()) << "\n";
14795 if (IsCodeStubOrIC()) { 14803 if (IsCodeStubOrIC()) {
14796 const char* n = CodeStub::MajorName(CodeStub::GetMajorKey(this)); 14804 const char* n = CodeStub::MajorName(CodeStub::GetMajorKey(this));
14797 os << "major_key = " << (n == NULL ? "null" : n) << "\n"; 14805 os << "major_key = " << (n == NULL ? "null" : n) << "\n";
14798 } 14806 }
14799 if (is_inline_cache_stub()) { 14807 if (is_inline_cache_stub()) {
14800 if (!IC::ICUseVector(kind())) { 14808 if (!IC::ICUseVector(kind())) {
14801 InlineCacheState ic_state = IC::StateFromCode(this); 14809 InlineCacheState ic_state = IC::StateFromCode(this);
14802 os << "ic_state = " << ICState2String(ic_state) << "\n"; 14810 os << "ic_state = " << ICState2String(ic_state) << "\n";
(...skipping 5376 matching lines...) Expand 10 before | Expand all | Expand 10 after
20179 ns, Accessors::ModuleNamespaceEntryInfo(isolate, name, attr)) 20187 ns, Accessors::ModuleNamespaceEntryInfo(isolate, name, attr))
20180 .Check(); 20188 .Check();
20181 } 20189 }
20182 JSObject::PreventExtensions(ns, THROW_ON_ERROR).ToChecked(); 20190 JSObject::PreventExtensions(ns, THROW_ON_ERROR).ToChecked();
20183 20191
20184 return ns; 20192 return ns;
20185 } 20193 }
20186 20194
20187 } // namespace internal 20195 } // namespace internal
20188 } // namespace v8 20196 } // namespace v8
OLDNEW
« no previous file with comments | « src/objects.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698