| ... | @@ -13853,16 +13853,12 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co | ... | @@ -13853,16 +13853,12 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co |
| 13853 | try constants_block.end(); | 13853 | try constants_block.end(); |
| 13854 | } | 13854 | } |
| 13855 | | 13855 | |
| 13856 | const MetadataKind = enum(u8) { | | |
| 13857 | dbg = 0, | | |
| 13858 | }; | | |
| 13859 | | | |
| 13860 | // METADATA_KIND_BLOCK | 13856 | // METADATA_KIND_BLOCK |
| 13861 | if (!self.strip) { | 13857 | if (!self.strip) { |
| 13862 | const MetadataKindBlock = ir.MetadataKindBlock; | 13858 | const MetadataKindBlock = ir.MetadataKindBlock; |
| 13863 | var metadata_kind_block = try module_block.enterSubBlock(MetadataKindBlock); | 13859 | var metadata_kind_block = try module_block.enterSubBlock(MetadataKindBlock); |
| 13864 | | 13860 | |
| 13865 | inline for (@typeInfo(MetadataKind).Enum.fields) |field| { | 13861 | inline for (@typeInfo(ir.MetadataKind).Enum.fields) |field| { |
| 13866 | try metadata_kind_block.writeAbbrev(MetadataKindBlock.Kind{ | 13862 | try metadata_kind_block.writeAbbrev(MetadataKindBlock.Kind{ |
| 13867 | .id = field.value, | 13863 | .id = field.value, |
| 13868 | .name = field.name, | 13864 | .name = field.name, |
| ... | @@ -14296,6 +14292,25 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co | ... | @@ -14296,6 +14292,25 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co |
| 14296 | }); | 14292 | }); |
| 14297 | } | 14293 | } |
| 14298 | | 14294 | |
| | 14295 | // Write global attached metadata |
| | 14296 | { |
| | 14297 | for (globals.keys()) |global| { |
| | 14298 | const global_ptr = global.ptrConst(self); |
| | 14299 | if (global_ptr.dbg == .none) continue; |
| | 14300 | |
| | 14301 | switch (global_ptr.kind) { |
| | 14302 | .function => |f| if (f.ptrConst(self).instructions.len != 0) continue, |
| | 14303 | else => {}, |
| | 14304 | } |
| | 14305 | |
| | 14306 | try metadata_block.writeAbbrev(MetadataBlock.GlobalDeclAttachment{ |
| | 14307 | .value = @enumFromInt(constant_adapter.getConstantIndex(global.toConst())), |
| | 14308 | .kind = ir.MetadataKind.dbg, |
| | 14309 | .metadata = @enumFromInt(metadata_adapter.getMetadataIndex(global_ptr.dbg) - 1), |
| | 14310 | }); |
| | 14311 | } |
| | 14312 | } |
| | 14313 | |
| 14299 | try metadata_block.end(); | 14314 | try metadata_block.end(); |
| 14300 | } | 14315 | } |
| 14301 | | 14316 | |
| ... | @@ -14909,7 +14924,7 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co | ... | @@ -14909,7 +14924,7 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co |
| 14909 | var metadata_attach_block = try function_block.enterSubBlock(MetadataAttachmentBlock); | 14924 | var metadata_attach_block = try function_block.enterSubBlock(MetadataAttachmentBlock); |
| 14910 | | 14925 | |
| 14911 | try metadata_attach_block.writeAbbrev(MetadataAttachmentBlock.AttachmentSingle{ | 14926 | try metadata_attach_block.writeAbbrev(MetadataAttachmentBlock.AttachmentSingle{ |
| 14912 | .id = @intFromEnum(MetadataKind.dbg), | 14927 | .kind = ir.MetadataKind.dbg, |
| 14913 | .metadata = @enumFromInt(metadata_adapter.getMetadataIndex(dbg) - 1), | 14928 | .metadata = @enumFromInt(metadata_adapter.getMetadataIndex(dbg) - 1), |
| 14914 | }); | 14929 | }); |
| 14915 | | 14930 | |