Commit 72bf3ad9 authored by bmeurer@chromium.org's avatar bmeurer@chromium.org

[turbofan] Remove extra attributes from SimplifiedOperatorBuilder methods.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/560103003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent be33a79d
......@@ -129,7 +129,7 @@ MATCHER(IsNaN, std::string(negation ? "isn't" : "is") + " NaN") {
namespace {
struct UnaryOperator {
const Operator* (SimplifiedOperatorBuilder::*constructor)() const;
const Operator* (SimplifiedOperatorBuilder::*constructor)();
const char* constructor_name;
};
......
......@@ -18,7 +18,7 @@ namespace compiler {
namespace {
struct PureOperator {
const Operator* (SimplifiedOperatorBuilder::*constructor)() const;
const Operator* (SimplifiedOperatorBuilder::*constructor)();
IrOpcode::Value opcode;
Operator::Properties properties;
int value_input_count;
......
......@@ -117,15 +117,13 @@ SimplifiedOperatorBuilder::SimplifiedOperatorBuilder(Zone* zone)
: impl_(kImpl.Get()), zone_(zone) {}
#define PURE(Name, properties, input_count) \
const Operator* SimplifiedOperatorBuilder::Name() const { \
return &impl_.k##Name; \
}
#define PURE(Name, properties, input_count) \
const Operator* SimplifiedOperatorBuilder::Name() { return &impl_.k##Name; }
PURE_OP_LIST(PURE)
#undef PURE
const Operator* SimplifiedOperatorBuilder::ReferenceEqual(Type* type) const {
const Operator* SimplifiedOperatorBuilder::ReferenceEqual(Type* type) {
// TODO(titzer): What about the type parameter?
return new (zone()) SimpleOperator(IrOpcode::kReferenceEqual,
Operator::kCommutative | Operator::kPure,
......@@ -133,11 +131,11 @@ const Operator* SimplifiedOperatorBuilder::ReferenceEqual(Type* type) const {
}
#define ACCESS(Name, Type, properties, input_count, output_count) \
const Operator* SimplifiedOperatorBuilder::Name(const Type& access) const { \
return new (zone()) \
Operator1<Type>(IrOpcode::k##Name, Operator::kNoThrow | properties, \
input_count, output_count, #Name, access); \
#define ACCESS(Name, Type, properties, input_count, output_count) \
const Operator* SimplifiedOperatorBuilder::Name(const Type& access) { \
return new (zone()) \
Operator1<Type>(IrOpcode::k##Name, Operator::kNoThrow | properties, \
input_count, output_count, #Name, access); \
}
ACCESS_OP_LIST(ACCESS)
#undef ACCESS
......
......@@ -90,39 +90,39 @@ class SimplifiedOperatorBuilder FINAL {
public:
explicit SimplifiedOperatorBuilder(Zone* zone);
const Operator* BooleanNot() const WARN_UNUSED_RESULT;
const Operator* NumberEqual() const WARN_UNUSED_RESULT;
const Operator* NumberLessThan() const WARN_UNUSED_RESULT;
const Operator* NumberLessThanOrEqual() const WARN_UNUSED_RESULT;
const Operator* NumberAdd() const WARN_UNUSED_RESULT;
const Operator* NumberSubtract() const WARN_UNUSED_RESULT;
const Operator* NumberMultiply() const WARN_UNUSED_RESULT;
const Operator* NumberDivide() const WARN_UNUSED_RESULT;
const Operator* NumberModulus() const WARN_UNUSED_RESULT;
const Operator* NumberToInt32() const WARN_UNUSED_RESULT;
const Operator* NumberToUint32() const WARN_UNUSED_RESULT;
const Operator* ReferenceEqual(Type* type) const WARN_UNUSED_RESULT;
const Operator* StringEqual() const WARN_UNUSED_RESULT;
const Operator* StringLessThan() const WARN_UNUSED_RESULT;
const Operator* StringLessThanOrEqual() const WARN_UNUSED_RESULT;
const Operator* StringAdd() const WARN_UNUSED_RESULT;
const Operator* ChangeTaggedToInt32() const WARN_UNUSED_RESULT;
const Operator* ChangeTaggedToUint32() const WARN_UNUSED_RESULT;
const Operator* ChangeTaggedToFloat64() const WARN_UNUSED_RESULT;
const Operator* ChangeInt32ToTagged() const WARN_UNUSED_RESULT;
const Operator* ChangeUint32ToTagged() const WARN_UNUSED_RESULT;
const Operator* ChangeFloat64ToTagged() const WARN_UNUSED_RESULT;
const Operator* ChangeBoolToBit() const WARN_UNUSED_RESULT;
const Operator* ChangeBitToBool() const WARN_UNUSED_RESULT;
const Operator* LoadField(const FieldAccess&) const WARN_UNUSED_RESULT;
const Operator* StoreField(const FieldAccess&) const WARN_UNUSED_RESULT;
const Operator* LoadElement(const ElementAccess&) const WARN_UNUSED_RESULT;
const Operator* StoreElement(const ElementAccess&) const WARN_UNUSED_RESULT;
const Operator* BooleanNot();
const Operator* NumberEqual();
const Operator* NumberLessThan();
const Operator* NumberLessThanOrEqual();
const Operator* NumberAdd();
const Operator* NumberSubtract();
const Operator* NumberMultiply();
const Operator* NumberDivide();
const Operator* NumberModulus();
const Operator* NumberToInt32();
const Operator* NumberToUint32();
const Operator* ReferenceEqual(Type* type);
const Operator* StringEqual();
const Operator* StringLessThan();
const Operator* StringLessThanOrEqual();
const Operator* StringAdd();
const Operator* ChangeTaggedToInt32();
const Operator* ChangeTaggedToUint32();
const Operator* ChangeTaggedToFloat64();
const Operator* ChangeInt32ToTagged();
const Operator* ChangeUint32ToTagged();
const Operator* ChangeFloat64ToTagged();
const Operator* ChangeBoolToBit();
const Operator* ChangeBitToBool();
const Operator* LoadField(const FieldAccess&);
const Operator* StoreField(const FieldAccess&);
const Operator* LoadElement(const ElementAccess&);
const Operator* StoreElement(const ElementAccess&);
private:
Zone* zone() const { return zone_; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment