Skip to content

Commit a368845

Browse files
maleadtsimeonschaub
authored andcommitted
Rename AddrSpacePtr to LLVMPtr.
1 parent 9ba799a commit a368845

File tree

8 files changed

+25
-20
lines changed

8 files changed

+25
-20
lines changed

base/refpointer.jl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,13 @@ setindex!(b::RefArray, x) = (b.x[b.i] = x; b)
144144
###
145145

146146
"""
147-
AddrSpacePtr{T, AS}
147+
LLVMPtr{T, AS}
148148
149-
When passed as a `ccall` argument with the `llvmcall` calling convention, an `AddrSpacePtr` will be converted to an LLVM pointer type with the correct address space.
150-
This type is mainly used to ensure Julia's codegen uses the correct address space when calling LLVM intrinsics.
149+
A pointer type that more closely resembles LLVM semantics: It includes the pointer address
150+
space, and will be passed as an actual pointer instead of an integer.
151+
152+
This type is mainly used to interface with code that has strict requirements about pointers,
153+
e.g., intrinsics that are selected based on the address space, or back-ends that require
154+
pointers to be identifiable by their types.
151155
"""
152-
Core.AddrSpacePtr
156+
Core.LLVMPtr

src/builtins.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1558,7 +1558,7 @@ void jl_init_primitives(void) JL_GC_DISABLED
15581558
add_builtin("CodeInfo", (jl_value_t*)jl_code_info_type);
15591559
add_builtin("Ref", (jl_value_t*)jl_ref_type);
15601560
add_builtin("Ptr", (jl_value_t*)jl_pointer_type);
1561-
add_builtin("AddrSpacePtr", (jl_value_t*)jl_addrspace_pointer_type);
1561+
add_builtin("LLVMPtr", (jl_value_t*)jl_llvmpointer_type);
15621562
add_builtin("Task", (jl_value_t*)jl_task_type);
15631563

15641564
add_builtin("AbstractArray", (jl_value_t*)jl_abstractarray_type);

