1
1
use std:: ffi:: CString ;
2
2
3
3
use llvm:: Linkage :: * ;
4
- use rustc_abi:: Align ;
4
+ use rustc_abi:: { AddressSpace , Align } ;
5
5
use rustc_codegen_ssa:: back:: write:: CodegenContext ;
6
6
use rustc_codegen_ssa:: traits:: BaseTypeCodegenMethods ;
7
7
@@ -61,7 +61,7 @@ fn generate_at_one<'ll>(cx: &'ll SimpleCx<'_>) -> &'ll llvm::Value {
61
61
62
62
pub ( crate ) fn add_tgt_offload_entry < ' ll > ( cx : & ' ll SimpleCx < ' _ > ) -> & ' ll llvm:: Type {
63
63
let offload_entry_ty = cx. type_named_struct ( "struct.__tgt_offload_entry" ) ;
64
- let tptr = cx. type_ptr ( ) ;
64
+ let tptr = cx. type_ptr_ext ( AddressSpace :: ZERO ) ;
65
65
let ti64 = cx. type_i64 ( ) ;
66
66
let ti32 = cx. type_i32 ( ) ;
67
67
let ti16 = cx. type_i16 ( ) ;
@@ -85,7 +85,7 @@ pub(crate) fn add_tgt_offload_entry<'ll>(cx: &'ll SimpleCx<'_>) -> &'ll llvm::Ty
85
85
86
86
fn gen_tgt_kernel_global < ' ll > ( cx : & ' ll SimpleCx < ' _ > ) {
87
87
let kernel_arguments_ty = cx. type_named_struct ( "struct.__tgt_kernel_arguments" ) ;
88
- let tptr = cx. type_ptr ( ) ;
88
+ let tptr = cx. type_ptr_ext ( AddressSpace :: ZERO ) ;
89
89
let ti64 = cx. type_i64 ( ) ;
90
90
let ti32 = cx. type_i32 ( ) ;
91
91
let tarr = cx. type_array ( ti32, 3 ) ;
@@ -126,7 +126,7 @@ fn gen_tgt_kernel_global<'ll>(cx: &'ll SimpleCx<'_>) {
126
126
fn gen_tgt_data_mappers < ' ll > (
127
127
cx : & ' ll SimpleCx < ' _ > ,
128
128
) -> ( & ' ll llvm:: Value , & ' ll llvm:: Value , & ' ll llvm:: Value , & ' ll llvm:: Type ) {
129
- let tptr = cx. type_ptr ( ) ;
129
+ let tptr = cx. type_ptr_ext ( AddressSpace :: ZERO ) ;
130
130
let ti64 = cx. type_i64 ( ) ;
131
131
let ti32 = cx. type_i32 ( ) ;
132
132
@@ -233,7 +233,7 @@ fn gen_define_handling<'ll>(
233
233
let flags = cx. get_const_i32 ( 0 ) ;
234
234
let size = cx. get_const_i64 ( 0 ) ;
235
235
let data = cx. get_const_i64 ( 0 ) ;
236
- let aux_addr = cx. const_null ( cx. type_ptr ( ) ) ;
236
+ let aux_addr = cx. const_null ( cx. type_ptr_ext ( AddressSpace :: ZERO ) ) ;
237
237
let elems = vec ! [ reserved, version, kind, flags, region_id, llglobal, size, data, aux_addr] ;
238
238
239
239
let initializer = crate :: common:: named_struct ( offload_entry_ty, & elems) ;
@@ -289,7 +289,7 @@ fn gen_call_handling<'ll>(
289
289
o_types : & [ & ' ll llvm:: Value ] ,
290
290
) {
291
291
// %struct.__tgt_bin_desc = type { i32, ptr, ptr, ptr }
292
- let tptr = cx. type_ptr ( ) ;
292
+ let tptr = cx. type_ptr_ext ( AddressSpace :: ZERO ) ;
293
293
let ti32 = cx. type_i32 ( ) ;
294
294
let tgt_bin_desc_ty = vec ! [ ti32, tptr, tptr, tptr] ;
295
295
let tgt_bin_desc = cx. type_named_struct ( "struct.__tgt_bin_desc" ) ;
@@ -321,7 +321,7 @@ fn gen_call_handling<'ll>(
321
321
322
322
let tgt_bin_desc_alloca = builder. direct_alloca ( tgt_bin_desc, Align :: EIGHT , "EmptyDesc" ) ;
323
323
324
- let ty = cx. type_array ( cx. type_ptr ( ) , num_args) ;
324
+ let ty = cx. type_array ( cx. type_ptr_ext ( AddressSpace :: ZERO ) , num_args) ;
325
325
// Baseptr are just the input pointer to the kernel, stored in a local alloca
326
326
let a1 = builder. direct_alloca ( ty, Align :: EIGHT , ".offload_baseptrs" ) ;
327
327
// Ptrs are the result of a gep into the baseptr, at least for our trivial types.
@@ -352,7 +352,7 @@ fn gen_call_handling<'ll>(
352
352
unsafe { llvm:: LLVMRustPositionBefore ( builder. llbuilder , kernel_call) } ;
353
353
builder. memset ( tgt_bin_desc_alloca, cx. get_const_i8 ( 0 ) , cx. get_const_i64 ( 32 ) , Align :: EIGHT ) ;
354
354
355
- let mapper_fn_ty = cx. type_func ( & [ cx. type_ptr ( ) ] , cx. type_void ( ) ) ;
355
+ let mapper_fn_ty = cx. type_func ( & [ cx. type_ptr_ext ( AddressSpace :: ZERO ) ] , cx. type_void ( ) ) ;
356
356
let register_lib_decl = declare_offload_fn ( & cx, "__tgt_register_lib" , mapper_fn_ty) ;
357
357
let unregister_lib_decl = declare_offload_fn ( & cx, "__tgt_unregister_lib" , mapper_fn_ty) ;
358
358
let init_ty = cx. type_func ( & [ ] , cx. type_void ( ) ) ;
@@ -405,7 +405,7 @@ fn gen_call_handling<'ll>(
405
405
num_args : u64 ,
406
406
s_ident_t : & ' ll Value ,
407
407
) {
408
- let nullptr = cx. const_null ( cx. type_ptr ( ) ) ;
408
+ let nullptr = cx. const_null ( cx. type_ptr_ext ( AddressSpace :: ZERO ) ) ;
409
409
let i64_max = cx. get_const_i64 ( u64:: MAX ) ;
410
410
let num_args = cx. get_const_i32 ( num_args) ;
411
411
let args =
0 commit comments