@@ -407,6 +407,7 @@ static const auto jlgetworld_global = new JuliaVariable{
407
407
static const auto jltls_states_func = new JuliaFunction{
408
408
" julia.ptls_states" ,
409
409
[](LLVMContext &C) { return FunctionType::get (PointerType::get (T_ppjlvalue, 0 ), false ); },
410
+ nullptr ,
410
411
};
411
412
412
413
@@ -476,21 +477,25 @@ static const auto jlcheckassign_func = new JuliaFunction{
476
477
" jl_checked_assignment" ,
477
478
[](LLVMContext &C) { return FunctionType::get (T_void,
478
479
{T_pjlvalue, PointerType::get (T_jlvalue, AddressSpace::CalleeRooted)}, false ); },
480
+ nullptr ,
479
481
};
480
482
static const auto jldeclareconst_func = new JuliaFunction{
481
483
" jl_declare_constant" ,
482
484
[](LLVMContext &C) { return FunctionType::get (T_void,
483
485
{T_pjlvalue}, false ); },
486
+ nullptr ,
484
487
};
485
488
static const auto jlgetbindingorerror_func = new JuliaFunction{
486
489
" jl_get_binding_or_error" ,
487
490
[](LLVMContext &C) { return FunctionType::get (T_pjlvalue,
488
491
{T_pjlvalue, T_pjlvalue}, false ); },
492
+ nullptr ,
489
493
};
490
494
static const auto jlboundp_func = new JuliaFunction{
491
495
" jl_boundp" ,
492
496
[](LLVMContext &C) { return FunctionType::get (T_int32,
493
497
{T_pjlvalue, T_pjlvalue}, false ); },
498
+ nullptr ,
494
499
};
495
500
static const auto jltopeval_func = new JuliaFunction{
496
501
" jl_toplevel_eval" ,
@@ -538,40 +543,48 @@ static const auto jlmethod_func = new JuliaFunction{
538
543
" jl_method_def" ,
539
544
[](LLVMContext &C) { return FunctionType::get (T_void,
540
545
{T_prjlvalue, T_prjlvalue, T_pjlvalue}, false ); },
546
+ nullptr ,
541
547
};
542
548
static const auto jlgenericfunction_func = new JuliaFunction{
543
549
" jl_generic_function_def" ,
544
550
[](LLVMContext &C) { return FunctionType::get (T_prjlvalue,
545
551
{T_pjlvalue, T_pjlvalue, T_pprjlvalue, T_pjlvalue, T_pjlvalue}, false ); },
552
+ nullptr ,
546
553
};
547
554
static const auto jlenter_func = new JuliaFunction{
548
555
" jl_enter_handler" ,
549
556
[](LLVMContext &C) { return FunctionType::get (T_void,
550
557
{T_pint8}, false ); },
558
+ nullptr ,
551
559
};
552
560
static const auto jl_current_exception_func = new JuliaFunction{
553
561
" jl_current_exception" ,
554
562
[](LLVMContext &C) { return FunctionType::get (T_prjlvalue, false ); },
563
+ nullptr ,
555
564
};
556
565
static const auto jlleave_func = new JuliaFunction{
557
566
" jl_pop_handler" ,
558
567
[](LLVMContext &C) { return FunctionType::get (T_void,
559
568
{T_int32}, false ); },
569
+ nullptr ,
560
570
};
561
571
static const auto jl_restore_excstack_func = new JuliaFunction{
562
572
" jl_restore_excstack" ,
563
573
[](LLVMContext &C) { return FunctionType::get (T_void,
564
574
{T_size}, false ); },
575
+ nullptr ,
565
576
};
566
577
static const auto jl_excstack_state_func = new JuliaFunction{
567
578
" jl_excstack_state" ,
568
579
[](LLVMContext &C) { return FunctionType::get (T_size, false ); },
580
+ nullptr ,
569
581
};
570
582
static const auto jlegal_func = new JuliaFunction{
571
583
" jl_egal" ,
572
584
[](LLVMContext &C) {
573
585
Type *T = PointerType::get (T_jlvalue, AddressSpace::CalleeRooted);
574
586
return FunctionType::get (T_int32, {T, T}, false ); },
587
+ nullptr ,
575
588
};
576
589
static const auto jl_alloc_obj_func = new JuliaFunction{
577
590
" julia.gc_alloc_obj" ,
@@ -621,12 +634,14 @@ static const auto jlisa_func = new JuliaFunction{
621
634
" jl_isa" ,
622
635
[](LLVMContext &C) { return FunctionType::get (T_int32,
623
636
{T_prjlvalue, T_prjlvalue}, false ); },
637
+ nullptr ,
624
638
};
625
639
626
640
static const auto jlsubtype_func = new JuliaFunction{
627
641
" jl_subtype" ,
628
642
[](LLVMContext &C) { return FunctionType::get (T_int32,
629
643
{T_prjlvalue, T_prjlvalue}, false ); },
644
+ nullptr ,
630
645
};
631
646
static const auto jlapplytype_func = new JuliaFunction{
632
647
" jl_instantiate_type_in_env" ,
@@ -641,6 +656,7 @@ static const auto jl_object_id__func = new JuliaFunction{
641
656
" jl_object_id_" ,
642
657
[](LLVMContext &C) { return FunctionType::get (T_size,
643
658
{T_prjlvalue, PointerType::get (T_int8, AddressSpace::Derived)}, false ); },
659
+ nullptr ,
644
660
};
645
661
static const auto setjmp_func = new JuliaFunction{
646
662
jl_setjmp_name,
@@ -669,11 +685,13 @@ static const auto jldlsym_func = new JuliaFunction{
669
685
" jl_load_and_lookup" ,
670
686
[](LLVMContext &C) { return FunctionType::get (T_pvoidfunc,
671
687
{T_pint8, T_pint8, PointerType::get (T_pint8, 0 )}, false ); },
688
+ nullptr ,
672
689
};
673
690
static const auto jltypeassert_func = new JuliaFunction{
674
691
" jl_typeassert" ,
675
692
[](LLVMContext &C) { return FunctionType::get (T_void,
676
693
{T_prjlvalue, T_prjlvalue}, false ); },
694
+ nullptr ,
677
695
};
678
696
static const auto jlgetnthfieldchecked_func = new JuliaFunction{
679
697
" jl_get_nth_field_checked" ,
@@ -704,11 +722,13 @@ static const auto jlgetcfunctiontrampoline_func = new JuliaFunction{
704
722
static const auto diff_gc_total_bytes_func = new JuliaFunction{
705
723
" jl_gc_diff_total_bytes" ,
706
724
[](LLVMContext &C) { return FunctionType::get (T_int64, false ); },
725
+ nullptr ,
707
726
};
708
727
static const auto sync_gc_total_bytes_func = new JuliaFunction{
709
728
" jl_gc_sync_total_bytes" ,
710
729
[](LLVMContext &C) { return FunctionType::get (T_int64,
711
730
{T_int64}, false ); },
731
+ nullptr ,
712
732
};
713
733
static const auto jlarray_data_owner_func = new JuliaFunction{
714
734
" jl_array_data_owner" ,
@@ -745,14 +765,17 @@ BOX_FUNC(ssavalue, T_prjlvalue, T_size, nullptr);
745
765
static const auto gcroot_flush_func = new JuliaFunction{
746
766
" julia.gcroot_flush" ,
747
767
[](LLVMContext &C) { return FunctionType::get (T_void, false ); },
768
+ nullptr ,
748
769
};
749
770
static const auto gc_preserve_begin_func = new JuliaFunction{
750
771
" llvm.julia.gc_preserve_begin" ,
751
772
[](LLVMContext &C) { return FunctionType::get (Type::getTokenTy (C), true ); },
773
+ nullptr ,
752
774
};
753
775
static const auto gc_preserve_end_func = new JuliaFunction {
754
776
" llvm.julia.gc_preserve_end" ,
755
777
[](LLVMContext &C) { return FunctionType::get (T_void, {Type::getTokenTy (C)}, false ); },
778
+ nullptr ,
756
779
};
757
780
static const auto except_enter_func = new JuliaFunction{
758
781
" julia.except_enter" ,
@@ -3796,7 +3819,7 @@ static void emit_phinode_assign(jl_codectx_t &ctx, ssize_t idx, jl_value_t *r)
3796
3819
Value *isboxed = ctx.builder .CreateICmpNE (
3797
3820
ctx.builder .CreateAnd (Tindex_phi, ConstantInt::get (T_int8, 0x80 )),
3798
3821
ConstantInt::get (T_int8, 0 ));
3799
- #if JL_LLVM_VERSION >= 110000
3822
+ #if JL_LLVM_VERSION >= 100000
3800
3823
ctx.builder .CreateMemCpy (phi, MaybeAlign (min_align), dest, MaybeAlign (0 ), nbytes, false );
3801
3824
#else
3802
3825
ctx.builder .CreateMemCpy (phi, min_align, dest, 0 , nbytes, false );
@@ -3840,7 +3863,7 @@ static void emit_phinode_assign(jl_codectx_t &ctx, ssize_t idx, jl_value_t *r)
3840
3863
// here it's moved into phi in the successor (from dest)
3841
3864
dest = emit_static_alloca (ctx, vtype);
3842
3865
Value *phi = emit_static_alloca (ctx, vtype);
3843
- #if JL_LLVM_VERSION >= 110000
3866
+ #if JL_LLVM_VERSION >= 100000
3844
3867
ctx.builder .CreateMemCpy (phi, MaybeAlign (julia_alignment (phiType)),
3845
3868
dest, MaybeAlign (0 ),
3846
3869
jl_datatype_size (phiType), false );
0 commit comments