mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 21:08:36 +00:00
compiler: Allow using LLVM's SPIR-V backend.
This commit is contained in:
parent
991560fb49
commit
ddcf6fcdf3
@ -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,
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -172,6 +172,9 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool {
|
||||
.riscv64,
|
||||
.sparc,
|
||||
.sparc64,
|
||||
.spirv,
|
||||
.spirv32,
|
||||
.spirv64,
|
||||
.s390x,
|
||||
.thumb,
|
||||
.thumbeb,
|
||||
@ -187,12 +190,6 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool {
|
||||
.ve,
|
||||
=> true,
|
||||
|
||||
// An LLVM backend exists but we don't currently support using it.
|
||||
.spirv,
|
||||
.spirv32,
|
||||
.spirv64,
|
||||
=> false,
|
||||
|
||||
// No LLVM backend exists.
|
||||
.kalimba,
|
||||
.propeller,
|
||||
@ -213,7 +210,7 @@ pub fn hasLldSupport(ofmt: std.Target.ObjectFormat) bool {
|
||||
/// debug mode. A given target should only return true here if it is passing greater
|
||||
/// than or equal to the number of behavior tests as the respective LLVM backend.
|
||||
pub fn selfHostedBackendIsAsRobustAsLlvm(target: std.Target) bool {
|
||||
_ = target;
|
||||
if (target.cpu.arch.isSpirV()) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user