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

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

Issue 2510653002: [ic] Pass name to LoadGlobalIC again. (Closed)
Patch Set: Release fix Created 4 years, 1 month 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/js-generic-lowering.cc ('k') | src/full-codegen/full-codegen.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 <memory>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "src/allocation-site-scopes.h" 10 #include "src/allocation-site-scopes.h"
(...skipping 5316 matching lines...) Expand 10 before | Expand all | Expand 10 after
5327 return; 5327 return;
5328 } else { 5328 } else {
5329 Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate()); 5329 Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate());
5330 5330
5331 HValue* vector_value = Add<HConstant>(vector); 5331 HValue* vector_value = Add<HConstant>(vector);
5332 HValue* slot_value = 5332 HValue* slot_value =
5333 Add<HConstant>(vector->GetIndex(expr->VariableFeedbackSlot())); 5333 Add<HConstant>(vector->GetIndex(expr->VariableFeedbackSlot()));
5334 Callable callable = CodeFactory::LoadGlobalICInOptimizedCode( 5334 Callable callable = CodeFactory::LoadGlobalICInOptimizedCode(
5335 isolate(), ast_context()->typeof_mode()); 5335 isolate(), ast_context()->typeof_mode());
5336 HValue* stub = Add<HConstant>(callable.code()); 5336 HValue* stub = Add<HConstant>(callable.code());
5337 HValue* values[] = {slot_value, vector_value}; 5337 HValue* name = Add<HConstant>(variable->name());
5338 HValue* values[] = {name, slot_value, vector_value};
5338 HCallWithDescriptor* instr = New<HCallWithDescriptor>( 5339 HCallWithDescriptor* instr = New<HCallWithDescriptor>(
5339 Code::LOAD_GLOBAL_IC, stub, 0, callable.descriptor(), 5340 Code::LOAD_GLOBAL_IC, stub, 0, callable.descriptor(),
5340 ArrayVector(values)); 5341 ArrayVector(values));
5341 return ast_context()->ReturnInstruction(instr, expr->id()); 5342 return ast_context()->ReturnInstruction(instr, expr->id());
5342 } 5343 }
5343 } 5344 }
5344 5345
5345 case VariableLocation::PARAMETER: 5346 case VariableLocation::PARAMETER:
5346 case VariableLocation::LOCAL: { 5347 case VariableLocation::LOCAL: {
5347 HValue* value = LookupAndMakeLive(variable); 5348 HValue* value = LookupAndMakeLive(variable);
(...skipping 7661 matching lines...) Expand 10 before | Expand all | Expand 10 after
13009 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 13010 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
13010 } 13011 }
13011 13012
13012 #ifdef DEBUG 13013 #ifdef DEBUG
13013 graph_->Verify(false); // No full verify. 13014 graph_->Verify(false); // No full verify.
13014 #endif 13015 #endif
13015 } 13016 }
13016 13017
13017 } // namespace internal 13018 } // namespace internal
13018 } // namespace v8 13019 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-generic-lowering.cc ('k') | src/full-codegen/full-codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698