diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-05-31 15:00:48 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-06-10 20:47:58 -0700 |
| commit | bb526426e75ed456a7db6afa32447e5a76ac7ca1 (patch) | |
| tree | 8bfdcc7aac33275554b0216ade8cde0b80b2e698 /src/InternPool.zig | |
| parent | 870e3843c5736def21234ca8b7159b179985505c (diff) | |
| download | zig-bb526426e75ed456a7db6afa32447e5a76ac7ca1.tar.gz zig-bb526426e75ed456a7db6afa32447e5a76ac7ca1.zip | |
InternPool: remove memoized_decl
This is neither a type nor a value. Simplifies `addStrLit` as well as
the many places that switch on `InternPool.Key`.
This is a partial revert of bec29b9e498e08202679aa29a45dab2a06a69a1e.
Diffstat (limited to 'src/InternPool.zig')
| -rw-r--r-- | src/InternPool.zig | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/src/InternPool.zig b/src/InternPool.zig index 4fc7e3f4e7..59ff9e405b 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -221,8 +221,6 @@ pub const Key = union(enum) { /// An instance of a union. un: Union, - /// A declaration with a memoized value. - memoized_decl: MemoizedDecl, /// A comptime function call with a memoized result. memoized_call: Key.MemoizedCall, @@ -639,11 +637,6 @@ pub const Key = union(enum) { }; }; - pub const MemoizedDecl = struct { - val: Index, - decl: Module.Decl.Index, - }; - pub const MemoizedCall = struct { func: Module.Fn.Index, arg_values: []const Index, @@ -853,8 +846,6 @@ pub const Key = union(enum) { return hasher.final(); }, - .memoized_decl => |x| WyhashKing.hash(seed, asBytes(&x.val)), - .memoized_call => |memoized_call| { var hasher = std.hash.Wyhash.init(seed); std.hash.autoHash(&hasher, memoized_call.func); @@ -1134,11 +1125,6 @@ pub const Key = union(enum) { a_info.is_noinline == b_info.is_noinline; }, - .memoized_decl => |a_info| { - const b_info = b.memoized_decl; - return a_info.val == b_info.val; - }, - .memoized_call => |a_info| { const b_info = b.memoized_call; return a_info.func == b_info.func and @@ -1197,9 +1183,7 @@ pub const Key = union(enum) { .generic_poison => .generic_poison_type, }, - .memoized_decl, - .memoized_call, - => unreachable, + .memoized_call => unreachable, }; } }; @@ -1481,7 +1465,6 @@ pub const Index = enum(u32) { }, repeated: struct { data: *Repeated }, - memoized_decl: struct { data: *Key.MemoizedDecl }, memoized_call: struct { const @"data.args_len" = opaque {}; data: *MemoizedCall, @@ -1989,9 +1972,6 @@ pub const Tag = enum(u8) { /// data is extra index to `Repeated`. repeated, - /// A memoized declaration value. - /// data is extra index to `Key.MemoizedDecl` - memoized_decl, /// A memoized comptime function call result. /// data is extra index to `MemoizedCall` memoized_call, @@ -2004,7 +1984,6 @@ pub const Tag = enum(u8) { const ExternFunc = Key.ExternFunc; const Func = Key.Func; const Union = Key.Union; - const MemoizedDecl = Key.MemoizedDecl; const TypePointer = Key.PtrType; fn Payload(comptime tag: Tag) type { @@ -2082,7 +2061,6 @@ pub const Tag = enum(u8) { .bytes => Bytes, .aggregate => Aggregate, .repeated => Repeated, - .memoized_decl => MemoizedDecl, .memoized_call => MemoizedCall, }; } @@ -3000,7 +2978,6 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { .enum_literal => .{ .enum_literal = @intToEnum(NullTerminatedString, data) }, .enum_tag => .{ .enum_tag = ip.extraData(Tag.EnumTag, data) }, - .memoized_decl => .{ .memoized_decl = ip.extraData(Key.MemoizedDecl, data) }, .memoized_call => { const extra = ip.extraDataTrail(MemoizedCall, data); return .{ .memoized_call = .{ @@ -3995,14 +3972,6 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { }); }, - .memoized_decl => |memoized_decl| { - assert(memoized_decl.val != .none); - ip.items.appendAssumeCapacity(.{ - .tag = .memoized_decl, - .data = try ip.addExtra(gpa, memoized_decl), - }); - }, - .memoized_call => |memoized_call| { for (memoized_call.arg_values) |arg| assert(arg != .none); try ip.extra.ensureUnusedCapacity(gpa, @typeInfo(MemoizedCall).Struct.fields.len + @@ -5005,7 +4974,6 @@ fn dumpFallible(ip: *const InternPool, arena: Allocator) anyerror!void { .only_possible_value => 0, .union_value => @sizeOf(Key.Union), - .memoized_decl => @sizeOf(Key.MemoizedDecl), .memoized_call => b: { const info = ip.extraData(MemoizedCall, data); break :b @sizeOf(MemoizedCall) + (@sizeOf(Index) * info.args_len); @@ -5383,7 +5351,6 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index { .float_comptime_float => .comptime_float_type, - .memoized_decl => unreachable, .memoized_call => unreachable, }, @@ -5624,7 +5591,6 @@ pub fn zigTypeTagOrPoison(ip: *const InternPool, index: Index) error{GenericPois .aggregate, .repeated, // memoization, not types - .memoized_decl, .memoized_call, => unreachable, }, |
