Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index 4b5552d9e7e9bf8212b7c4ce29ddc642359a8b1f..2e0b29c05b3add40f68e54362707b1456eb7b1f1 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -198,19 +198,6 @@ void InstructionSelector::MarkAsDouble(Node* node) { |
DCHECK_NOT_NULL(node); |
DCHECK(!IsReference(node)); |
sequence()->MarkAsDouble(node->id()); |
- |
- // Propagate "doubleness" throughout Phi nodes. |
- for (UseIter i = node->uses().begin(); i != node->uses().end(); ++i) { |
- Node* user = *i; |
- switch (user->opcode()) { |
- case IrOpcode::kPhi: |
- if (IsDouble(user)) continue; |
- MarkAsDouble(user); |
- break; |
- default: |
- break; |
- } |
- } |
} |
@@ -224,19 +211,6 @@ void InstructionSelector::MarkAsReference(Node* node) { |
DCHECK_NOT_NULL(node); |
DCHECK(!IsDouble(node)); |
sequence()->MarkAsReference(node->id()); |
- |
- // Propagate "referenceness" throughout Phi nodes. |
- for (UseIter i = node->uses().begin(); i != node->uses().end(); ++i) { |
- Node* user = *i; |
- switch (user->opcode()) { |
- case IrOpcode::kPhi: |
- if (IsReference(user)) continue; |
- MarkAsReference(user); |
- break; |
- default: |
- break; |
- } |
- } |
} |
@@ -491,8 +465,11 @@ void InstructionSelector::VisitNode(Node* node) { |
MarkAsRepresentation(type, node); |
return VisitParameter(node); |
} |
- case IrOpcode::kPhi: |
+ case IrOpcode::kPhi: { |
+ MachineType type = OpParameter<MachineType>(node); |
+ MarkAsRepresentation(type, node); |
return VisitPhi(node); |
+ } |
case IrOpcode::kProjection: |
return VisitProjection(node); |
case IrOpcode::kInt32Constant: |
@@ -845,10 +822,10 @@ void InstructionSelector::VisitProjection(Node* node) { |
switch (value->opcode()) { |
case IrOpcode::kInt32AddWithOverflow: |
case IrOpcode::kInt32SubWithOverflow: |
- if (OpParameter<int32_t>(node) == 0) { |
+ if (OpParameter<int>(node) == 0) { |
Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value)); |
} else { |
- DCHECK_EQ(1, OpParameter<int32_t>(node)); |
+ DCHECK_EQ(1, OpParameter<int>(node)); |
MarkAsUsed(value); |
} |
break; |
@@ -956,7 +933,7 @@ void InstructionSelector::VisitBranch(Node* branch, BasicBlock* tbranch, |
case IrOpcode::kProjection: |
// Check if this is the overflow output projection of an |
// <Operation>WithOverflow node. |
- if (OpParameter<int32_t>(value) == 1) { |
+ if (OpParameter<int>(value) == 1) { |
// We cannot combine the <Operation>WithOverflow with this branch |
// unless the 0th projection (the use of the actual value of the |
// <Operation> is either NULL, which means there's no use of the |