[bigint,compiler] Pass BigInt binop feedback through to Turbofan.

It's still unused there but now at least it ends up in the
feedback vector.

Bug: v8:6791
Change-Id: I0114d317830b80be4715c74dc5a8950fff4d3485
Reviewed-on: https://chromium-review.googlesource.com/829136
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50194}
This commit is contained in:
Georg Neis 2017-12-15 14:03:11 +01:00 committed by Commit Bot
parent e04238b744
commit ee40f4efa5
5 changed files with 8 additions and 3 deletions

View File

@ -622,6 +622,7 @@ struct JSOperatorGlobalCache final {
Name##Operator<BinaryOperationHint::kNumberOrOddball> \
k##Name##NumberOrOddballOperator; \
Name##Operator<BinaryOperationHint::kString> k##Name##StringOperator; \
Name##Operator<BinaryOperationHint::kBigInt> k##Name##BigIntOperator; \
Name##Operator<BinaryOperationHint::kAny> k##Name##AnyOperator;
BINARY_OP_LIST(BINARY_OP)
#undef BINARY_OP
@ -681,6 +682,8 @@ CACHED_OP_LIST(CACHED_OP)
return &cache_.k##Name##NumberOrOddballOperator; \
case BinaryOperationHint::kString: \
return &cache_.k##Name##StringOperator; \
case BinaryOperationHint::kBigInt: \
return &cache_.k##Name##BigIntOperator; \
case BinaryOperationHint::kAny: \
return &cache_.k##Name##AnyOperator; \
} \

View File

@ -38,6 +38,7 @@ bool BinaryOperationHintToNumberOperationHint(
case BinaryOperationHint::kAny:
case BinaryOperationHint::kNone:
case BinaryOperationHint::kString:
case BinaryOperationHint::kBigInt:
break;
}
return false;

View File

@ -172,9 +172,7 @@ BinaryOperationHint BinaryOperationHintFromFeedback(int type_feedback) {
case BinaryOperationFeedback::kString:
return BinaryOperationHint::kString;
case BinaryOperationFeedback::kBigInt:
// TODO(jarin/jkummerow/neis): Support BigInts in TF.
// Fall through for now.
case BinaryOperationFeedback::kAny:
return BinaryOperationHint::kBigInt;
default:
return BinaryOperationHint::kAny;
}

View File

@ -23,6 +23,8 @@ std::ostream& operator<<(std::ostream& os, BinaryOperationHint hint) {
return os << "NumberOrOddball";
case BinaryOperationHint::kString:
return os << "String";
case BinaryOperationHint::kBigInt:
return os << "BigInt";
case BinaryOperationHint::kAny:
return os << "Any";
}

View File

@ -20,6 +20,7 @@ enum class BinaryOperationHint : uint8_t {
kNumber,
kNumberOrOddball,
kString,
kBigInt,
kAny
};