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

Some amdgcn fixes
This commit is contained in:
Andrew Kelley 2023-07-01 22:04:06 -07:00 committed by GitHub
commit afc5edabe0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 5 deletions

View File

@ -807,7 +807,7 @@ pub fn default_panic(msg: []const u8, error_return_trace: ?*StackTrace, ret_addr
// Didn't have boot_services, just fallback to whatever.
std.os.abort();
},
.cuda => std.os.abort(),
.cuda, .amdhsa => std.os.abort(),
else => {
const first_trace_addr = ret_addr orelse @returnAddress();
std.debug.panicImpl(error_return_trace, first_trace_addr, msg);

View File

@ -613,7 +613,7 @@ pub fn abort() noreturn {
exit(127); // Pid 1 might not be signalled in some containers.
}
switch (builtin.os.tag) {
.uefi, .wasi, .cuda => @trap(),
.uefi, .wasi, .cuda, .amdhsa => @trap(),
else => system.abort(),
}
}

View File

@ -2435,18 +2435,25 @@ pub const Object = struct {
.ty = ty.toType(),
.val = null_opt_usize.toValue(),
});
const llvm_wanted_addrspace = toLlvmAddressSpace(.generic, target);
const llvm_actual_addrspace = toLlvmGlobalAddressSpace(.generic, target);
const global = o.llvm_module.addGlobalInAddressSpace(
llvm_init.typeOf(),
"",
toLlvmGlobalAddressSpace(.generic, target),
llvm_actual_addrspace,
);
global.setLinkage(.Internal);
global.setUnnamedAddr(.True);
global.setAlignment(ty.toType().abiAlignment(mod));
global.setInitializer(llvm_init);
o.null_opt_addr = global;
return global;
const addrspace_casted_global = if (llvm_wanted_addrspace != llvm_actual_addrspace)
global.constAddrSpaceCast(o.context.pointerType(llvm_wanted_addrspace))
else
global;
o.null_opt_addr = addrspace_casted_global;
return addrspace_casted_global;
}
/// If the llvm function does not exist, create it.