Skip to content

Commit 2759961

Browse files
authored
drop jl_gc_pool_alloc in favor of instrumented version (#55085)
And do some re-naming.
1 parent e732706 commit 2759961

File tree

8 files changed

+13
-30
lines changed

8 files changed

+13
-30
lines changed

src/gc.c

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,15 +1007,9 @@ STATIC_INLINE jl_value_t *jl_gc_big_alloc_inner(jl_ptls_t ptls, size_t sz)
10071007
return jl_valueof(&v->header);
10081008
}
10091009

1010-
// Deprecated version, supported for legacy code.
1011-
JL_DLLEXPORT jl_value_t *jl_gc_big_alloc(jl_ptls_t ptls, size_t sz)
1012-
{
1013-
jl_value_t *val = jl_gc_big_alloc_inner(ptls, sz);
1014-
maybe_record_alloc_to_profile(val, sz, jl_gc_unknown_type_tag);
1015-
return val;
1016-
}
1010+
10171011
// Instrumented version of jl_gc_big_alloc_inner, called into by LLVM-generated code.
1018-
JL_DLLEXPORT jl_value_t *jl_gc_big_alloc_instrumented(jl_ptls_t ptls, size_t sz, jl_value_t *type)
1012+
JL_DLLEXPORT jl_value_t *jl_gc_big_alloc(jl_ptls_t ptls, size_t sz, jl_value_t *type)
10191013
{
10201014
jl_value_t *val = jl_gc_big_alloc_inner(ptls, sz);
10211015
maybe_record_alloc_to_profile(val, sz, (jl_datatype_t*)type);
@@ -1289,7 +1283,7 @@ STATIC_INLINE jl_value_t *jl_gc_pool_alloc_inner(jl_ptls_t ptls, int pool_offset
12891283
jl_gc_pool_t *p = (jl_gc_pool_t*)((char*)ptls + pool_offset);
12901284
assert(jl_atomic_load_relaxed(&ptls->gc_state) == 0);
12911285
#ifdef MEMDEBUG
1292-
return jl_gc_big_alloc(ptls, osize);
1286+
return jl_gc_big_alloc(ptls, osize, NULL);
12931287
#endif
12941288
maybe_collect(ptls);
12951289
jl_atomic_store_relaxed(&ptls->gc_num.allocd,
@@ -1337,17 +1331,8 @@ STATIC_INLINE jl_value_t *jl_gc_pool_alloc_inner(jl_ptls_t ptls, int pool_offset
13371331
return jl_valueof(v);
13381332
}
13391333

1340-
// Deprecated version, supported for legacy code.
1341-
JL_DLLEXPORT jl_value_t *jl_gc_pool_alloc(jl_ptls_t ptls, int pool_offset,
1342-
int osize)
1343-
{
1344-
jl_value_t *val = jl_gc_pool_alloc_inner(ptls, pool_offset, osize);
1345-
maybe_record_alloc_to_profile(val, osize, jl_gc_unknown_type_tag);
1346-
return val;
1347-
}
13481334
// Instrumented version of jl_gc_pool_alloc_inner, called into by LLVM-generated code.
1349-
JL_DLLEXPORT jl_value_t *jl_gc_pool_alloc_instrumented(jl_ptls_t ptls, int pool_offset,
1350-
int osize, jl_value_t* type)
1335+
JL_DLLEXPORT jl_value_t *jl_gc_pool_alloc(jl_ptls_t ptls, int pool_offset, int osize, jl_value_t* type)
13511336
{
13521337
jl_value_t *val = jl_gc_pool_alloc_inner(ptls, pool_offset, osize);
13531338
maybe_record_alloc_to_profile(val, osize, (jl_datatype_t*)type);

src/jl_exported_funcs.inc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,6 @@
142142
XX(jl_gc_allocobj) \
143143
XX(jl_gc_alloc_typed) \
144144
XX(jl_gc_big_alloc) \
145-
XX(jl_gc_big_alloc_instrumented) \
146145
XX(jl_gc_collect) \
147146
XX(jl_gc_conservative_gc_support_enabled) \
148147
XX(jl_gc_counted_calloc) \
@@ -170,7 +169,6 @@
170169
XX(jl_gc_new_weakref_th) \
171170
XX(jl_gc_num) \
172171
XX(jl_gc_pool_alloc) \
173-
XX(jl_gc_pool_alloc_instrumented) \
174172
XX(jl_gc_queue_multiroot) \
175173
XX(jl_gc_queue_root) \
176174
XX(jl_gc_safepoint) \

src/llvm-pass-helpers.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,8 @@ namespace jl_intrinsics {
258258
}
259259

260260
namespace jl_well_known {
261-
static const char *GC_BIG_ALLOC_NAME = XSTR(jl_gc_big_alloc_instrumented);
262-
static const char *GC_POOL_ALLOC_NAME = XSTR(jl_gc_pool_alloc_instrumented);
261+
static const char *GC_BIG_ALLOC_NAME = XSTR(jl_gc_big_alloc);
262+
static const char *GC_POOL_ALLOC_NAME = XSTR(jl_gc_pool_alloc);
263263
static const char *GC_QUEUE_ROOT_NAME = XSTR(jl_gc_queue_root);
264264
static const char *GC_ALLOC_TYPED_NAME = XSTR(jl_gc_alloc_typed);
265265

test/llvmpasses/alloc-opt-gcframe.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
1212
; OPAQUE: %current_task = getelementptr inbounds ptr, ptr %gcstack, i64 -12
1313
; OPAQUE: [[ptls_field:%.*]] = getelementptr inbounds ptr, ptr %current_task, i64 16
1414
; OPAQUE-NEXT: [[ptls_load:%.*]] = load ptr, ptr [[ptls_field]], align 8, !tbaa !0
15-
; OPAQUE-NEXT: %v = call noalias nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr addrspace(10) @ijl_gc_pool_alloc_instrumented(ptr [[ptls_load]], i32 [[SIZE_T:[0-9]+]], i32 16, i64 {{.*}} @tag {{.*}})
15+
; OPAQUE-NEXT: %v = call noalias nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr addrspace(10) @ijl_gc_pool_alloc(ptr [[ptls_load]], i32 [[SIZE_T:[0-9]+]], i32 16, i64 {{.*}} @tag {{.*}})
1616
; OPAQUE: store atomic ptr addrspace(10) @tag, ptr addrspace(10) {{.*}} unordered, align 8, !tbaa !4
1717

1818
define {} addrspace(10)* @return_obj() {
@@ -238,8 +238,8 @@ L3:
238238
}
239239
; CHECK-LABEL: }{{$}}
240240

241-
; OPAQUE: declare noalias nonnull ptr addrspace(10) @ijl_gc_pool_alloc_instrumented(ptr,
242-
; OPAQUE: declare noalias nonnull ptr addrspace(10) @ijl_gc_big_alloc_instrumented(ptr,
241+
; OPAQUE: declare noalias nonnull ptr addrspace(10) @ijl_gc_pool_alloc(ptr,
242+
; OPAQUE: declare noalias nonnull ptr addrspace(10) @ijl_gc_big_alloc(ptr,
243243
declare void @external_function()
244244
declare {}*** @julia.get_pgcstack()
245245
declare noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}**, i64, {} addrspace(10)*)

test/llvmpasses/final-lower-gc.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ top:
5858
%pgcstack = call {}*** @julia.get_pgcstack()
5959
%ptls = call {}*** @julia.ptls_states()
6060
%ptls_i8 = bitcast {}*** %ptls to i8*
61-
; OPAQUE: %v = call noalias nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr addrspace(10) @ijl_gc_pool_alloc_instrumented
61+
; OPAQUE: %v = call noalias nonnull align {{[0-9]+}} dereferenceable({{[0-9]+}}) ptr addrspace(10) @ijl_gc_pool_alloc
6262
%v = call {} addrspace(10)* @julia.gc_alloc_bytes(i8* %ptls_i8, i64 8, i64 12341234)
6363
%0 = bitcast {} addrspace(10)* %v to {} addrspace(10)* addrspace(10)*
6464
%1 = getelementptr {} addrspace(10)*, {} addrspace(10)* addrspace(10)* %0, i64 -1

test/llvmpasses/julia-licm-fail.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
7373
declare void @ijl_gc_queue_root({} addrspace(10)*) #3
7474

7575
; Function Attrs: allocsize(1)
76-
declare noalias nonnull {} addrspace(10)* @ijl_gc_pool_alloc(i8*, i32, i32) #1
76+
declare noalias nonnull {} addrspace(10)* @ijl_gc_pool_alloc(i8*, i32, i32, i8*) #1
7777

7878
; Function Attrs: allocsize(1)
7979
declare noalias nonnull {} addrspace(10)* @ijl_gc_big_alloc(i8*, i64) #1

test/llvmpasses/julia-licm-missed.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
8686
declare void @ijl_gc_queue_root({} addrspace(10)*) #3
8787

8888
; Function Attrs: allocsize(1)
89-
declare noalias nonnull {} addrspace(10)* @ijl_gc_pool_alloc(i8*, i32, i32) #1
89+
declare noalias nonnull {} addrspace(10)* @ijl_gc_pool_alloc(i8*, i32, i32, i8*) #1
9090

9191
; Function Attrs: allocsize(1)
9292
declare noalias nonnull {} addrspace(10)* @ijl_gc_big_alloc(i8*, i64) #1

test/llvmpasses/julia-licm.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
152152
declare void @ijl_gc_queue_root({} addrspace(10)*) #3
153153

154154
; Function Attrs: allocsize(1)
155-
declare noalias nonnull {} addrspace(10)* @ijl_gc_pool_alloc(i8*, i32, i32) #1
155+
declare noalias nonnull {} addrspace(10)* @ijl_gc_pool_alloc(i8*, i32, i32, i8*) #1
156156

157157
; Function Attrs: allocsize(1)
158158
declare noalias nonnull {} addrspace(10)* @ijl_gc_big_alloc(i8*, i64) #1

0 commit comments

Comments
 (0)