Reviewers: Yang,
Message:
just some small refactoring
Description:
Use New<> constructors in BuildBinaryOperation.
BUG=
Please review this at https://codereview.chromium.org/24267012/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+24, -19 lines):
M src/hydrogen-instructions.h
M src/hydrogen.h
M src/hydrogen.cc
Index: src/hydrogen-instructions.h
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index
b7c064db4a6105803b8e3369774333721642b60a..6783694f79467f50c950330f8bed8fa3347610a3
100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -4961,9 +4961,11 @@ class HSar V8_FINAL : public HBitwiseBinaryOperation
{
class HRor V8_FINAL : public HBitwiseBinaryOperation {
public:
- HRor(HValue* context, HValue* left, HValue* right)
- : HBitwiseBinaryOperation(context, left, right) {
- ChangeRepresentation(Representation::Integer32());
+ static HInstruction* New(Zone* zone,
+ HValue* context,
+ HValue* left,
+ HValue* right) {
+ return new(zone) HRor(context, left, right);
}
virtual void UpdateRepresentation(Representation new_rep,
@@ -4977,6 +4979,12 @@ class HRor V8_FINAL : public HBitwiseBinaryOperation
{
protected:
virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; }
+
+ private:
+ HRor(HValue* context, HValue* left, HValue* right)
+ : HBitwiseBinaryOperation(context, left, right) {
+ ChangeRepresentation(Representation::Integer32());
+ }
};
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index
b49f2bd5a2c18394f59dd4c6bf3504f44aba5b33..c533f00b377f491ea8af2e438d6c3a0f17e60063
100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -7714,14 +7714,13 @@ HInstruction*
HOptimizedGraphBuilder::BuildBinaryOperation(
BinaryOperation* expr,
HValue* left,
HValue* right) {
- HValue* context = environment()->context();
Handle<Type> left_type = expr->left()->bounds().lower;
Handle<Type> right_type = expr->right()->bounds().lower;
Handle<Type> result_type = expr->bounds().lower;
Maybe<int> fixed_right_arg = expr->fixed_right_arg();
return HGraphBuilder::BuildBinaryOperation(expr->op(), left, right,
- left_type, right_type, result_type, fixed_right_arg, context);
+ left_type, right_type, result_type, fixed_right_arg);
}
@@ -7732,8 +7731,7 @@ HInstruction* HGraphBuilder::BuildBinaryOperation(
Handle<Type> left_type,
Handle<Type> right_type,
Handle<Type> result_type,
- Maybe<int> fixed_right_arg,
- HValue* context) {
+ Maybe<int> fixed_right_arg) {
Representation left_rep = Representation::FromType(left_type);
Representation right_rep = Representation::FromType(right_type);
@@ -7784,22 +7782,22 @@ HInstruction* HGraphBuilder::BuildBinaryOperation(
flags = (flags == STRING_ADD_CHECK_BOTH)
? STRING_ADD_CHECK_LEFT : STRING_ADD_CHECK_NONE;
}
- instr = HStringAdd::New(zone(), context, left, right, flags);
+ instr = NewUncasted<HStringAdd>(left, right, flags);
} else {
- instr = HAdd::New(zone(), context, left, right);
+ instr = NewUncasted<HAdd>(left, right);
}
break;
case Token::SUB:
- instr = HSub::New(zone(), context, left, right);
+ instr = NewUncasted<HSub>(left, right);
break;
case Token::MUL:
- instr = HMul::New(zone(), context, left, right);
+ instr = NewUncasted<HMul>(left, right);
break;
case Token::MOD:
- instr = HMod::New(zone(), context, left, right, fixed_right_arg);
+ instr = NewUncasted<HMod>(left, right, fixed_right_arg);
break;
case Token::DIV:
- instr = HDiv::New(zone(), context, left, right);
+ instr = NewUncasted<HDiv>(left, right);
break;
case Token::BIT_XOR:
case Token::BIT_AND:
@@ -7810,24 +7808,24 @@ HInstruction* HGraphBuilder::BuildBinaryOperation(
if (left_type->Is(Type::Signed32()) &&
right_type->Is(Type::Signed32()) &&
MatchRotateRight(left, right, &operand, &shift_amount)) {
- instr = new(zone()) HRor(context, operand, shift_amount);
+ instr = NewUncasted<HRor>(operand, shift_amount);
} else {
instr = NewUncasted<HBitwise>(op, left, right);
}
break;
}
case Token::SAR:
- instr = HSar::New(zone(), context, left, right);
+ instr = NewUncasted<HSar>(left, right);
break;
case Token::SHR:
- instr = HShr::New(zone(), context, left, right);
+ instr = NewUncasted<HShr>(left, right);
if (FLAG_opt_safe_uint32_operations && instr->IsShr() &&
CanBeZero(right)) {
graph()->RecordUint32Instruction(instr);
}
break;
case Token::SHL:
- instr = HShl::New(zone(), context, left, right);
+ instr = NewUncasted<HShl>(left, right);
break;
default:
UNREACHABLE();
Index: src/hydrogen.h
diff --git a/src/hydrogen.h b/src/hydrogen.h
index
93600207a38645137a2aa31452c8c948b304920e..d0e47aab71c780dab0bac2adfcac115781648224
100644
--- a/src/hydrogen.h
+++ b/src/hydrogen.h
@@ -1272,8 +1272,7 @@ class HGraphBuilder {
Handle<Type> left_type,
Handle<Type> right_type,
Handle<Type> result_type,
- Maybe<int> fixed_right_arg,
- HValue* context);
+ Maybe<int> fixed_right_arg);
HLoadNamedField* AddLoadFixedArrayLength(HValue *object);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.