From 0fdbb1d33810d84bbd9a408b3486bff0d9015989 Mon Sep 17 00:00:00 2001 From: Daniel Wirtz Date: Mon, 17 Aug 2020 19:50:37 +0200 Subject: Prepare for compound types that are single but not basic (#3046) As a follow-up to https://github.com/WebAssembly/binaryen/pull/3012#pullrequestreview-459686171 this PR prepares for the new compound Signature, Struct and Array types that are single but not basic. This includes: * Renames `Type::getSingle` to `Type::getBasic` (NFC). Previously, its name was not representing its implementation (`isSingle` excluded `none` and `unreachable` while `getSingle` didn't, i.e. `getSingle` really was `getBasic`). Note that a hypothetical `Type::getSingle` cannot return `ValueType` anyway (new compound types are single but don't map to `ValueType`), so I figured it's best to skip implementing it until we actually need it. * Marks locations where we are (still) assuming that all single types are basic types, as suggested in https://github.com/WebAssembly/binaryen/pull/3012#discussion_r465356708, but using a macro, so we get useful errors once we start implementing the new types and can quickly traverse the affected locations. The macro is added where * there used to be a `switch (type.getSingle())` or similar that handled any basic type (NFC), but in the future will also have to handle single types that are not basic types. * we are not dealing with `Unary`, `Binary`, `Load`, `Store` or `AtomicXY` instructions, since these don't deal with compound types anyway. --- src/passes/AlignmentLowering.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/passes/AlignmentLowering.cpp') diff --git a/src/passes/AlignmentLowering.cpp b/src/passes/AlignmentLowering.cpp index 26815b389..b12e49c4f 100644 --- a/src/passes/AlignmentLowering.cpp +++ b/src/passes/AlignmentLowering.cpp @@ -232,7 +232,7 @@ struct AlignmentLowering : public WalkerPass> { return; } Builder builder(*getModule()); - auto type = curr->type.getSingle(); + auto type = curr->type.getBasic(); Expression* replacement; switch (type) { default: @@ -303,7 +303,7 @@ struct AlignmentLowering : public WalkerPass> { // the operation is unaligned. return; } - auto type = curr->value->type.getSingle(); + auto type = curr->value->type.getBasic(); Expression* replacement; switch (type) { default: -- cgit v1.2.3