Commit 5c44934e20
Changed files (10)
src/codegen/llvm/bitcode_writer.zig → lib/std/zig/llvm/bitcode_writer.zig
@@ -1,4 +1,4 @@
-const std = @import("std");
+const std = @import("../../std.zig");
pub const AbbrevOp = union(enum) {
literal: u32, // 0
src/codegen/llvm/BitcodeReader.zig → lib/std/zig/llvm/BitcodeReader.zig
@@ -510,6 +510,6 @@ const Abbrev = struct {
};
const assert = std.debug.assert;
-const std = @import("std");
+const std = @import("../../std.zig");
const BitcodeReader = @This();
src/codegen/llvm/Builder.zig → lib/std/zig/llvm/Builder.zig
@@ -13168,7 +13168,12 @@ fn metadataConstantAssumeCapacity(self: *Builder, constant: Constant) Metadata {
return @enumFromInt(gop.index);
}
-pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]const u32 {
+pub const Producer = struct {
+ name: []const u8,
+ version: std.SemanticVersion,
+};
+
+pub fn toBitcode(self: *Builder, allocator: Allocator, producer: Producer) bitcode_writer.Error![]const u32 {
const BitcodeWriter = bitcode_writer.BitcodeWriter(&.{ Type, FunctionAttributes });
var bitcode = BitcodeWriter.init(allocator, .{
std.math.log2_int_ceil(usize, self.type_items.items.len),
@@ -13187,14 +13192,15 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co
const Identification = ir.Identification;
var identification_block = try bitcode.enterTopBlock(Identification);
- const producer = try std.fmt.allocPrint(self.gpa, "zig {d}.{d}.{d}", .{
- build_options.semver.major,
- build_options.semver.minor,
- build_options.semver.patch,
+ const producer_str = try std.fmt.allocPrint(self.gpa, "{s} {d}.{d}.{d}", .{
+ producer.name,
+ producer.version.major,
+ producer.version.minor,
+ producer.version.patch,
});
- defer self.gpa.free(producer);
+ defer self.gpa.free(producer_str);
- try identification_block.writeAbbrev(Identification.Version{ .string = producer });
+ try identification_block.writeAbbrev(Identification.Version{ .string = producer_str });
try identification_block.writeAbbrev(Identification.Epoch{ .epoch = 0 });
try identification_block.end();
@@ -15216,10 +15222,9 @@ pub fn toBitcode(self: *Builder, allocator: Allocator) bitcode_writer.Error![]co
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const bitcode_writer = @import("bitcode_writer.zig");
-const build_options = @import("build_options");
const Builder = @This();
const builtin = @import("builtin");
const DW = std.dwarf;
const ir = @import("ir.zig");
const log = std.log.scoped(.llvm);
-const std = @import("std");
+const std = @import("../../std.zig");
src/codegen/llvm/ir.zig → lib/std/zig/llvm/ir.zig
@@ -1,4 +1,4 @@
-const std = @import("std");
+const std = @import("../../std.zig");
const Builder = @import("Builder.zig");
const bitcode_writer = @import("bitcode_writer.zig");
lib/std/zig/llvm.zig
@@ -0,0 +1,3 @@
+pub const BitcodeReader = @import("llvm/BitcodeReader.zig");
+pub const bitcode_writer = @import("llvm/bitcode_writer.zig");
+pub const Builder = @import("llvm/Builder.zig");
lib/std/zig.zig
@@ -24,6 +24,7 @@ pub const LibCInstallation = @import("zig/LibCInstallation.zig");
pub const WindowsSdk = @import("zig/WindowsSdk.zig");
pub const LibCDirs = @import("zig/LibCDirs.zig");
pub const target = @import("zig/target.zig");
+pub const llvm = @import("zig/llvm.zig");
// Character literal parsing
pub const ParsedCharLiteral = string_literal.ParsedCharLiteral;
src/codegen/llvm.zig
@@ -6,7 +6,7 @@ const log = std.log.scoped(.codegen);
const math = std.math;
const DW = std.dwarf;
-const Builder = @import("llvm/Builder.zig");
+const Builder = std.zig.llvm.Builder;
const llvm = if (build_options.have_llvm)
@import("llvm/bindings.zig")
else
@@ -1216,7 +1216,10 @@ pub const Object = struct {
}
}
- const bitcode = try o.builder.toBitcode(o.gpa);
+ const bitcode = try o.builder.toBitcode(o.gpa, .{
+ .name = "zig",
+ .version = build_options.semver,
+ });
defer o.gpa.free(bitcode);
o.builder.clearAndFree();
src/Compilation.zig
@@ -551,7 +551,6 @@ pub const CObject = struct {
}
pub fn parse(gpa: Allocator, path: []const u8) !*Bundle {
- const BitcodeReader = @import("codegen/llvm/BitcodeReader.zig");
const BlockId = enum(u32) {
Meta = 8,
Diag,
@@ -588,7 +587,7 @@ pub const CObject = struct {
defer file.close();
var br = std.io.bufferedReader(file.reader());
const reader = br.reader();
- var bc = BitcodeReader.init(gpa, .{ .reader = reader.any() });
+ var bc = std.zig.llvm.BitcodeReader.init(gpa, .{ .reader = reader.any() });
defer bc.deinit();
var file_names: std.AutoArrayHashMapUnmanaged(u32, []const u8) = .empty;
src/InternPool.zig
@@ -6261,7 +6261,7 @@ pub const Alignment = enum(u6) {
return n + 1;
}
- const LlvmBuilderAlignment = @import("codegen/llvm/Builder.zig").Alignment;
+ const LlvmBuilderAlignment = std.zig.llvm.Builder.Alignment;
pub fn toLlvm(this: @This()) LlvmBuilderAlignment {
return @enumFromInt(@intFromEnum(this));
CMakeLists.txt
@@ -500,6 +500,11 @@ set(ZIG_STAGE2_SOURCES
lib/std/zig/system/NativePaths.zig
lib/std/zig/system/x86.zig
lib/std/zig/tokenizer.zig
+ lib/std/zig/llvm.zig
+ lib/std/zig/llvm/BitcodeReader.zig
+ lib/std/zig/llvm/Builder.zig
+ lib/std/zig/llvm/bitcode_writer.zig
+ lib/std/zig/llvm/ir.zig
src/Air.zig
src/Builtin.zig
src/Compilation.zig
@@ -567,11 +572,7 @@ set(ZIG_STAGE2_SOURCES
src/codegen/c.zig
src/codegen/c/Type.zig
src/codegen/llvm.zig
- src/codegen/llvm/BitcodeReader.zig
- src/codegen/llvm/Builder.zig
src/codegen/llvm/bindings.zig
- src/codegen/llvm/bitcode_writer.zig
- src/codegen/llvm/ir.zig
src/codegen/spirv.zig
src/codegen/spirv/Assembler.zig
src/codegen/spirv/Module.zig