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

Side by Side Diff: src/compiler/js-call-reducer.cc

Issue 2221043002: [turbofan] Remove unused Type parameter from ReferenceEqual. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: 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 | « no previous file | src/compiler/js-create-lowering.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 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/compiler/js-call-reducer.h" 5 #include "src/compiler/js-call-reducer.h"
6 6
7 #include "src/compiler/js-graph.h" 7 #include "src/compiler/js-graph.h"
8 #include "src/compiler/node-matchers.h" 8 #include "src/compiler/node-matchers.h"
9 #include "src/compiler/simplified-operator.h" 9 #include "src/compiler/simplified-operator.h"
10 #include "src/objects-inl.h" 10 #include "src/objects-inl.h"
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 } else { 316 } else {
317 Node* native_context = effect = graph()->NewNode( 317 Node* native_context = effect = graph()->NewNode(
318 javascript()->LoadContext(0, Context::NATIVE_CONTEXT_INDEX, true), 318 javascript()->LoadContext(0, Context::NATIVE_CONTEXT_INDEX, true),
319 context, context, effect); 319 context, context, effect);
320 array_function = effect = graph()->NewNode( 320 array_function = effect = graph()->NewNode(
321 javascript()->LoadContext(0, Context::ARRAY_FUNCTION_INDEX, true), 321 javascript()->LoadContext(0, Context::ARRAY_FUNCTION_INDEX, true),
322 native_context, native_context, effect); 322 native_context, native_context, effect);
323 } 323 }
324 324
325 // Check that the {target} is still the {array_function}. 325 // Check that the {target} is still the {array_function}.
326 Node* check = graph()->NewNode(simplified()->ReferenceEqual(Type::Any()), 326 Node* check = graph()->NewNode(simplified()->ReferenceEqual(), target,
327 target, array_function); 327 array_function);
328 effect = graph()->NewNode(simplified()->CheckIf(), check, effect, control); 328 effect = graph()->NewNode(simplified()->CheckIf(), check, effect, control);
329 329
330 // Turn the {node} into a {JSCreateArray} call. 330 // Turn the {node} into a {JSCreateArray} call.
331 NodeProperties::ReplaceValueInput(node, array_function, 0); 331 NodeProperties::ReplaceValueInput(node, array_function, 0);
332 NodeProperties::ReplaceEffectInput(node, effect); 332 NodeProperties::ReplaceEffectInput(node, effect);
333 return ReduceArrayConstructor(node); 333 return ReduceArrayConstructor(node);
334 } else if (feedback->IsWeakCell()) { 334 } else if (feedback->IsWeakCell()) {
335 Handle<WeakCell> cell = Handle<WeakCell>::cast(feedback); 335 Handle<WeakCell> cell = Handle<WeakCell>::cast(feedback);
336 if (cell->value()->IsJSFunction()) { 336 if (cell->value()->IsJSFunction()) {
337 Node* target_function = 337 Node* target_function =
338 jsgraph()->Constant(handle(cell->value(), isolate())); 338 jsgraph()->Constant(handle(cell->value(), isolate()));
339 339
340 // Check that the {target} is still the {target_function}. 340 // Check that the {target} is still the {target_function}.
341 Node* check = graph()->NewNode(simplified()->ReferenceEqual(Type::Any()), 341 Node* check = graph()->NewNode(simplified()->ReferenceEqual(), target,
342 target, target_function); 342 target_function);
343 effect = 343 effect =
344 graph()->NewNode(simplified()->CheckIf(), check, effect, control); 344 graph()->NewNode(simplified()->CheckIf(), check, effect, control);
345 345
346 // Specialize the JSCallFunction node to the {target_function}. 346 // Specialize the JSCallFunction node to the {target_function}.
347 NodeProperties::ReplaceValueInput(node, target_function, 0); 347 NodeProperties::ReplaceValueInput(node, target_function, 0);
348 NodeProperties::ReplaceEffectInput(node, effect); 348 NodeProperties::ReplaceEffectInput(node, effect);
349 349
350 // Try to further reduce the JSCallFunction {node}. 350 // Try to further reduce the JSCallFunction {node}.
351 Reduction const reduction = ReduceJSCallFunction(node); 351 Reduction const reduction = ReduceJSCallFunction(node);
352 return reduction.Changed() ? reduction : Changed(node); 352 return reduction.Changed() ? reduction : Changed(node);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 } else { 432 } else {
433 Node* native_context = effect = graph()->NewNode( 433 Node* native_context = effect = graph()->NewNode(
434 javascript()->LoadContext(0, Context::NATIVE_CONTEXT_INDEX, true), 434 javascript()->LoadContext(0, Context::NATIVE_CONTEXT_INDEX, true),
435 context, context, effect); 435 context, context, effect);
436 array_function = effect = graph()->NewNode( 436 array_function = effect = graph()->NewNode(
437 javascript()->LoadContext(0, Context::ARRAY_FUNCTION_INDEX, true), 437 javascript()->LoadContext(0, Context::ARRAY_FUNCTION_INDEX, true),
438 native_context, native_context, effect); 438 native_context, native_context, effect);
439 } 439 }
440 440
441 // Check that the {target} is still the {array_function}. 441 // Check that the {target} is still the {array_function}.
442 Node* check = graph()->NewNode(simplified()->ReferenceEqual(Type::Any()), 442 Node* check = graph()->NewNode(simplified()->ReferenceEqual(), target,
443 target, array_function); 443 array_function);
444 effect = graph()->NewNode(simplified()->CheckIf(), check, effect, control); 444 effect = graph()->NewNode(simplified()->CheckIf(), check, effect, control);
445 445
446 // Turn the {node} into a {JSCreateArray} call. 446 // Turn the {node} into a {JSCreateArray} call.
447 NodeProperties::ReplaceEffectInput(node, effect); 447 NodeProperties::ReplaceEffectInput(node, effect);
448 for (int i = arity; i > 0; --i) { 448 for (int i = arity; i > 0; --i) {
449 NodeProperties::ReplaceValueInput( 449 NodeProperties::ReplaceValueInput(
450 node, NodeProperties::GetValueInput(node, i), i + 1); 450 node, NodeProperties::GetValueInput(node, i), i + 1);
451 } 451 }
452 NodeProperties::ReplaceValueInput(node, new_target, 1); 452 NodeProperties::ReplaceValueInput(node, new_target, 1);
453 NodeProperties::ChangeOp(node, javascript()->CreateArray(arity, site)); 453 NodeProperties::ChangeOp(node, javascript()->CreateArray(arity, site));
454 return Changed(node); 454 return Changed(node);
455 } else if (feedback->IsWeakCell()) { 455 } else if (feedback->IsWeakCell()) {
456 Handle<WeakCell> cell = Handle<WeakCell>::cast(feedback); 456 Handle<WeakCell> cell = Handle<WeakCell>::cast(feedback);
457 if (cell->value()->IsJSFunction()) { 457 if (cell->value()->IsJSFunction()) {
458 Node* target_function = 458 Node* target_function =
459 jsgraph()->Constant(handle(cell->value(), isolate())); 459 jsgraph()->Constant(handle(cell->value(), isolate()));
460 460
461 // Check that the {target} is still the {target_function}. 461 // Check that the {target} is still the {target_function}.
462 Node* check = graph()->NewNode(simplified()->ReferenceEqual(Type::Any()), 462 Node* check = graph()->NewNode(simplified()->ReferenceEqual(), target,
463 target, target_function); 463 target_function);
464 effect = 464 effect =
465 graph()->NewNode(simplified()->CheckIf(), check, effect, control); 465 graph()->NewNode(simplified()->CheckIf(), check, effect, control);
466 466
467 // Specialize the JSCallConstruct node to the {target_function}. 467 // Specialize the JSCallConstruct node to the {target_function}.
468 NodeProperties::ReplaceValueInput(node, target_function, 0); 468 NodeProperties::ReplaceValueInput(node, target_function, 0);
469 NodeProperties::ReplaceEffectInput(node, effect); 469 NodeProperties::ReplaceEffectInput(node, effect);
470 if (target == new_target) { 470 if (target == new_target) {
471 NodeProperties::ReplaceValueInput(node, target_function, arity + 1); 471 NodeProperties::ReplaceValueInput(node, target_function, arity + 1);
472 } 472 }
473 473
(...skipping 29 matching lines...) Expand all
503 return jsgraph()->javascript(); 503 return jsgraph()->javascript();
504 } 504 }
505 505
506 SimplifiedOperatorBuilder* JSCallReducer::simplified() const { 506 SimplifiedOperatorBuilder* JSCallReducer::simplified() const {
507 return jsgraph()->simplified(); 507 return jsgraph()->simplified();
508 } 508 }
509 509
510 } // namespace compiler 510 } // namespace compiler
511 } // namespace internal 511 } // namespace internal
512 } // namespace v8 512 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/js-create-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698