| author | |
| committer | |
| log | ddcf6fcdf3452a4a7d55a27e7112e794447120b6 |
| tree | 068232350f7f6f45150feba61092e8b4990a26af |
| parent | 991560fb499afcbd7717f86edd475338c7d8d2b8 |
3 files changed, 14 insertions(+), 10 deletions(-)
src/codegen/llvm.zig+6-3| ... | ... | @@ -12723,12 +12723,15 @@ pub fn initializeLLVMTarget(arch: std.Target.Cpu.Arch) void { |
| 12723 | 12723 | llvm.LLVMInitializeLoongArchAsmPrinter(); |
| 12724 | 12724 | llvm.LLVMInitializeLoongArchAsmParser(); |
| 12725 | 12725 | }, |
| 12726 | ||
| 12727 | // We don't currently support using these backends. | |
| 12728 | 12726 | .spirv, |
| 12729 | 12727 | .spirv32, |
| 12730 | 12728 | .spirv64, |
| 12731 | => {}, | |
| 12729 | => { | |
| 12730 | llvm.LLVMInitializeSPIRVTarget(); | |
| 12731 | llvm.LLVMInitializeSPIRVTargetInfo(); | |
| 12732 | llvm.LLVMInitializeSPIRVTargetMC(); | |
| 12733 | llvm.LLVMInitializeSPIRVAsmPrinter(); | |
| 12734 | }, | |
| 12732 | 12735 | |
| 12733 | 12736 | // LLVM does does not have a backend for these. |
| 12734 | 12737 | .kalimba, |
src/codegen/llvm/bindings.zig+4| ... | ... | @@ -211,6 +211,7 @@ pub extern fn LLVMInitializeCSKYTargetInfo() void; |
| 211 | 211 | pub extern fn LLVMInitializeVETargetInfo() void; |
| 212 | 212 | pub extern fn LLVMInitializeARCTargetInfo() void; |
| 213 | 213 | pub extern fn LLVMInitializeLoongArchTargetInfo() void; |
| 214 | pub extern fn LLVMInitializeSPIRVTargetInfo() void; | |
| 214 | 215 | |
| 215 | 216 | pub extern fn LLVMInitializeAArch64Target() void; |
| 216 | 217 | pub extern fn LLVMInitializeAMDGPUTarget() void; |
| ... | ... | @@ -235,6 +236,7 @@ pub extern fn LLVMInitializeVETarget() void; |
| 235 | 236 | pub extern fn LLVMInitializeCSKYTarget() void; |
| 236 | 237 | pub extern fn LLVMInitializeARCTarget() void; |
| 237 | 238 | pub extern fn LLVMInitializeLoongArchTarget() void; |
| 239 | pub extern fn LLVMInitializeSPIRVTarget() void; | |
| 238 | 240 | |
| 239 | 241 | pub extern fn LLVMInitializeAArch64TargetMC() void; |
| 240 | 242 | pub extern fn LLVMInitializeAMDGPUTargetMC() void; |
| ... | ... | @@ -259,6 +261,7 @@ pub extern fn LLVMInitializeCSKYTargetMC() void; |
| 259 | 261 | pub extern fn LLVMInitializeVETargetMC() void; |
| 260 | 262 | pub extern fn LLVMInitializeARCTargetMC() void; |
| 261 | 263 | pub extern fn LLVMInitializeLoongArchTargetMC() void; |
| 264 | pub extern fn LLVMInitializeSPIRVTargetMC() void; | |
| 262 | 265 | |
| 263 | 266 | pub extern fn LLVMInitializeAArch64AsmPrinter() void; |
| 264 | 267 | pub extern fn LLVMInitializeAMDGPUAsmPrinter() void; |
| ... | ... | @@ -281,6 +284,7 @@ pub extern fn LLVMInitializeM68kAsmPrinter() void; |
| 281 | 284 | pub extern fn LLVMInitializeVEAsmPrinter() void; |
| 282 | 285 | pub extern fn LLVMInitializeARCAsmPrinter() void; |
| 283 | 286 | pub extern fn LLVMInitializeLoongArchAsmPrinter() void; |
| 287 | pub extern fn LLVMInitializeSPIRVAsmPrinter() void; | |
| 284 | 288 | |
| 285 | 289 | pub extern fn LLVMInitializeAArch64AsmParser() void; |
| 286 | 290 | pub extern fn LLVMInitializeAMDGPUAsmParser() void; |
src/target.zig+4-7| ... | ... | @@ -172,6 +172,9 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool { |
| 172 | 172 | .riscv64, |
| 173 | 173 | .sparc, |
| 174 | 174 | .sparc64, |
| 175 | .spirv, | |
| 176 | .spirv32, | |
| 177 | .spirv64, | |
| 175 | 178 | .s390x, |
| 176 | 179 | .thumb, |
| 177 | 180 | .thumbeb, |
| ... | ... | @@ -187,12 +190,6 @@ pub fn hasLlvmSupport(target: std.Target, ofmt: std.Target.ObjectFormat) bool { |
| 187 | 190 | .ve, |
| 188 | 191 | => true, |
| 189 | 192 | |
| 190 | // An LLVM backend exists but we don't currently support using it. | |
| 191 | .spirv, | |
| 192 | .spirv32, | |
| 193 | .spirv64, | |
| 194 | => false, | |
| 195 | ||
| 196 | 193 | // No LLVM backend exists. |
| 197 | 194 | .kalimba, |
| 198 | 195 | .propeller, |
| ... | ... | @@ -213,7 +210,7 @@ pub fn hasLldSupport(ofmt: std.Target.ObjectFormat) bool { |
| 213 | 210 | /// debug mode. A given target should only return true here if it is passing greater |
| 214 | 211 | /// than or equal to the number of behavior tests as the respective LLVM backend. |
| 215 | 212 | pub fn selfHostedBackendIsAsRobustAsLlvm(target: std.Target) bool { |
| 216 | _ = target; | |
| 213 | if (target.cpu.arch.isSpirV()) return true; | |
| 217 | 214 | return false; |
| 218 | 215 | } |
| 219 | 216 |