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

Side by Side Diff: src/compiler/simplified-lowering.cc

Issue 2692753004: [turbofan] escape analysis supports arguments object and rest elements (Closed)
Patch Set: addressed comments Created 3 years, 10 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
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/simplified-lowering.h" 5 #include "src/compiler/simplified-lowering.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/address-map.h" 9 #include "src/address-map.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 2529 matching lines...) Expand 10 before | Expand all | Expand 10 after
2540 return; 2540 return;
2541 } 2541 }
2542 case IrOpcode::kObjectIsString: { 2542 case IrOpcode::kObjectIsString: {
2543 VisitObjectIs(node, Type::String(), lowering); 2543 VisitObjectIs(node, Type::String(), lowering);
2544 return; 2544 return;
2545 } 2545 }
2546 case IrOpcode::kObjectIsUndetectable: { 2546 case IrOpcode::kObjectIsUndetectable: {
2547 VisitObjectIs(node, Type::Undetectable(), lowering); 2547 VisitObjectIs(node, Type::Undetectable(), lowering);
2548 return; 2548 return;
2549 } 2549 }
2550 case IrOpcode::kNewRestParameterElements: 2550 case IrOpcode::kArgumentsFrame: {
2551 SetOutput(node, MachineType::PointerRepresentation());
2552 return;
2553 }
2554 case IrOpcode::kArgumentsLength: {
2555 VisitUnop(node, UseInfo::PointerInt(),
2556 MachineRepresentation::kTaggedSigned);
2557 return;
2558 }
2551 case IrOpcode::kNewUnmappedArgumentsElements: { 2559 case IrOpcode::kNewUnmappedArgumentsElements: {
2552 ProcessRemainingInputs(node, 0); 2560 VisitBinop(node, UseInfo::PointerInt(), UseInfo::TaggedSigned(),
2553 SetOutput(node, MachineRepresentation::kTaggedPointer); 2561 MachineRepresentation::kTaggedPointer);
2554 return; 2562 return;
2555 } 2563 }
2556 case IrOpcode::kArrayBufferWasNeutered: { 2564 case IrOpcode::kArrayBufferWasNeutered: {
2557 VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit); 2565 VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit);
2558 return; 2566 return;
2559 } 2567 }
2560 case IrOpcode::kCheckFloat64Hole: { 2568 case IrOpcode::kCheckFloat64Hole: {
2561 CheckFloat64HoleMode mode = CheckFloat64HoleModeOf(node->op()); 2569 CheckFloat64HoleMode mode = CheckFloat64HoleModeOf(node->op());
2562 ProcessInput(node, 0, UseInfo::TruncatingFloat64()); 2570 ProcessInput(node, 0, UseInfo::TruncatingFloat64());
2563 ProcessRemainingInputs(node, 1); 2571 ProcessRemainingInputs(node, 1);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
2657 case IrOpcode::kEffectPhi: 2665 case IrOpcode::kEffectPhi:
2658 case IrOpcode::kTerminate: 2666 case IrOpcode::kTerminate:
2659 case IrOpcode::kFrameState: 2667 case IrOpcode::kFrameState:
2660 case IrOpcode::kCheckpoint: 2668 case IrOpcode::kCheckpoint:
2661 case IrOpcode::kLoop: 2669 case IrOpcode::kLoop:
2662 case IrOpcode::kMerge: 2670 case IrOpcode::kMerge:
2663 case IrOpcode::kThrow: 2671 case IrOpcode::kThrow:
2664 case IrOpcode::kBeginRegion: 2672 case IrOpcode::kBeginRegion:
2665 case IrOpcode::kProjection: 2673 case IrOpcode::kProjection:
2666 case IrOpcode::kOsrValue: 2674 case IrOpcode::kOsrValue:
2667 case IrOpcode::kArgumentsObjectState: 2675 case IrOpcode::kArgumentsElementsState:
2668 // All JavaScript operators except JSToNumber have uniform handling. 2676 // All JavaScript operators except JSToNumber have uniform handling.
2669 #define OPCODE_CASE(name) case IrOpcode::k##name: 2677 #define OPCODE_CASE(name) case IrOpcode::k##name:
2670 JS_SIMPLE_BINOP_LIST(OPCODE_CASE) 2678 JS_SIMPLE_BINOP_LIST(OPCODE_CASE)
2671 JS_OTHER_UNOP_LIST(OPCODE_CASE) 2679 JS_OTHER_UNOP_LIST(OPCODE_CASE)
2672 JS_OBJECT_OP_LIST(OPCODE_CASE) 2680 JS_OBJECT_OP_LIST(OPCODE_CASE)
2673 JS_CONTEXT_OP_LIST(OPCODE_CASE) 2681 JS_CONTEXT_OP_LIST(OPCODE_CASE)
2674 JS_OTHER_OP_LIST(OPCODE_CASE) 2682 JS_OTHER_OP_LIST(OPCODE_CASE)
2675 #undef OPCODE_CASE 2683 #undef OPCODE_CASE
2676 case IrOpcode::kJSToInteger: 2684 case IrOpcode::kJSToInteger:
2677 case IrOpcode::kJSToLength: 2685 case IrOpcode::kJSToLength:
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
3510 isolate(), graph()->zone(), callable.descriptor(), 0, flags, 3518 isolate(), graph()->zone(), callable.descriptor(), 0, flags,
3511 Operator::kNoProperties); 3519 Operator::kNoProperties);
3512 to_number_operator_.set(common()->Call(desc)); 3520 to_number_operator_.set(common()->Call(desc));
3513 } 3521 }
3514 return to_number_operator_.get(); 3522 return to_number_operator_.get();
3515 } 3523 }
3516 3524
3517 } // namespace compiler 3525 } // namespace compiler
3518 } // namespace internal 3526 } // namespace internal
3519 } // namespace v8 3527 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698