Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index 6f1e3306c1c68715af002b32de0eb866fbb9d05a..c3eaddfe054cfd1300ea32c74dd68d1b1fad9652 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -350,6 +350,10 @@ enum class FrameStateInputKind { kAny, kStackSlot }; |
InstructionOperand OperandForDeopt(OperandGenerator* g, Node* input, |
FrameStateInputKind kind, |
MachineRepresentation rep) { |
+ if (rep == MachineRepresentation::kNone) { |
+ return g->TempImmediate(FrameStateDescriptor::kImpossibleValue); |
+ } |
+ |
switch (input->opcode()) { |
case IrOpcode::kInt32Constant: |
case IrOpcode::kInt64Constant: |
@@ -362,17 +366,13 @@ InstructionOperand OperandForDeopt(OperandGenerator* g, Node* input, |
UNREACHABLE(); |
break; |
default: |
- if (rep == MachineRepresentation::kNone) { |
- return g->TempImmediate(FrameStateDescriptor::kImpossibleValue); |
- } else { |
- switch (kind) { |
- case FrameStateInputKind::kStackSlot: |
- return g->UseUniqueSlot(input); |
- case FrameStateInputKind::kAny: |
- // Currently deopts "wrap" other operations, so the deopt's inputs |
- // are potentially needed untill the end of the deoptimising code. |
- return g->UseAnyAtEnd(input); |
- } |
+ switch (kind) { |
+ case FrameStateInputKind::kStackSlot: |
+ return g->UseUniqueSlot(input); |
+ case FrameStateInputKind::kAny: |
+ // Currently deopts "wrap" other operations, so the deopt's inputs |
+ // are potentially needed untill the end of the deoptimising code. |
+ return g->UseAnyAtEnd(input); |
} |
} |
UNREACHABLE(); |
@@ -1067,19 +1067,6 @@ void InstructionSelector::VisitNode(Node* node) { |
return MarkAsWord32(node), VisitChangeFloat64ToInt32(node); |
case IrOpcode::kChangeFloat64ToUint32: |
return MarkAsWord32(node), VisitChangeFloat64ToUint32(node); |
- case IrOpcode::kImpossibleToWord32: |
- return MarkAsWord32(node), VisitImpossibleToWord32(node); |
- case IrOpcode::kImpossibleToWord64: |
- return MarkAsWord64(node), VisitImpossibleToWord64(node); |
- case IrOpcode::kImpossibleToFloat32: |
- return MarkAsFloat32(node), VisitImpossibleToFloat32(node); |
- case IrOpcode::kImpossibleToFloat64: |
- return MarkAsFloat64(node), VisitImpossibleToFloat64(node); |
- case IrOpcode::kImpossibleToTagged: |
- MarkAsRepresentation(MachineType::PointerRepresentation(), node); |
- return VisitImpossibleToTagged(node); |
- case IrOpcode::kImpossibleToBit: |
- return MarkAsWord32(node), VisitImpossibleToBit(node); |
case IrOpcode::kFloat64SilenceNaN: |
MarkAsFloat64(node); |
if (CanProduceSignalingNaN(node->InputAt(0))) { |
@@ -1320,42 +1307,6 @@ void InstructionSelector::VisitNode(Node* node) { |
} |
} |
-void InstructionSelector::VisitImpossibleToWord32(Node* node) { |
- OperandGenerator g(this); |
- Emit(kArchImpossible, g.DefineAsConstant(node, Constant(0))); |
-} |
- |
-void InstructionSelector::VisitImpossibleToWord64(Node* node) { |
- OperandGenerator g(this); |
- Emit(kArchImpossible, |
- g.DefineAsConstant(node, Constant(static_cast<int64_t>(0)))); |
-} |
- |
-void InstructionSelector::VisitImpossibleToFloat32(Node* node) { |
- OperandGenerator g(this); |
- Emit(kArchImpossible, g.DefineAsConstant(node, Constant(0.0f))); |
-} |
- |
-void InstructionSelector::VisitImpossibleToFloat64(Node* node) { |
- OperandGenerator g(this); |
- Emit(kArchImpossible, g.DefineAsConstant(node, Constant(0.0))); |
-} |
- |
-void InstructionSelector::VisitImpossibleToBit(Node* node) { |
- OperandGenerator g(this); |
- Emit(kArchImpossible, g.DefineAsConstant(node, Constant(0))); |
-} |
- |
-void InstructionSelector::VisitImpossibleToTagged(Node* node) { |
- OperandGenerator g(this); |
-#if V8_TARGET_ARCH_64_BIT |
- Emit(kArchImpossible, |
- g.DefineAsConstant(node, Constant(static_cast<int64_t>(0)))); |
-#else // V8_TARGET_ARCH_64_BIT |
- Emit(kArchImpossible, g.DefineAsConstant(node, Constant(0))); |
-#endif // V8_TARGET_ARCH_64_BIT |
-} |
- |
void InstructionSelector::VisitLoadStackPointer(Node* node) { |
OperandGenerator g(this); |
Emit(kArchStackPointer, g.DefineAsRegister(node)); |