| Index: src/compiler/representation-change.cc
|
| diff --git a/src/compiler/representation-change.cc b/src/compiler/representation-change.cc
|
| index c564b9957b2c2769b6675a46bf30ab476432a5a0..1ebcd1a6796ca20ddb3a927f9398c3c83f017d32 100644
|
| --- a/src/compiler/representation-change.cc
|
| +++ b/src/compiler/representation-change.cc
|
| @@ -291,17 +291,9 @@ Node* RepresentationChanger::GetTaggedPointerRepresentationFor(
|
| case IrOpcode::kHeapConstant:
|
| return node; // No change necessary.
|
| case IrOpcode::kInt32Constant:
|
| - if (output_type->Is(Type::Boolean())) {
|
| - return OpParameter<int32_t>(node) == 0 ? jsgraph()->FalseConstant()
|
| - : jsgraph()->TrueConstant();
|
| - } else {
|
| - return TypeError(node, output_rep, output_type,
|
| - MachineRepresentation::kTaggedPointer);
|
| - }
|
| case IrOpcode::kFloat64Constant:
|
| case IrOpcode::kFloat32Constant:
|
| - return TypeError(node, output_rep, output_type,
|
| - MachineRepresentation::kTaggedPointer);
|
| + UNREACHABLE();
|
| default:
|
| break;
|
| }
|
| @@ -324,23 +316,10 @@ Node* RepresentationChanger::GetTaggedRepresentationFor(
|
| case IrOpcode::kHeapConstant:
|
| return node; // No change necessary.
|
| case IrOpcode::kInt32Constant:
|
| - if (output_type->Is(Type::Signed32())) {
|
| - int32_t value = OpParameter<int32_t>(node);
|
| - return jsgraph()->Constant(value);
|
| - } else if (output_type->Is(Type::Unsigned32())) {
|
| - uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node));
|
| - return jsgraph()->Constant(static_cast<double>(value));
|
| - } else if (output_type->Is(Type::Boolean())) {
|
| - return OpParameter<int32_t>(node) == 0 ? jsgraph()->FalseConstant()
|
| - : jsgraph()->TrueConstant();
|
| - } else {
|
| - return TypeError(node, output_rep, output_type,
|
| - MachineRepresentation::kTagged);
|
| - }
|
| case IrOpcode::kFloat64Constant:
|
| - return jsgraph()->Constant(OpParameter<double>(node));
|
| case IrOpcode::kFloat32Constant:
|
| - return jsgraph()->Constant(OpParameter<float>(node));
|
| + UNREACHABLE();
|
| + break;
|
| default:
|
| break;
|
| }
|
| @@ -408,20 +387,14 @@ Node* RepresentationChanger::GetFloat32RepresentationFor(
|
| Truncation truncation) {
|
| // Eagerly fold representation changes for constants.
|
| switch (node->opcode()) {
|
| - case IrOpcode::kFloat64Constant:
|
| case IrOpcode::kNumberConstant:
|
| return jsgraph()->Float32Constant(
|
| DoubleToFloat32(OpParameter<double>(node)));
|
| case IrOpcode::kInt32Constant:
|
| - if (output_type->Is(Type::Unsigned32())) {
|
| - uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node));
|
| - return jsgraph()->Float32Constant(static_cast<float>(value));
|
| - } else {
|
| - int32_t value = OpParameter<int32_t>(node);
|
| - return jsgraph()->Float32Constant(static_cast<float>(value));
|
| - }
|
| + case IrOpcode::kFloat64Constant:
|
| case IrOpcode::kFloat32Constant:
|
| - return node; // No change necessary.
|
| + UNREACHABLE();
|
| + break;
|
| default:
|
| break;
|
| }
|
| @@ -479,18 +452,10 @@ Node* RepresentationChanger::GetFloat64RepresentationFor(
|
| case IrOpcode::kNumberConstant:
|
| return jsgraph()->Float64Constant(OpParameter<double>(node));
|
| case IrOpcode::kInt32Constant:
|
| - if (output_type->Is(Type::Signed32())) {
|
| - int32_t value = OpParameter<int32_t>(node);
|
| - return jsgraph()->Float64Constant(value);
|
| - } else {
|
| - DCHECK(output_type->Is(Type::Unsigned32()));
|
| - uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node));
|
| - return jsgraph()->Float64Constant(static_cast<double>(value));
|
| - }
|
| case IrOpcode::kFloat64Constant:
|
| - return node; // No change necessary.
|
| case IrOpcode::kFloat32Constant:
|
| - return jsgraph()->Float64Constant(OpParameter<float>(node));
|
| + UNREACHABLE();
|
| + break;
|
| default:
|
| break;
|
| }
|
| @@ -555,19 +520,11 @@ Node* RepresentationChanger::GetWord32RepresentationFor(
|
| // Eagerly fold representation changes for constants.
|
| switch (node->opcode()) {
|
| case IrOpcode::kInt32Constant:
|
| - return node; // No change necessary.
|
| - case IrOpcode::kFloat32Constant: {
|
| - float const fv = OpParameter<float>(node);
|
| - if (use_info.type_check() == TypeCheckKind::kNone ||
|
| - ((use_info.type_check() == TypeCheckKind::kSignedSmall ||
|
| - use_info.type_check() == TypeCheckKind::kSigned32) &&
|
| - IsInt32Double(fv))) {
|
| - return MakeTruncatedInt32Constant(fv);
|
| - }
|
| + case IrOpcode::kFloat32Constant:
|
| + case IrOpcode::kFloat64Constant:
|
| + UNREACHABLE();
|
| break;
|
| - }
|
| - case IrOpcode::kNumberConstant:
|
| - case IrOpcode::kFloat64Constant: {
|
| + case IrOpcode::kNumberConstant: {
|
| double const fv = OpParameter<double>(node);
|
| if (use_info.type_check() == TypeCheckKind::kNone ||
|
| ((use_info.type_check() == TypeCheckKind::kSignedSmall ||
|
|
|