src/ccall.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,7 @@ std::string generate_func_sig(const char *fname)
11851185
t = T_pint8;
11861186
isboxed = false;
11871187
}
1188-
else if (llvmcall && jl_is_addrspace_ptr_type(tti)) {
1188+
else if (llvmcall && jl_is_llvmpointer_type(tti)) {
11891189
t = bitstype_to_llvm(tti, true);
11901190
tti = (jl_value_t*)jl_voidpointer_type;
11911191
isboxed = false;

src/cgutils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ static Type *bitstype_to_llvm(jl_value_t *bt, bool llvmcall = false)
590590
return T_float32;
591591
if (bt == (jl_value_t*)jl_float64_type)
592592
return T_float64;
593-
if (jl_is_addrspace_ptr_type(bt)) {
593+
if (jl_is_llvmpointer_type(bt)) {
594594
jl_value_t *as_param = jl_tparam1(bt);
595595
int as;
596596
if (jl_is_int32(as_param))

src/jltypes.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ jl_datatype_t *jl_lineinfonode_type;
119119
jl_unionall_t *jl_ref_type;
120120
jl_unionall_t *jl_pointer_type;
121121
jl_typename_t *jl_pointer_typename;
122-
jl_unionall_t *jl_addrspace_pointer_type;
123-
jl_typename_t *jl_addrspace_pointer_typename;
122+
jl_unionall_t *jl_llvmpointer_type;
123+
jl_typename_t *jl_llvmpointer_typename;
124124
jl_datatype_t *jl_void_type; // deprecated
125125
jl_datatype_t *jl_nothing_type;
126126
jl_datatype_t *jl_voidpointer_type;
@@ -2379,14 +2379,14 @@ void jl_init_types(void) JL_GC_DISABLED
23792379
sizeof(void*)*8)->name->wrapper;
23802380
jl_pointer_typename = ((jl_datatype_t*)jl_unwrap_unionall((jl_value_t*)jl_pointer_type))->name;
23812381

2382-
// AddrSpacePtr{T, AS} where {T, AS}
2382+
// LLVMPtr{T, AS} where {T, AS}
23832383
tv = jl_svec2(tvar("T"), tvar("AS"));
23842384
jl_svec_t *tv_base = jl_svec1(tvar("T"));
2385-
jl_addrspace_pointer_type = (jl_unionall_t*)
2386-
jl_new_primitivetype((jl_value_t*)jl_symbol("AddrSpacePtr"), core,
2385+
jl_llvmpointer_type = (jl_unionall_t*)
2386+
jl_new_primitivetype((jl_value_t*)jl_symbol("LLVMPtr"), core,
23872387
(jl_datatype_t*)jl_apply_type((jl_value_t*)jl_ref_type, jl_svec_data(tv_base), 1), tv,
23882388
sizeof(void*)*8)->name->wrapper;
2389-
jl_addrspace_pointer_typename = ((jl_datatype_t*)jl_unwrap_unionall((jl_value_t*)jl_addrspace_pointer_type))->name;
2389+
jl_llvmpointer_typename = ((jl_datatype_t*)jl_unwrap_unionall((jl_value_t*)jl_llvmpointer_type))->name;
23902390

23912391
// Type{T} where T<:Tuple
23922392
tttvar = jl_new_typevar(jl_symbol("T"),

src/julia.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -636,10 +636,10 @@ extern JL_DLLEXPORT jl_datatype_t *jl_signed_type JL_GLOBALLY_ROOTED;
636636
extern JL_DLLEXPORT jl_datatype_t *jl_voidpointer_type JL_GLOBALLY_ROOTED;
637637
extern JL_DLLEXPORT jl_datatype_t *jl_uint8pointer_type JL_GLOBALLY_ROOTED;
638638
extern JL_DLLEXPORT jl_unionall_t *jl_pointer_type JL_GLOBALLY_ROOTED;
639-
extern JL_DLLEXPORT jl_unionall_t *jl_addrspace_pointer_type JL_GLOBALLY_ROOTED;
639+
extern JL_DLLEXPORT jl_unionall_t *jl_llvmpointer_type JL_GLOBALLY_ROOTED;
640640
extern JL_DLLEXPORT jl_unionall_t *jl_ref_type JL_GLOBALLY_ROOTED;
641641
extern JL_DLLEXPORT jl_typename_t *jl_pointer_typename JL_GLOBALLY_ROOTED;
642-
extern JL_DLLEXPORT jl_typename_t *jl_addrspace_pointer_typename JL_GLOBALLY_ROOTED;
642+
extern JL_DLLEXPORT jl_typename_t *jl_llvmpointer_typename JL_GLOBALLY_ROOTED;
643643
extern JL_DLLEXPORT jl_typename_t *jl_namedtuple_typename JL_GLOBALLY_ROOTED;
644644
extern JL_DLLEXPORT jl_unionall_t *jl_namedtuple_type JL_GLOBALLY_ROOTED;
645645
extern JL_DLLEXPORT jl_datatype_t *jl_task_type JL_GLOBALLY_ROOTED;
@@ -1090,6 +1090,7 @@ static inline int jl_is_layout_opaque(const jl_datatype_layout_t *l) JL_NOTSAFEP
10901090
#define jl_is_cpointer(v) jl_is_cpointer_type(jl_typeof(v))
10911091
#define jl_is_pointer(v) jl_is_cpointer_type(jl_typeof(v))
10921092
#define jl_is_uint8pointer(v)jl_typeis(v,jl_uint8pointer_type)
1093+
#define jl_is_llvmpointer(v) jl_typeis(v,jl_llvmpointer_type)
10931094
#define jl_is_intrinsic(v) jl_typeis(v,jl_intrinsic_type)
10941095
#define jl_array_isbitsunion(a) (!(((jl_array_t*)(a))->flags.ptrarray) && jl_is_uniontype(jl_tparam0(jl_typeof(a))))
10951096

@@ -1154,10 +1155,10 @@ STATIC_INLINE int jl_is_cpointer_type(jl_value_t *t) JL_NOTSAFEPOINT
11541155
((jl_datatype_t*)(t))->name == ((jl_datatype_t*)jl_pointer_type->body)->name);
11551156
}
11561157

1157-
STATIC_INLINE int jl_is_addrspace_ptr_type(jl_value_t *t) JL_NOTSAFEPOINT
1158+
STATIC_INLINE int jl_is_llvmpointer_type(jl_value_t *t) JL_NOTSAFEPOINT
11581159
{
11591160
return (jl_is_datatype(t) &&
1160-
((jl_datatype_t*)(t))->name == jl_addrspace_pointer_typename);
1161+
((jl_datatype_t*)(t))->name == jl_llvmpointer_typename);
11611162
}
11621163

11631164
STATIC_INLINE int jl_is_abstract_ref_type(jl_value_t *t) JL_NOTSAFEPOINT

src/staticdata.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ static void *const _tags[] = {
4141
&jl_linenumbernode_type, &jl_lineinfonode_type,
4242
&jl_gotonode_type, &jl_quotenode_type,
4343
&jl_pinode_type, &jl_phinode_type, &jl_phicnode_type, &jl_upsilonnode_type,
44-
&jl_type_type, &jl_bottom_type, &jl_ref_type, &jl_pointer_type, &jl_addrspace_pointer_type,
44+
&jl_type_type, &jl_bottom_type, &jl_ref_type, &jl_pointer_type, &jl_llvmpointer_type,
4545
&jl_vararg_type, &jl_abstractarray_type,
4646
&jl_densearray_type, &jl_nothing_type, &jl_function_type, &jl_typeofbottom_type,
4747
&jl_unionall_type, &jl_typename_type, &jl_builtin_type, &jl_code_info_type,
@@ -57,7 +57,7 @@ static void *const _tags[] = {
5757
&jl_float16_type, &jl_float32_type, &jl_float64_type, &jl_floatingpoint_type,
5858
&jl_number_type, &jl_signed_type,
5959
// special typenames
60-
&jl_tuple_typename, &jl_pointer_typename, &jl_addrspace_pointer_typename, &jl_array_typename, &jl_type_typename,
60+
&jl_tuple_typename, &jl_pointer_typename, &jl_llvmpointer_typename, &jl_array_typename, &jl_type_typename,
6161
&jl_vararg_typename, &jl_namedtuple_typename,
6262
&jl_vecelement_typename,
6363
// special exceptions

test/llvmpasses/llvmcall.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ emit(foo, NTuple{2, Float16})
2323
emit(foo, NTuple{2, VecElement{Float16}})
2424

2525
# CHECK: call i8 addrspace(3)* @foo(i8 addrspace(3)* %{{[0-9]+}})
26-
emit(foo, Core.AddrSpacePtr{Float32, 3})
26+
emit(foo, Core.LLVMPtr{Float32, 3})
2727

2828
# CHECK: call { i32, i32 } @foo({ i32, i32 } %{{[0-9]+}})
2929
emit(foo, Foo)

0 commit comments

Comments
 (0)