| author | |
| committer | |
| log | 2e65244cae7e4365ecf3aa6857b84451272316a1 |
| tree | 2607649bf5c9e27778635c25827680794aa04423 |
| parent | 4f742c4cfc3c3134a0d6ebfdfc354286ae97b2c1 |
9 files changed, 15 insertions(+), 11 deletions(-)
src/Compilation.zig+1-2| ... | ... | @@ -1729,7 +1729,6 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil |
| 1729 | 1729 | comp.emit_llvm_ir != null or |
| 1730 | 1730 | comp.emit_llvm_bc != null)) |
| 1731 | 1731 | { |
| 1732 | dev.check(.llvm_backend); | |
| 1733 | 1732 | if (opt_zcu) |zcu| zcu.llvm_object = try LlvmObject.create(arena, comp); |
| 1734 | 1733 | } |
| 1735 | 1734 | |
| ... | ... | @@ -2704,7 +2703,7 @@ pub fn emitLlvmObject( |
| 2704 | 2703 | arena: Allocator, |
| 2705 | 2704 | default_emit: Emit, |
| 2706 | 2705 | bin_emit_loc: ?EmitLoc, |
| 2707 | llvm_object: *LlvmObject, | |
| 2706 | llvm_object: LlvmObject.Ptr, | |
| 2708 | 2707 | prog_node: std.Progress.Node, |
| 2709 | 2708 | ) !void { |
| 2710 | 2709 | const sub_prog_node = prog_node.start("LLVM Emit Object", 0); |
src/Zcu.zig+1-1| ... | ... | @@ -58,7 +58,7 @@ comp: *Compilation, |
| 58 | 58 | /// Usually, the LlvmObject is managed by linker code, however, in the case |
| 59 | 59 | /// that -fno-emit-bin is specified, the linker code never executes, so we |
| 60 | 60 | /// store the LlvmObject here. |
| 61 | llvm_object: if (dev.env.supports(.llvm_backend)) ?*LlvmObject else ?noreturn, | |
| 61 | llvm_object: ?LlvmObject.Ptr, | |
| 62 | 62 | |
| 63 | 63 | /// Pointer to externally managed resource. |
| 64 | 64 | root_mod: *Package.Module, |
src/codegen/llvm.zig+5-1| ... | ... | @@ -26,6 +26,7 @@ const wasm_c_abi = @import("../arch/wasm/abi.zig"); |
| 26 | 26 | const aarch64_c_abi = @import("../arch/aarch64/abi.zig"); |
| 27 | 27 | const arm_c_abi = @import("../arch/arm/abi.zig"); |
| 28 | 28 | const riscv_c_abi = @import("../arch/riscv64/abi.zig"); |
| 29 | const dev = @import("../dev.zig"); | |
| 29 | 30 | |
| 30 | 31 | const target_util = @import("../target.zig"); |
| 31 | 32 | const libcFloatPrefix = target_util.libcFloatPrefix; |
| ... | ... | @@ -865,9 +866,12 @@ pub const Object = struct { |
| 865 | 866 | field_index: u32, |
| 866 | 867 | }; |
| 867 | 868 | |
| 869 | pub const Ptr = if (dev.env.supports(.llvm_backend)) *Object else noreturn; | |
| 870 | ||
| 868 | 871 | pub const TypeMap = std.AutoHashMapUnmanaged(InternPool.Index, Builder.Type); |
| 869 | 872 | |
| 870 | pub fn create(arena: Allocator, comp: *Compilation) !*Object { | |
| 873 | pub fn create(arena: Allocator, comp: *Compilation) !Ptr { | |
| 874 | dev.check(.llvm_backend); | |
| 871 | 875 | const gpa = comp.gpa; |
| 872 | 876 | const target = comp.root_mod.resolved_target.result; |
| 873 | 877 | const llvm_target_triple = try targetTriple(arena, target); |
src/link.zig+1-1| ... | ... | @@ -968,7 +968,7 @@ pub const File = struct { |
| 968 | 968 | pub fn emitLlvmObject( |
| 969 | 969 | base: File, |
| 970 | 970 | arena: Allocator, |
| 971 | llvm_object: *LlvmObject, | |
| 971 | llvm_object: LlvmObject.Ptr, | |
| 972 | 972 | prog_node: std.Progress.Node, |
| 973 | 973 | ) !void { |
| 974 | 974 | return base.comp.emitLlvmObject(arena, base.emit, .{ |
src/link/Coff.zig+2-1| ... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 | //! LLD is also the default linker for LLVM. |
| 5 | 5 | |
| 6 | 6 | /// If this is not null, an object file is created by LLVM and emitted to zcu_object_sub_path. |
| 7 | llvm_object: ?*LlvmObject = null, | |
| 7 | llvm_object: ?LlvmObject.Ptr = null, | |
| 8 | 8 | |
| 9 | 9 | base: link.File, |
| 10 | 10 | image_base: u64, |
| ... | ... | @@ -2765,6 +2765,7 @@ const StringTable = @import("StringTable.zig"); |
| 2765 | 2765 | const Type = @import("../Type.zig"); |
| 2766 | 2766 | const Value = @import("../Value.zig"); |
| 2767 | 2767 | const AnalUnit = InternPool.AnalUnit; |
| 2768 | const dev = @import("../dev.zig"); | |
| 2768 | 2769 | |
| 2769 | 2770 | pub const base_tag: link.File.Tag = .coff; |
| 2770 | 2771 |
src/link/Elf.zig+1-1| ... | ... | @@ -30,7 +30,7 @@ entry_name: ?[]const u8, |
| 30 | 30 | ptr_width: PtrWidth, |
| 31 | 31 | |
| 32 | 32 | /// If this is not null, an object file is created by LLVM and emitted to zcu_object_sub_path. |
| 33 | llvm_object: ?*LlvmObject = null, | |
| 33 | llvm_object: ?LlvmObject.Ptr = null, | |
| 34 | 34 | |
| 35 | 35 | /// A list of all input files. |
| 36 | 36 | /// Index of each input file also encodes the priority or precedence of one input file |
src/link/MachO.zig+2-2| ... | ... | @@ -1,7 +1,7 @@ |
| 1 | 1 | base: link.File, |
| 2 | 2 | |
| 3 | 3 | /// If this is not null, an object file is created by LLVM and emitted to zcu_object_sub_path. |
| 4 | llvm_object: ?*LlvmObject = null, | |
| 4 | llvm_object: ?LlvmObject.Ptr = null, | |
| 5 | 5 | |
| 6 | 6 | /// Debug symbols bundle (or dSym). |
| 7 | 7 | d_sym: ?DebugSymbols = null, |
| ... | ... | @@ -4510,7 +4510,6 @@ const dead_strip = @import("MachO/dead_strip.zig"); |
| 4510 | 4510 | const eh_frame = @import("MachO/eh_frame.zig"); |
| 4511 | 4511 | const fat = @import("MachO/fat.zig"); |
| 4512 | 4512 | const link = @import("../link.zig"); |
| 4513 | const llvm_backend = @import("../codegen/llvm.zig"); | |
| 4514 | 4513 | const load_commands = @import("MachO/load_commands.zig"); |
| 4515 | 4514 | const relocatable = @import("MachO/relocatable.zig"); |
| 4516 | 4515 | const tapi = @import("tapi.zig"); |
| ... | ... | @@ -4562,6 +4561,7 @@ const UnwindInfo = @import("MachO/UnwindInfo.zig"); |
| 4562 | 4561 | const WeakBind = bind.WeakBind; |
| 4563 | 4562 | const ZigGotSection = synthetic.ZigGotSection; |
| 4564 | 4563 | const ZigObject = @import("MachO/ZigObject.zig"); |
| 4564 | const dev = @import("../dev.zig"); | |
| 4565 | 4565 | |
| 4566 | 4566 | pub const MachError = error{ |
| 4567 | 4567 | /// Not enough permissions held to perform the requested kernel |
src/link/NvPtx.zig+1-1| ... | ... | @@ -23,7 +23,7 @@ const Liveness = @import("../Liveness.zig"); |
| 23 | 23 | const LlvmObject = @import("../codegen/llvm.zig").Object; |
| 24 | 24 | |
| 25 | 25 | base: link.File, |
| 26 | llvm_object: *LlvmObject, | |
| 26 | llvm_object: LlvmObject.Ptr, | |
| 27 | 27 | |
| 28 | 28 | pub fn createEmpty( |
| 29 | 29 | arena: Allocator, |
src/link/Wasm.zig+1-1| ... | ... | @@ -61,7 +61,7 @@ export_table: bool, |
| 61 | 61 | /// Output name of the file |
| 62 | 62 | name: []const u8, |
| 63 | 63 | /// If this is not null, an object file is created by LLVM and linked with LLD afterwards. |
| 64 | llvm_object: ?*LlvmObject = null, | |
| 64 | llvm_object: ?LlvmObject.Ptr = null, | |
| 65 | 65 | /// The file index of a `ZigObject`. This will only contain a valid index when a zcu exists, |
| 66 | 66 | /// and the chosen backend is the Wasm backend. |
| 67 | 67 | zig_object_index: File.Index = .null, |