summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h59
1 files changed, 0 insertions, 59 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 8c0e48da2..d0f632829 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -712,8 +712,6 @@ public:
RefTestId,
RefCastId,
BrOnId,
- RttCanonId,
- RttSubId,
StructNewId,
StructGetId,
StructSetId,
@@ -1492,16 +1490,9 @@ public:
Expression* ref;
- // If rtt is provided then this is a dynamic test with an rtt. If nullptr then
- // this is a static cast and intendedType is set, and it contains the type we
- // intend to cast to.
- Expression* rtt = nullptr;
HeapType intendedType;
void finalize();
-
- // Returns the type we intend to cast to.
- HeapType getIntendedType();
};
class RefCast : public SpecificExpression<Expression::RefCastId> {
@@ -1510,8 +1501,6 @@ public:
Expression* ref;
- // See above with RefTest.
- Expression* rtt = nullptr;
HeapType intendedType;
// Support the unsafe `ref.cast_nop_static` to enable precise cast overhead
@@ -1520,9 +1509,6 @@ public:
Safety safety = Safe;
void finalize();
-
- // Returns the type we intend to cast to.
- HeapType getIntendedType();
};
class BrOn : public SpecificExpression<Expression::BrOnId> {
@@ -1533,55 +1519,18 @@ public:
Name name;
Expression* ref;
- // BrOnCast* has, like RefCast and RefTest, either an rtt or a static intended
- // type.
- Expression* rtt = nullptr;
HeapType intendedType;
- // TODO: BrOnNull also has an optional extra value in the spec, which we do
- // not support. See also the discussion on
- // https://github.com/WebAssembly/function-references/issues/45
- // - depending on the decision there, we may want to move BrOnNull into
- // Break or a new class of its own.
-
void finalize();
- // Returns the type we intend to cast to. Relevant only for the cast variants.
- HeapType getIntendedType();
-
// Returns the type sent on the branch, if it is taken.
Type getSentType();
};
-class RttCanon : public SpecificExpression<Expression::RttCanonId> {
-public:
- RttCanon(MixedArena& allocator) {}
-
- void finalize();
-};
-
-class RttSub : public SpecificExpression<Expression::RttSubId> {
-public:
- RttSub(MixedArena& allocator) {}
-
- Expression* parent;
-
- // rtt.fresh_sub is like rtt.sub, but never caching or canonicalizing (i.e.,
- // it always returns a fresh RTT, non-identical to any other RTT in the
- // system).
- bool fresh = false;
-
- void finalize();
-};
-
class StructNew : public SpecificExpression<Expression::StructNewId> {
public:
StructNew(MixedArena& allocator) : operands(allocator) {}
- // A dynamic StructNew has an rtt, while a static one declares the type using
- // the type field.
- Expression* rtt = nullptr;
-
// A struct.new_with_default has empty operands. This does leave the case of a
// struct with no fields ambiguous, but it doesn't make a difference in that
// case, and binaryen doesn't guarantee roundtripping binaries anyhow.
@@ -1625,10 +1574,6 @@ public:
Expression* init = nullptr;
Expression* size;
- // A dynamic ArrayNew has an rtt, while a static one declares the type using
- // the type field.
- Expression* rtt = nullptr;
-
bool isWithDefault() { return !init; }
void finalize();
@@ -1640,10 +1585,6 @@ public:
ExpressionList values;
- // A dynamic ArrayInit has an rtt, while a static one declares the type using
- // the type field.
- Expression* rtt = nullptr;
-
void finalize();
};