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

Side by Side Diff: src/objects.cc

Issue 453363003: Revert "Initial shot at deoptimizing JSCallFunction in Turbofan." (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « src/compiler/x64/linkage-x64.cc ('k') | test/cctest/cctest.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/allocation-site-scopes.h" 8 #include "src/allocation-site-scopes.h"
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/arguments.h" 10 #include "src/arguments.h"
(...skipping 11110 matching lines...) Expand 10 before | Expand all | Expand 10 after
11121 11121
11122 #ifdef ENABLE_DISASSEMBLER 11122 #ifdef ENABLE_DISASSEMBLER
11123 11123
11124 void DeoptimizationInputData::DeoptimizationInputDataPrint( 11124 void DeoptimizationInputData::DeoptimizationInputDataPrint(
11125 OStream& os) { // NOLINT 11125 OStream& os) { // NOLINT
11126 disasm::NameConverter converter; 11126 disasm::NameConverter converter;
11127 int deopt_count = DeoptCount(); 11127 int deopt_count = DeoptCount();
11128 os << "Deoptimization Input Data (deopt points = " << deopt_count << ")\n"; 11128 os << "Deoptimization Input Data (deopt points = " << deopt_count << ")\n";
11129 if (0 != deopt_count) { 11129 if (0 != deopt_count) {
11130 os << " index ast id argc pc"; 11130 os << " index ast id argc pc";
11131 if (FLAG_print_code_verbose) os << " commands"; 11131 if (FLAG_print_code_verbose) os << "commands";
11132 os << "\n"; 11132 os << "\n";
11133 } 11133 }
11134 for (int i = 0; i < deopt_count; i++) { 11134 for (int i = 0; i < deopt_count; i++) {
11135 // TODO(svenpanne) Add some basic formatting to our streams. 11135 // TODO(svenpanne) Add some basic formatting to our streams.
11136 Vector<char> buf1 = Vector<char>::New(128); 11136 Vector<char> buf1 = Vector<char>::New(128);
11137 SNPrintF(buf1, "%6d %6d %6d %6d", i, AstId(i).ToInt(), 11137 SNPrintF(buf1, "%6d %6d %6d %6d", i, AstId(i).ToInt(),
11138 ArgumentsStackHeight(i)->value(), Pc(i)->value()); 11138 ArgumentsStackHeight(i)->value(), Pc(i)->value());
11139 os << buf1.start(); 11139 os << buf1.start();
11140 11140
11141 if (!FLAG_print_code_verbose) { 11141 if (!FLAG_print_code_verbose) {
11142 os << "\n"; 11142 os << "\n";
11143 continue; 11143 continue;
11144 } 11144 }
11145 // Print details of the frame translation. 11145 // Print details of the frame translation.
11146 int translation_index = TranslationIndex(i)->value(); 11146 int translation_index = TranslationIndex(i)->value();
11147 TranslationIterator iterator(TranslationByteArray(), translation_index); 11147 TranslationIterator iterator(TranslationByteArray(), translation_index);
11148 Translation::Opcode opcode = 11148 Translation::Opcode opcode =
11149 static_cast<Translation::Opcode>(iterator.Next()); 11149 static_cast<Translation::Opcode>(iterator.Next());
11150 DCHECK(Translation::BEGIN == opcode); 11150 DCHECK(Translation::BEGIN == opcode);
11151 int frame_count = iterator.Next(); 11151 int frame_count = iterator.Next();
11152 int jsframe_count = iterator.Next(); 11152 int jsframe_count = iterator.Next();
11153 os << " " << Translation::StringFor(opcode) 11153 os << " " << Translation::StringFor(opcode)
11154 << " {frame count=" << frame_count 11154 << " {frame count=" << frame_count
11155 << ", js frame count=" << jsframe_count << "}\n"; 11155 << ", js frame count=" << jsframe_count << "}\n";
11156 11156
11157 while (iterator.HasNext() && 11157 while (iterator.HasNext() &&
11158 Translation::BEGIN != 11158 Translation::BEGIN !=
11159 (opcode = static_cast<Translation::Opcode>(iterator.Next()))) { 11159 (opcode = static_cast<Translation::Opcode>(iterator.Next()))) {
11160 Vector<char> buf2 = Vector<char>::New(128); 11160 Vector<char> buf2 = Vector<char>::New(128);
11161 SNPrintF(buf2, "%27s %s ", "", Translation::StringFor(opcode)); 11161 SNPrintF(buf2, "%24s %s ", "", Translation::StringFor(opcode));
11162 os << buf2.start(); 11162 os << buf2.start();
11163 11163
11164 switch (opcode) { 11164 switch (opcode) {
11165 case Translation::BEGIN: 11165 case Translation::BEGIN:
11166 UNREACHABLE(); 11166 UNREACHABLE();
11167 break; 11167 break;
11168 11168
11169 case Translation::JS_FRAME: { 11169 case Translation::JS_FRAME: {
11170 int ast_id = iterator.Next(); 11170 int ast_id = iterator.Next();
11171 int function_id = iterator.Next(); 11171 int function_id = iterator.Next();
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
11277 } 11277 }
11278 } 11278 }
11279 os << "\n"; 11279 os << "\n";
11280 } 11280 }
11281 } 11281 }
11282 11282
11283 int return_address_patch_count = ReturnAddressPatchCount(); 11283 int return_address_patch_count = ReturnAddressPatchCount();
11284 if (return_address_patch_count != 0) { 11284 if (return_address_patch_count != 0) {
11285 os << "Return address patch data (count = " << return_address_patch_count 11285 os << "Return address patch data (count = " << return_address_patch_count
11286 << ")\n"; 11286 << ")\n";
11287 os << " index pc patched_pc\n"; 11287 os << "index pc patched_pc\n";
11288 } 11288 }
11289 for (int i = 0; i < return_address_patch_count; i++) { 11289 for (int i = 0; i < return_address_patch_count; i++) {
11290 Vector<char> buf = Vector<char>::New(128); 11290 Vector<char> buf = Vector<char>::New(128);
11291 SNPrintF(buf, "%6d %6d %12d\n", i, ReturnAddressPc(i)->value(), 11291 SNPrintF(buf, "%6d %6d %10d", i, ReturnAddressPc(i)->value(),
11292 PatchedAddressPc(i)->value()); 11292 PatchedAddressPc(i)->value());
11293 os << buf.start(); 11293 os << buf.start();
11294 } 11294 }
11295 } 11295 }
11296 11296
11297 11297
11298 void DeoptimizationOutputData::DeoptimizationOutputDataPrint( 11298 void DeoptimizationOutputData::DeoptimizationOutputDataPrint(
11299 OStream& os) { // NOLINT 11299 OStream& os) { // NOLINT
11300 os << "Deoptimization Output Data (deopt points = " << this->DeoptPoints() 11300 os << "Deoptimization Output Data (deopt points = " << this->DeoptPoints()
11301 << ")\n"; 11301 << ")\n";
(...skipping 5596 matching lines...) Expand 10 before | Expand all | Expand 10 after
16898 #define ERROR_MESSAGES_TEXTS(C, T) T, 16898 #define ERROR_MESSAGES_TEXTS(C, T) T,
16899 static const char* error_messages_[] = { 16899 static const char* error_messages_[] = {
16900 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) 16900 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)
16901 }; 16901 };
16902 #undef ERROR_MESSAGES_TEXTS 16902 #undef ERROR_MESSAGES_TEXTS
16903 return error_messages_[reason]; 16903 return error_messages_[reason];
16904 } 16904 }
16905 16905
16906 16906
16907 } } // namespace v8::internal 16907 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/compiler/x64/linkage-x64.cc ('k') | test/cctest/cctest.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698