authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-07-01 22:04:06-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2023-07-01 22:04:06-07:00
logafc5edabe05d464f64388726238d46b400c3e159
tree85a98a3171f4d6a03be96ada639224ca565193ec
parent309aacfc8993ff4ec5914a7ee2c487eabbe00998
parenta1b583dc24cde495656b288de979714dfc15c4a2
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #16287 from Snektron/amdgpu-panic-fix

Some amdgcn fixes

3 files changed, 12 insertions(+), 5 deletions(-)

lib/std/builtin.zig+1-1
......@@ -807,7 +807,7 @@ pub fn default_panic(msg: []const u8, error_return_trace: ?*StackTrace, ret_addr
807807 // Didn't have boot_services, just fallback to whatever.
808808 std.os.abort();
809809 },
810 .cuda => std.os.abort(),
810 .cuda, .amdhsa => std.os.abort(),
811811 else => {
812812 const first_trace_addr = ret_addr orelse @returnAddress();
813813 std.debug.panicImpl(error_return_trace, first_trace_addr, msg);
lib/std/os.zig+1-1
......@@ -613,7 +613,7 @@ pub fn abort() noreturn {
613613 exit(127); // Pid 1 might not be signalled in some containers.
614614 }
615615 switch (builtin.os.tag) {
616 .uefi, .wasi, .cuda => @trap(),
616 .uefi, .wasi, .cuda, .amdhsa => @trap(),
617617 else => system.abort(),
618618 }
619619}
src/codegen/llvm.zig+10-3
......@@ -2435,18 +2435,25 @@ pub const Object = struct {
24352435 .ty = ty.toType(),
24362436 .val = null_opt_usize.toValue(),
24372437 });
2438 const llvm_wanted_addrspace = toLlvmAddressSpace(.generic, target);
2439 const llvm_actual_addrspace = toLlvmGlobalAddressSpace(.generic, target);
24382440 const global = o.llvm_module.addGlobalInAddressSpace(
24392441 llvm_init.typeOf(),
24402442 "",
2441 toLlvmGlobalAddressSpace(.generic, target),
2443 llvm_actual_addrspace,
24422444 );
24432445 global.setLinkage(.Internal);
24442446 global.setUnnamedAddr(.True);
24452447 global.setAlignment(ty.toType().abiAlignment(mod));
24462448 global.setInitializer(llvm_init);
24472449
2448 o.null_opt_addr = global;
2449 return global;
2450 const addrspace_casted_global = if (llvm_wanted_addrspace != llvm_actual_addrspace)
2451 global.constAddrSpaceCast(o.context.pointerType(llvm_wanted_addrspace))
2452 else
2453 global;
2454
2455 o.null_opt_addr = addrspace_casted_global;
2456 return addrspace_casted_global;
24502457 }
24512458
24522459 /// If the llvm function does not exist, create it.