Index: src/crankshaft/hydrogen-instructions.cc |
diff --git a/src/crankshaft/hydrogen-instructions.cc b/src/crankshaft/hydrogen-instructions.cc |
index b2eda347dae0a1e8405461e49bf615a859b2bcdd..bbe70874d79a76cbfac8feb21ccddbedbdf1ff5b 100644 |
--- a/src/crankshaft/hydrogen-instructions.cc |
+++ b/src/crankshaft/hydrogen-instructions.cc |
@@ -1425,12 +1425,12 @@ HValue* HBitwise::Canonicalize() { |
// static |
HInstruction* HAdd::New(Isolate* isolate, Zone* zone, HValue* context, |
- HValue* left, HValue* right, Strength strength, |
+ HValue* left, HValue* right, |
ExternalAddType external_add_type) { |
// For everything else, you should use the other factory method without |
// ExternalAddType. |
DCHECK_EQ(external_add_type, AddOfExternalAndTagged); |
- return new (zone) HAdd(context, left, right, strength, external_add_type); |
+ return new (zone) HAdd(context, left, right, external_add_type); |
} |
@@ -3358,7 +3358,7 @@ void HCompareNumericAndBranch::InferRepresentation( |
// (false). Therefore, any comparisons other than ordered relational |
// comparisons must cause a deopt when one of their arguments is undefined. |
// See also v8:1434 |
- if (Token::IsOrderedRelationalCompareOp(token_) && !is_strong(strength())) { |
+ if (Token::IsOrderedRelationalCompareOp(token_)) { |
SetFlag(kAllowUndefinedAsNaN); |
} |
} |
@@ -3925,24 +3925,23 @@ bool HStoreKeyed::NeedsCanonicalization() { |
#define H_CONSTANT_DOUBLE(val) \ |
HConstant::New(isolate, zone, context, static_cast<double>(val)) |
-#define DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HInstr, op) \ |
- HInstruction* HInstr::New(Isolate* isolate, Zone* zone, HValue* context, \ |
- HValue* left, HValue* right, Strength strength) { \ |
- if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { \ |
- HConstant* c_left = HConstant::cast(left); \ |
- HConstant* c_right = HConstant::cast(right); \ |
- if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { \ |
- double double_res = c_left->DoubleValue() op c_right->DoubleValue(); \ |
- if (IsInt32Double(double_res)) { \ |
- return H_CONSTANT_INT(double_res); \ |
- } \ |
- return H_CONSTANT_DOUBLE(double_res); \ |
- } \ |
- } \ |
- return new (zone) HInstr(context, left, right, strength); \ |
+#define DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HInstr, op) \ |
+ HInstruction* HInstr::New(Isolate* isolate, Zone* zone, HValue* context, \ |
+ HValue* left, HValue* right) { \ |
+ if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { \ |
+ HConstant* c_left = HConstant::cast(left); \ |
+ HConstant* c_right = HConstant::cast(right); \ |
+ if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { \ |
+ double double_res = c_left->DoubleValue() op c_right->DoubleValue(); \ |
+ if (IsInt32Double(double_res)) { \ |
+ return H_CONSTANT_INT(double_res); \ |
+ } \ |
+ return H_CONSTANT_DOUBLE(double_res); \ |
+ } \ |
+ } \ |
+ return new (zone) HInstr(context, left, right); \ |
} |
- |
DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HAdd, +) |
DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HMul, *) |
DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HSub, -) |
@@ -4168,9 +4167,8 @@ HInstruction* HMathMinMax::New(Isolate* isolate, Zone* zone, HValue* context, |
return new(zone) HMathMinMax(context, left, right, op); |
} |
- |
HInstruction* HMod::New(Isolate* isolate, Zone* zone, HValue* context, |
- HValue* left, HValue* right, Strength strength) { |
+ HValue* left, HValue* right) { |
if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { |
HConstant* c_left = HConstant::cast(left); |
HConstant* c_right = HConstant::cast(right); |
@@ -4189,12 +4187,11 @@ HInstruction* HMod::New(Isolate* isolate, Zone* zone, HValue* context, |
} |
} |
} |
- return new (zone) HMod(context, left, right, strength); |
+ return new (zone) HMod(context, left, right); |
} |
- |
HInstruction* HDiv::New(Isolate* isolate, Zone* zone, HValue* context, |
- HValue* left, HValue* right, Strength strength) { |
+ HValue* left, HValue* right) { |
// If left and right are constant values, try to return a constant value. |
if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { |
HConstant* c_left = HConstant::cast(left); |
@@ -4213,13 +4210,11 @@ HInstruction* HDiv::New(Isolate* isolate, Zone* zone, HValue* context, |
} |
} |
} |
- return new (zone) HDiv(context, left, right, strength); |
+ return new (zone) HDiv(context, left, right); |
} |
- |
HInstruction* HBitwise::New(Isolate* isolate, Zone* zone, HValue* context, |
- Token::Value op, HValue* left, HValue* right, |
- Strength strength) { |
+ Token::Value op, HValue* left, HValue* right) { |
if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { |
HConstant* c_left = HConstant::cast(left); |
HConstant* c_right = HConstant::cast(right); |
@@ -4244,24 +4239,22 @@ HInstruction* HBitwise::New(Isolate* isolate, Zone* zone, HValue* context, |
return H_CONSTANT_INT(result); |
} |
} |
- return new (zone) HBitwise(context, op, left, right, strength); |
+ return new (zone) HBitwise(context, op, left, right); |
} |
- |
-#define DEFINE_NEW_H_BITWISE_INSTR(HInstr, result) \ |
- HInstruction* HInstr::New(Isolate* isolate, Zone* zone, HValue* context, \ |
- HValue* left, HValue* right, Strength strength) { \ |
- if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { \ |
- HConstant* c_left = HConstant::cast(left); \ |
- HConstant* c_right = HConstant::cast(right); \ |
- if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { \ |
- return H_CONSTANT_INT(result); \ |
- } \ |
- } \ |
- return new (zone) HInstr(context, left, right, strength); \ |
+#define DEFINE_NEW_H_BITWISE_INSTR(HInstr, result) \ |
+ HInstruction* HInstr::New(Isolate* isolate, Zone* zone, HValue* context, \ |
+ HValue* left, HValue* right) { \ |
+ if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { \ |
+ HConstant* c_left = HConstant::cast(left); \ |
+ HConstant* c_right = HConstant::cast(right); \ |
+ if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { \ |
+ return H_CONSTANT_INT(result); \ |
+ } \ |
+ } \ |
+ return new (zone) HInstr(context, left, right); \ |
} |
- |
DEFINE_NEW_H_BITWISE_INSTR(HSar, |
c_left->NumberValueAsInteger32() >> (c_right->NumberValueAsInteger32() & 0x1f)) |
DEFINE_NEW_H_BITWISE_INSTR(HShl, |
@@ -4269,9 +4262,8 @@ c_left->NumberValueAsInteger32() << (c_right->NumberValueAsInteger32() & 0x1f)) |
#undef DEFINE_NEW_H_BITWISE_INSTR |
- |
HInstruction* HShr::New(Isolate* isolate, Zone* zone, HValue* context, |
- HValue* left, HValue* right, Strength strength) { |
+ HValue* left, HValue* right) { |
if (FLAG_fold_constants && left->IsConstant() && right->IsConstant()) { |
HConstant* c_left = HConstant::cast(left); |
HConstant* c_right = HConstant::cast(right); |
@@ -4284,7 +4276,7 @@ HInstruction* HShr::New(Isolate* isolate, Zone* zone, HValue* context, |
return H_CONSTANT_INT(static_cast<uint32_t>(left_val) >> right_val); |
} |
} |
- return new (zone) HShr(context, left, right, strength); |
+ return new (zone) HShr(context, left, right); |
} |