Skip to content

Commit

Permalink
Use 'i32' instead of 'size_t' for 'julia.{new,push}_gc_frame' size args
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanvdc committed Feb 25, 2019
1 parent 63b14dc commit ee1eaf5
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 11 deletions.
4 changes: 2 additions & 2 deletions src/llvm-late-gc-lowering.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1902,13 +1902,13 @@ void LateLowerGCFrame::PlaceRootsAndUpdateCalls(std::vector<int> &Colors, State
// Create and push a GC frame.
auto gcframe = CallInst::Create(
getOrDeclare(jl_intrinsics::newGCFrame),
{ConstantInt::get(T_size, NRoots)},
{ConstantInt::get(T_int32, NRoots)},
"gcframe");
gcframe->insertBefore(&*F->getEntryBlock().begin());

auto pushGcframe = CallInst::Create(
getOrDeclare(jl_intrinsics::pushGCFrame),
{gcframe, ConstantInt::get(T_size, NRoots)});
{gcframe, ConstantInt::get(T_int32, NRoots)});
pushGcframe->insertAfter(ptlsStates);

// Replace Allocas
Expand Down
4 changes: 2 additions & 2 deletions src/llvm-pass-helpers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ namespace jl_intrinsics {
NEW_GC_FRAME_NAME,
[](const JuliaPassContext &context) {
auto intrinsic = Function::Create(
FunctionType::get(PointerType::get(context.T_prjlvalue, 0), {context.T_size}, false),
FunctionType::get(PointerType::get(context.T_prjlvalue, 0), {context.T_int32}, false),
Function::ExternalLinkage,
NEW_GC_FRAME_NAME);
intrinsic->addAttribute(AttributeList::ReturnIndex, Attribute::NoAlias);
Expand All @@ -190,7 +190,7 @@ namespace jl_intrinsics {
return Function::Create(
FunctionType::get(
Type::getVoidTy(context.getLLVMContext()),
{PointerType::get(context.T_prjlvalue, 0), context.T_size},
{PointerType::get(context.T_prjlvalue, 0), context.T_int32},
false),
Function::ExternalLinkage,
PUSH_GC_FRAME_NAME);
Expand Down
8 changes: 4 additions & 4 deletions test/llvmpasses/final-lower-gc.ll
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ declare %jl_value_t*** @julia.ptls_states()
declare void @jl_safepoint()
declare %jl_value_t addrspace(10)* @jl_apply_generic(%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)**, i32)

declare noalias nonnull %jl_value_t addrspace(10)** @julia.new_gc_frame(i64)
declare void @julia.push_gc_frame(%jl_value_t addrspace(10)**, i64)
declare noalias nonnull %jl_value_t addrspace(10)** @julia.new_gc_frame(i32)
declare void @julia.push_gc_frame(%jl_value_t addrspace(10)**, i32)
declare %jl_value_t addrspace(10)** @julia.get_gc_frame_slot(%jl_value_t addrspace(10)**, i32)
declare void @julia.pop_gc_frame(%jl_value_t addrspace(10)**)
declare noalias nonnull %jl_value_t addrspace(10)* @julia.gc_alloc_bytes(i8*, i64) #0
Expand All @@ -23,7 +23,7 @@ top:
; CHECK: %gcframe = alloca %jl_value_t addrspace(10)*, i32 4
; CHECK-NEXT: [[GCFRAME_BYTES:%.*]] = bitcast %jl_value_t addrspace(10)** %gcframe to i8*
; CHECK-NEXT: call void @llvm.memset.p0i8.i32(i8* [[GCFRAME_BYTES]], i8 0, i32 32, i32 0, i1 false), !tbaa !0
%gcframe = call %jl_value_t addrspace(10)** @julia.new_gc_frame(i64 2)
%gcframe = call %jl_value_t addrspace(10)** @julia.new_gc_frame(i32 2)
; CHECK: %ptls = call %jl_value_t*** @julia.ptls_states()
%ptls = call %jl_value_t*** @julia.ptls_states()
; CHECK-NEXT: [[GCFRAME_SIZE_PTR:%.*]] = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %gcframe, i32 0
Expand All @@ -36,7 +36,7 @@ top:
; CHECK-NEXT: store %jl_value_t** [[PREV_GCFRAME]], %jl_value_t*** [[PREV_GCFRAME_PTR2]], !tbaa !0
; CHECK-NEXT: [[GCFRAME_SLOT2:%.*]] = bitcast %jl_value_t*** [[GCFRAME_SLOT]] to %jl_value_t addrspace(10)***
; CHECK-NEXT: store %jl_value_t addrspace(10)** %gcframe, %jl_value_t addrspace(10)*** [[GCFRAME_SLOT2]]
call void @julia.push_gc_frame(%jl_value_t addrspace(10)** %gcframe, i64 2)
call void @julia.push_gc_frame(%jl_value_t addrspace(10)** %gcframe, i32 2)
%aboxed = call %jl_value_t addrspace(10)* @jl_box_int64(i64 signext %a)
; CHECK: %frame_slot_1 = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %gcframe, i32 3
%frame_slot_1 = call %jl_value_t addrspace(10)** @julia.get_gc_frame_slot(%jl_value_t addrspace(10)** %gcframe, i32 1)
Expand Down
6 changes: 3 additions & 3 deletions test/llvmpasses/late-lower-gc.ll
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ declare noalias nonnull %jl_value_t addrspace(10)* @julia.gc_alloc_obj(i8*, i64,
define void @gc_frame_lowering(i64 %a, i64 %b) {
top:
; CHECK-LABEL: @gc_frame_lowering
; CHECK: %gcframe = call %jl_value_t addrspace(10)** @julia.new_gc_frame([[SIZE_T:i.[0-9]+]] 2)
; CHECK: %gcframe = call %jl_value_t addrspace(10)** @julia.new_gc_frame(i32 2)
%ptls = call %jl_value_t*** @julia.ptls_states()
; CHECK: %ptls = call %jl_value_t*** @julia.ptls_states()
; CHECK-NEXT: call void @julia.push_gc_frame(%jl_value_t addrspace(10)** %gcframe, [[SIZE_T]] 2)
; CHECK-NEXT: call void @julia.push_gc_frame(%jl_value_t addrspace(10)** %gcframe, i32 2)
; CHECK-NEXT: call %jl_value_t addrspace(10)* @jl_box_int64
%aboxed = call %jl_value_t addrspace(10)* @jl_box_int64(i64 signext %a)
; CHECK: [[GEP0:%.*]] = call %jl_value_t addrspace(10)** @julia.get_gc_frame_slot(%jl_value_t addrspace(10)** %gcframe, i32 [[GEPSLOT0:[0-9]+]])
Expand All @@ -39,7 +39,7 @@ top:
; CHECK-LABEL: @gc_alloc_lowering
%ptls = call %jl_value_t*** @julia.ptls_states()
%ptls_i8 = bitcast %jl_value_t*** %ptls to i8*
; CHECK: %v = call %jl_value_t addrspace(10)* @julia.gc_alloc_bytes(i8* %ptls_i8, [[SIZE_T]] 8)
; CHECK: %v = call %jl_value_t addrspace(10)* @julia.gc_alloc_bytes(i8* %ptls_i8, [[SIZE_T:i.[0-9]+]] 8)
; CHECK-NEXT: [[V2:%.*]] = bitcast %jl_value_t addrspace(10)* %v to %jl_value_t addrspace(10)* addrspace(10)*
; CHECK-NEXT: [[V_HEADROOM:%.*]] = getelementptr %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)* addrspace(10)* [[V2]], i64 -1
; CHECK-NEXT: store %jl_value_t addrspace(10)* @tag, %jl_value_t addrspace(10)* addrspace(10)* [[V_HEADROOM]], !tbaa !0
Expand Down

0 comments on commit ee1eaf5

Please sign in to comment.