mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 22:35:24 +00:00
Merge pull request #16287 from Snektron/amdgpu-panic-fix
Some amdgcn fixes
This commit is contained in:
commit
afc5edabe0
@ -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);
|
||||
|
||||
@ -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(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -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.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user