aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-04-06 17:36:24 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2025-04-09 19:32:57 +0200
commitddcf6fcdf3452a4a7d55a27e7112e794447120b6 (patch)
tree068232350f7f6f45150feba61092e8b4990a26af /src/codegen
parent991560fb499afcbd7717f86edd475338c7d8d2b8 (diff)
downloadzig-ddcf6fcdf3452a4a7d55a27e7112e794447120b6.tar.gz
zig-ddcf6fcdf3452a4a7d55a27e7112e794447120b6.zip
compiler: Allow using LLVM's SPIR-V backend.
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig9
-rw-r--r--src/codegen/llvm/bindings.zig4
2 files changed, 10 insertions, 3 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 6ad4ccc242..3e389ed9c5 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -12723,12 +12723,15 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void {
llvm.LLVMInitializeLoongArchAsmPrinter();
llvm.LLVMInitializeLoongArchAsmParser();
},
-
- // We don't currently support using these backends.
.spirv,
.spirv32,
.spirv64,
- => {},
+ => {
+ llvm.LLVMInitializeSPIRVTarget();
+ llvm.LLVMInitializeSPIRVTargetInfo();
+ llvm.LLVMInitializeSPIRVTargetMC();
+ llvm.LLVMInitializeSPIRVAsmPrinter();
+ },
// LLVM does does not have a backend for these.
.kalimba,
diff --git a/src/codegen/llvm/bindings.zig b/src/codegen/llvm/bindings.zig
index 3c0782397e..44ca599fdc 100644
--- a/src/codegen/llvm/bindings.zig
+++ b/src/codegen/llvm/bindings.zig
@@ -211,6 +211,7 @@ pub extern fn LLVMInitializeCSKYTargetInfo() void;
pub extern fn LLVMInitializeVETargetInfo() void;
pub extern fn LLVMInitializeARCTargetInfo() void;
pub extern fn LLVMInitializeLoongArchTargetInfo() void;
+pub extern fn LLVMInitializeSPIRVTargetInfo() void;
pub extern fn LLVMInitializeAArch64Target() void;
pub extern fn LLVMInitializeAMDGPUTarget() void;
@@ -235,6 +236,7 @@ pub extern fn LLVMInitializeVETarget() void;
pub extern fn LLVMInitializeCSKYTarget() void;
pub extern fn LLVMInitializeARCTarget() void;
pub extern fn LLVMInitializeLoongArchTarget() void;
+pub extern fn LLVMInitializeSPIRVTarget() void;
pub extern fn LLVMInitializeAArch64TargetMC() void;
pub extern fn LLVMInitializeAMDGPUTargetMC() void;
@@ -259,6 +261,7 @@ pub extern fn LLVMInitializeCSKYTargetMC() void;
pub extern fn LLVMInitializeVETargetMC() void;
pub extern fn LLVMInitializeARCTargetMC() void;
pub extern fn LLVMInitializeLoongArchTargetMC() void;
+pub extern fn LLVMInitializeSPIRVTargetMC() void;
pub extern fn LLVMInitializeAArch64AsmPrinter() void;
pub extern fn LLVMInitializeAMDGPUAsmPrinter() void;
@@ -281,6 +284,7 @@ pub extern fn LLVMInitializeM68kAsmPrinter() void;
pub extern fn LLVMInitializeVEAsmPrinter() void;
pub extern fn LLVMInitializeARCAsmPrinter() void;
pub extern fn LLVMInitializeLoongArchAsmPrinter() void;
+pub extern fn LLVMInitializeSPIRVAsmPrinter() void;
pub extern fn LLVMInitializeAArch64AsmParser() void;
pub extern fn LLVMInitializeAMDGPUAsmParser() void;