diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2022-08-04 17:05:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-05 00:05:54 +0000 |
commit | 6759371b5239efa3daa9d988455abdd14a8b18ca (patch) | |
tree | 0c3a3e371ed742bdbd790f7344ec86e8536bc167 /src/wasm-binary.h | |
parent | 9534e6927c41f4a6a5d06d58d00c271c9f066e9a (diff) | |
download | binaryen-6759371b5239efa3daa9d988455abdd14a8b18ca.tar.gz binaryen-6759371b5239efa3daa9d988455abdd14a8b18ca.tar.bz2 binaryen-6759371b5239efa3daa9d988455abdd14a8b18ca.zip |
Remove RTTs (#4848)
RTTs were removed from the GC spec and if they are added back in in the future,
they will be heap types rather than value types as in our implementation.
Updating our implementation to have RTTs be heap types would have been more work
than deleting them for questionable benefit since we don't know how long it will
be before they are specced again.
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r-- | src/wasm-binary.h | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 200252da7..6b05c38cc 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -373,10 +373,6 @@ enum EncodedType { nonnullable = -0x15, // 0x6b // integer reference type i31ref = -0x16, // 0x6a - // run-time type info type, with depth index n - rtt_n = -0x17, // 0x69 - // run-time type info type, without depth index n - rtt = -0x18, // 0x68 // gc and string reference types dataref = -0x19, // 0x67 stringref = -0x1c, // 0x64 @@ -1089,36 +1085,24 @@ enum ASTNodes { // gc opcodes RefEq = 0xd5, - StructNewWithRtt = 0x01, - StructNewDefaultWithRtt = 0x02, StructGet = 0x03, StructGetS = 0x04, StructGetU = 0x05, StructSet = 0x06, StructNew = 0x07, StructNewDefault = 0x08, - ArrayNewWithRtt = 0x11, - ArrayNewDefaultWithRtt = 0x12, ArrayGet = 0x13, ArrayGetS = 0x14, ArrayGetU = 0x15, ArraySet = 0x16, ArrayLen = 0x17, ArrayCopy = 0x18, - ArrayInit = 0x19, ArrayInitStatic = 0x1a, ArrayNew = 0x1b, ArrayNewDefault = 0x1c, I31New = 0x20, I31GetS = 0x21, I31GetU = 0x22, - RttCanon = 0x30, - RttSub = 0x31, - RttFreshSub = 0x32, - RefTest = 0x40, - RefCast = 0x41, - BrOnCast = 0x42, - BrOnCastFail = 0x43, RefTestStatic = 0x44, RefCastStatic = 0x45, BrOnCastStatic = 0x46, @@ -1708,8 +1692,6 @@ public: bool maybeVisitRefTest(Expression*& out, uint32_t code); bool maybeVisitRefCast(Expression*& out, uint32_t code); bool maybeVisitBrOn(Expression*& out, uint32_t code); - bool maybeVisitRttCanon(Expression*& out, uint32_t code); - bool maybeVisitRttSub(Expression*& out, uint32_t code); bool maybeVisitStructNew(Expression*& out, uint32_t code); bool maybeVisitStructGet(Expression*& out, uint32_t code); bool maybeVisitStructSet(Expression*& out, uint32_t code); @@ -1755,7 +1737,7 @@ public: // Struct/Array instructions have an unnecessary heap type that is just for // validation (except for the case of unreachability, but that's not a problem - // anyhow, we can ignore it there). That is, we also have a reference / rtt + // anyhow, we can ignore it there). That is, we also have a reference typed // child from which we can infer the type anyhow, and we just need to check // that type is the same. void validateHeapTypeUsingChild(Expression* child, HeapType heapType); |