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

Side by Side Diff: src/crankshaft/hydrogen.cc

Issue 2173403002: Replace SmartArrayPointer<T> with unique_ptr<T[]> (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 4 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
« no previous file with comments | « src/compiler/pipeline-statistics.cc ('k') | src/deoptimizer.cc » ('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/crankshaft/hydrogen.h" 5 #include "src/crankshaft/hydrogen.h"
6 6
7 #include <memory>
7 #include <sstream> 8 #include <sstream>
8 9
9 #include "src/allocation-site-scopes.h" 10 #include "src/allocation-site-scopes.h"
10 #include "src/ast/ast-numbering.h" 11 #include "src/ast/ast-numbering.h"
11 #include "src/ast/scopeinfo.h" 12 #include "src/ast/scopeinfo.h"
12 #include "src/code-factory.h" 13 #include "src/code-factory.h"
13 #include "src/crankshaft/hydrogen-bce.h" 14 #include "src/crankshaft/hydrogen-bce.h"
14 #include "src/crankshaft/hydrogen-canonicalize.h" 15 #include "src/crankshaft/hydrogen-canonicalize.h"
15 #include "src/crankshaft/hydrogen-check-elimination.h" 16 #include "src/crankshaft/hydrogen-check-elimination.h"
16 #include "src/crankshaft/hydrogen-dce.h" 17 #include "src/crankshaft/hydrogen-dce.h"
(...skipping 8130 matching lines...) Expand 10 before | Expand all | Expand 10 after
8147 AddCheckPrototypeMaps(info.holder(), map); 8148 AddCheckPrototypeMaps(info.holder(), map);
8148 8149
8149 HValue* function = Add<HConstant>(expr->target()); 8150 HValue* function = Add<HConstant>(expr->target());
8150 environment()->SetExpressionStackAt(0, function); 8151 environment()->SetExpressionStackAt(0, function);
8151 Push(receiver); 8152 Push(receiver);
8152 CHECK_ALIVE(VisitExpressions(expr->arguments())); 8153 CHECK_ALIVE(VisitExpressions(expr->arguments()));
8153 bool needs_wrapping = info.NeedsWrappingFor(target); 8154 bool needs_wrapping = info.NeedsWrappingFor(target);
8154 bool try_inline = FLAG_polymorphic_inlining && !needs_wrapping; 8155 bool try_inline = FLAG_polymorphic_inlining && !needs_wrapping;
8155 if (FLAG_trace_inlining && try_inline) { 8156 if (FLAG_trace_inlining && try_inline) {
8156 Handle<JSFunction> caller = current_info()->closure(); 8157 Handle<JSFunction> caller = current_info()->closure();
8157 base::SmartArrayPointer<char> caller_name = 8158 std::unique_ptr<char[]> caller_name =
8158 caller->shared()->DebugName()->ToCString(); 8159 caller->shared()->DebugName()->ToCString();
8159 PrintF("Trying to inline the polymorphic call to %s from %s\n", 8160 PrintF("Trying to inline the polymorphic call to %s from %s\n",
8160 name->ToCString().get(), 8161 name->ToCString().get(),
8161 caller_name.get()); 8162 caller_name.get());
8162 } 8163 }
8163 if (try_inline && TryInlineCall(expr)) { 8164 if (try_inline && TryInlineCall(expr)) {
8164 // Trying to inline will signal that we should bailout from the 8165 // Trying to inline will signal that we should bailout from the
8165 // entire compilation by setting stack overflow on the visitor. 8166 // entire compilation by setting stack overflow on the visitor.
8166 if (HasStackOverflow()) return; 8167 if (HasStackOverflow()) return;
8167 } else { 8168 } else {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
8234 } else { 8235 } else {
8235 set_current_block(NULL); 8236 set_current_block(NULL);
8236 } 8237 }
8237 } 8238 }
8238 8239
8239 void HOptimizedGraphBuilder::TraceInline(Handle<JSFunction> target, 8240 void HOptimizedGraphBuilder::TraceInline(Handle<JSFunction> target,
8240 Handle<JSFunction> caller, 8241 Handle<JSFunction> caller,
8241 const char* reason, 8242 const char* reason,
8242 TailCallMode tail_call_mode) { 8243 TailCallMode tail_call_mode) {
8243 if (FLAG_trace_inlining) { 8244 if (FLAG_trace_inlining) {
8244 base::SmartArrayPointer<char> target_name = 8245 std::unique_ptr<char[]> target_name =
8245 target->shared()->DebugName()->ToCString(); 8246 target->shared()->DebugName()->ToCString();
8246 base::SmartArrayPointer<char> caller_name = 8247 std::unique_ptr<char[]> caller_name =
8247 caller->shared()->DebugName()->ToCString(); 8248 caller->shared()->DebugName()->ToCString();
8248 if (reason == NULL) { 8249 if (reason == NULL) {
8249 const char* call_mode = 8250 const char* call_mode =
8250 tail_call_mode == TailCallMode::kAllow ? "tail called" : "called"; 8251 tail_call_mode == TailCallMode::kAllow ? "tail called" : "called";
8251 PrintF("Inlined %s %s from %s.\n", target_name.get(), call_mode, 8252 PrintF("Inlined %s %s from %s.\n", target_name.get(), call_mode,
8252 caller_name.get()); 8253 caller_name.get());
8253 } else { 8254 } else {
8254 PrintF("Did not inline %s called from %s (%s).\n", 8255 PrintF("Did not inline %s called from %s (%s).\n",
8255 target_name.get(), caller_name.get(), reason); 8256 target_name.get(), caller_name.get(), reason);
8256 } 8257 }
(...skipping 4829 matching lines...) Expand 10 before | Expand all | Expand 10 after
13086 if (info->parse_info()) { 13087 if (info->parse_info()) {
13087 Object* source_name = info->script()->name(); 13088 Object* source_name = info->script()->name();
13088 if (source_name->IsString()) { 13089 if (source_name->IsString()) {
13089 String* str = String::cast(source_name); 13090 String* str = String::cast(source_name);
13090 if (str->length() > 0) { 13091 if (str->length() > 0) {
13091 name.append(str->ToCString().get()); 13092 name.append(str->ToCString().get());
13092 name.append(":"); 13093 name.append(":");
13093 } 13094 }
13094 } 13095 }
13095 } 13096 }
13096 base::SmartArrayPointer<char> method_name = info->GetDebugName(); 13097 std::unique_ptr<char[]> method_name = info->GetDebugName();
13097 name.append(method_name.get()); 13098 name.append(method_name.get());
13098 if (info->IsOptimizing()) { 13099 if (info->IsOptimizing()) {
13099 PrintStringProperty("name", name.c_str()); 13100 PrintStringProperty("name", name.c_str());
13100 PrintIndent(); 13101 PrintIndent();
13101 trace_.Add("method \"%s:%d\"\n", method_name.get(), 13102 trace_.Add("method \"%s:%d\"\n", method_name.get(),
13102 info->optimization_id()); 13103 info->optimization_id());
13103 } else { 13104 } else {
13104 PrintStringProperty("name", name.c_str()); 13105 PrintStringProperty("name", name.c_str());
13105 PrintStringProperty("method", "stub"); 13106 PrintStringProperty("method", "stub");
13106 } 13107 }
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
13420 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 13421 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
13421 } 13422 }
13422 13423
13423 #ifdef DEBUG 13424 #ifdef DEBUG
13424 graph_->Verify(false); // No full verify. 13425 graph_->Verify(false); // No full verify.
13425 #endif 13426 #endif
13426 } 13427 }
13427 13428
13428 } // namespace internal 13429 } // namespace internal
13429 } // namespace v8 13430 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/pipeline-statistics.cc ('k') | src/deoptimizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698