[wasm][cleanup] Rename kWasmVar to kWasmBottom

In the context of the reference types proposal, the imaginary sub type
of all types was called "bot". With this CL we use this name now also
in V8.

R=clemensh@chromium.org

Bug: v8:9396
Change-Id: I65a2a177ae2af97e66549e7a5b1457595b04a1d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1675950
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62361}
This commit is contained in:
Andreas Haas 2019-06-25 16:07:35 +02:00 committed by Commit Bot
parent b3f99025e8
commit fdd12a489c
6 changed files with 25 additions and 25 deletions

View File

@ -223,7 +223,7 @@ class LiftoffCompiler {
return kAnyRef;
case kWasmExceptRef:
return kExceptionHandling;
case kWasmVar:
case kWasmBottom:
return kMultiValue;
default:
return kOtherReason;

View File

@ -240,7 +240,7 @@ inline bool decode_local_type(uint8_t val, ValueType* result) {
*result = kWasmExceptRef;
return true;
default:
*result = kWasmVar;
*result = kWasmBottom;
return false;
}
}
@ -297,20 +297,20 @@ struct BlockTypeImmediate {
}
uint32_t in_arity() const {
if (type != kWasmVar) return 0;
if (type != kWasmBottom) return 0;
return static_cast<uint32_t>(sig->parameter_count());
}
uint32_t out_arity() const {
if (type == kWasmStmt) return 0;
if (type != kWasmVar) return 1;
if (type != kWasmBottom) return 1;
return static_cast<uint32_t>(sig->return_count());
}
ValueType in_type(uint32_t index) {
DCHECK_EQ(kWasmVar, type);
DCHECK_EQ(kWasmBottom, type);
return sig->GetParam(index);
}
ValueType out_type(uint32_t index) {
if (type == kWasmVar) return sig->GetReturn(index);
if (type == kWasmBottom) return sig->GetReturn(index);
DCHECK_NE(kWasmStmt, type);
DCHECK_EQ(0, index);
return type;
@ -1122,7 +1122,7 @@ class WasmDecoder : public Decoder {
}
inline bool Complete(BlockTypeImmediate<validate>& imm) {
if (imm.type != kWasmVar) return true;
if (imm.type != kWasmBottom) return true;
if (!VALIDATE(module_ && imm.sig_index < module_->signatures.size())) {
return false;
}
@ -1658,7 +1658,7 @@ class WasmFullDecoder : public WasmDecoder<validate> {
ZoneVector<Control> control_; // stack of blocks, loops, and ifs.
static Value UnreachableValue(const uint8_t* pc) {
return Value{pc, kWasmVar};
return Value{pc, kWasmBottom};
}
bool CheckHasMemory() {
@ -1926,7 +1926,7 @@ class WasmFullDecoder : public WasmDecoder<validate> {
auto cond = Pop(2, kWasmI32);
auto fval = Pop();
auto tval = Pop(0, fval.type);
ValueType type = tval.type == kWasmVar ? fval.type : tval.type;
ValueType type = tval.type == kWasmBottom ? fval.type : tval.type;
if (ValueTypes::IsSubType(type, kWasmAnyRef)) {
this->error(
"select without type is only valid for value type inputs");
@ -2929,7 +2929,7 @@ class WasmFullDecoder : public WasmDecoder<validate> {
V8_INLINE Value Pop(int index, ValueType expected) {
auto val = Pop();
if (!VALIDATE(ValueTypes::IsSubType(val.type, expected) ||
val.type == kWasmVar || expected == kWasmVar)) {
val.type == kWasmBottom || expected == kWasmBottom)) {
this->errorf(val.pc, "%s[%d] expected type %s, found %s of type %s",
SafeOpcodeNameAt(this->pc_), index,
ValueTypes::TypeName(expected), SafeOpcodeNameAt(val.pc),

View File

@ -717,7 +717,7 @@ class WasmGraphBuildingInterface {
Value& val = stack_values[i];
Value& old = (*merge)[i];
DCHECK_NOT_NULL(val.node);
DCHECK(val.type == kWasmVar ||
DCHECK(val.type == kWasmBottom ||
ValueTypes::MachineRepresentationFor(val.type) ==
ValueTypes::MachineRepresentationFor(old.type));
old.node = first ? val.node

View File

@ -20,12 +20,12 @@ namespace wasm {
// is a subtype of the other type.
//
// AnyRef
// / \
// AnyFunc ExceptRef
// \ /
// / \
// AnyFunc ExceptRef
// \ /
// I32 I64 F32 F64 NullRef
// \ \ \ \ /
// ------------ Var (Bot)
// \ \ \ \ /
// ------------ Bottom
enum ValueType : uint8_t {
kWasmStmt,
kWasmI32,
@ -37,7 +37,7 @@ enum ValueType : uint8_t {
kWasmAnyFunc,
kWasmNullRef,
kWasmExceptRef,
kWasmVar,
kWasmBottom,
};
using FunctionSig = Signature<ValueType>;
@ -208,7 +208,7 @@ class V8_EXPORT_PRIVATE ValueTypes {
static inline ValueType CommonSubType(ValueType a, ValueType b) {
if (a == b) return a;
// The only sub type of any value type is {bot}.
if (!IsReferenceType(a) || !IsReferenceType(b)) return kWasmVar;
if (!IsReferenceType(a) || !IsReferenceType(b)) return kWasmBottom;
if (IsSubType(a, b)) return a;
if (IsSubType(b, a)) return b;
// {a} and {b} are not each other's subtype. The biggest sub-type of all
@ -367,7 +367,7 @@ class V8_EXPORT_PRIVATE ValueTypes {
return 's';
case kWasmStmt:
return 'v';
case kWasmVar:
case kWasmBottom:
return '*';
default:
return '?';
@ -396,8 +396,8 @@ class V8_EXPORT_PRIVATE ValueTypes {
return "s128";
case kWasmStmt:
return "<stmt>";
case kWasmVar:
return "<var>";
case kWasmBottom:
return "<bot>";
default:
return "<unknown>";
}

View File

@ -821,7 +821,7 @@ class SideTable : public ZoneObject {
bool is_loop = opcode == kExprLoop;
BlockTypeImmediate<Decoder::kNoValidate> imm(kAllWasmFeatures, &i,
i.pc());
if (imm.type == kWasmVar) {
if (imm.type == kWasmBottom) {
imm.sig = module->signatures[imm.sig_index];
}
TRACE("control @%u: %s, arity %d->%d\n", i.pc_offset(),
@ -837,7 +837,7 @@ class SideTable : public ZoneObject {
case kExprIf: {
BlockTypeImmediate<Decoder::kNoValidate> imm(kAllWasmFeatures, &i,
i.pc());
if (imm.type == kWasmVar) {
if (imm.type == kWasmBottom) {
imm.sig = module->signatures[imm.sig_index];
}
TRACE("control @%u: If, arity %d->%d\n", i.pc_offset(),
@ -870,7 +870,7 @@ class SideTable : public ZoneObject {
case kExprTry: {
BlockTypeImmediate<Decoder::kNoValidate> imm(kAllWasmFeatures, &i,
i.pc());
if (imm.type == kWasmVar) {
if (imm.type == kWasmBottom) {
imm.sig = module->signatures[imm.sig_index];
}
TRACE("control @%u: Try, arity %d->%d\n", i.pc_offset(),

View File

@ -105,7 +105,7 @@ void PrintWasmText(const WasmModule* module, const ModuleWireBytes& wire_bytes,
BlockTypeImmediate<Decoder::kNoValidate> imm(kAllWasmFeatures, &i,
i.pc());
os << WasmOpcodes::OpcodeName(opcode);
if (imm.type == kWasmVar) {
if (imm.type == kWasmBottom) {
os << " (type " << imm.sig_index << ")";
} else if (imm.out_arity() > 0) {
os << " " << ValueTypes::TypeName(imm.out_type(0));