@@ -108,6 +108,7 @@ impl<'ll, 'tcx> IntrinsicCallMethods<'tcx> for Builder<'_, 'll, 'tcx> {
108
108
let ( simple_ty, simple_fn) = simple. unwrap ( ) ;
109
109
self . call (
110
110
simple_ty,
111
+ None ,
111
112
simple_fn,
112
113
& args. iter ( ) . map ( |arg| arg. immediate ( ) ) . collect :: < Vec < _ > > ( ) ,
113
114
None ,
@@ -435,7 +436,7 @@ fn try_intrinsic<'ll>(
435
436
) {
436
437
if bx. sess ( ) . panic_strategy ( ) == PanicStrategy :: Abort {
437
438
let try_func_ty = bx. type_func ( & [ bx. type_i8p ( ) ] , bx. type_void ( ) ) ;
438
- bx. call ( try_func_ty, try_func, & [ data] , None ) ;
439
+ bx. call ( try_func_ty, None , try_func, & [ data] , None ) ;
439
440
// Return 0 unconditionally from the intrinsic call;
440
441
// we can never unwind.
441
442
let ret_align = bx. tcx ( ) . data_layout . i32_align . abi ;
@@ -534,7 +535,7 @@ fn codegen_msvc_try<'ll>(
534
535
let ptr_align = bx. tcx ( ) . data_layout . pointer_align . abi ;
535
536
let slot = bx. alloca ( bx. type_i8p ( ) , ptr_align) ;
536
537
let try_func_ty = bx. type_func ( & [ bx. type_i8p ( ) ] , bx. type_void ( ) ) ;
537
- bx. invoke ( try_func_ty, try_func, & [ data] , normal, catchswitch, None ) ;
538
+ bx. invoke ( try_func_ty, None , try_func, & [ data] , normal, catchswitch, None ) ;
538
539
539
540
bx. switch_to_block ( normal) ;
540
541
bx. ret ( bx. const_i32 ( 0 ) ) ;
@@ -578,15 +579,15 @@ fn codegen_msvc_try<'ll>(
578
579
let funclet = bx. catch_pad ( cs, & [ tydesc, flags, slot] ) ;
579
580
let ptr = bx. load ( bx. type_i8p ( ) , slot, ptr_align) ;
580
581
let catch_ty = bx. type_func ( & [ bx. type_i8p ( ) , bx. type_i8p ( ) ] , bx. type_void ( ) ) ;
581
- bx. call ( catch_ty, catch_func, & [ data, ptr] , Some ( & funclet) ) ;
582
+ bx. call ( catch_ty, None , catch_func, & [ data, ptr] , Some ( & funclet) ) ;
582
583
bx. catch_ret ( & funclet, caught) ;
583
584
584
585
// The flag value of 64 indicates a "catch-all".
585
586
bx. switch_to_block ( catchpad_foreign) ;
586
587
let flags = bx. const_i32 ( 64 ) ;
587
588
let null = bx. const_null ( bx. type_i8p ( ) ) ;
588
589
let funclet = bx. catch_pad ( cs, & [ null, flags, null] ) ;
589
- bx. call ( catch_ty, catch_func, & [ data, null] , Some ( & funclet) ) ;
590
+ bx. call ( catch_ty, None , catch_func, & [ data, null] , Some ( & funclet) ) ;
590
591
bx. catch_ret ( & funclet, caught) ;
591
592
592
593
bx. switch_to_block ( caught) ;
@@ -595,7 +596,7 @@ fn codegen_msvc_try<'ll>(
595
596
596
597
// Note that no invoke is used here because by definition this function
597
598
// can't panic (that's what it's catching).
598
- let ret = bx. call ( llty, llfn, & [ try_func, data, catch_func] , None ) ;
599
+ let ret = bx. call ( llty, None , llfn, & [ try_func, data, catch_func] , None ) ;
599
600
let i32_align = bx. tcx ( ) . data_layout . i32_align . abi ;
600
601
bx. store ( ret, dest, i32_align) ;
601
602
}
@@ -638,7 +639,7 @@ fn codegen_gnu_try<'ll>(
638
639
let data = llvm:: get_param ( bx. llfn ( ) , 1 ) ;
639
640
let catch_func = llvm:: get_param ( bx. llfn ( ) , 2 ) ;
640
641
let try_func_ty = bx. type_func ( & [ bx. type_i8p ( ) ] , bx. type_void ( ) ) ;
641
- bx. invoke ( try_func_ty, try_func, & [ data] , then, catch, None ) ;
642
+ bx. invoke ( try_func_ty, None , try_func, & [ data] , then, catch, None ) ;
642
643
643
644
bx. switch_to_block ( then) ;
644
645
bx. ret ( bx. const_i32 ( 0 ) ) ;
@@ -656,13 +657,13 @@ fn codegen_gnu_try<'ll>(
656
657
bx. add_clause ( vals, tydesc) ;
657
658
let ptr = bx. extract_value ( vals, 0 ) ;
658
659
let catch_ty = bx. type_func ( & [ bx. type_i8p ( ) , bx. type_i8p ( ) ] , bx. type_void ( ) ) ;
659
- bx. call ( catch_ty, catch_func, & [ data, ptr] , None ) ;
660
+ bx. call ( catch_ty, None , catch_func, & [ data, ptr] , None ) ;
660
661
bx. ret ( bx. const_i32 ( 1 ) ) ;
661
662
} ) ;
662
663
663
664
// Note that no invoke is used here because by definition this function
664
665
// can't panic (that's what it's catching).
665
- let ret = bx. call ( llty, llfn, & [ try_func, data, catch_func] , None ) ;
666
+ let ret = bx. call ( llty, None , llfn, & [ try_func, data, catch_func] , None ) ;
666
667
let i32_align = bx. tcx ( ) . data_layout . i32_align . abi ;
667
668
bx. store ( ret, dest, i32_align) ;
668
669
}
@@ -702,7 +703,7 @@ fn codegen_emcc_try<'ll>(
702
703
let data = llvm:: get_param ( bx. llfn ( ) , 1 ) ;
703
704
let catch_func = llvm:: get_param ( bx. llfn ( ) , 2 ) ;
704
705
let try_func_ty = bx. type_func ( & [ bx. type_i8p ( ) ] , bx. type_void ( ) ) ;
705
- bx. invoke ( try_func_ty, try_func, & [ data] , then, catch, None ) ;
706
+ bx. invoke ( try_func_ty, None , try_func, & [ data] , then, catch, None ) ;
706
707
707
708
bx. switch_to_block ( then) ;
708
709
bx. ret ( bx. const_i32 ( 0 ) ) ;
@@ -741,13 +742,13 @@ fn codegen_emcc_try<'ll>(
741
742
let catch_data = bx. bitcast ( catch_data, bx. type_i8p ( ) ) ;
742
743
743
744
let catch_ty = bx. type_func ( & [ bx. type_i8p ( ) , bx. type_i8p ( ) ] , bx. type_void ( ) ) ;
744
- bx. call ( catch_ty, catch_func, & [ data, catch_data] , None ) ;
745
+ bx. call ( catch_ty, None , catch_func, & [ data, catch_data] , None ) ;
745
746
bx. ret ( bx. const_i32 ( 1 ) ) ;
746
747
} ) ;
747
748
748
749
// Note that no invoke is used here because by definition this function
749
750
// can't panic (that's what it's catching).
750
- let ret = bx. call ( llty, llfn, & [ try_func, data, catch_func] , None ) ;
751
+ let ret = bx. call ( llty, None , llfn, & [ try_func, data, catch_func] , None ) ;
751
752
let i32_align = bx. tcx ( ) . data_layout . i32_align . abi ;
752
753
bx. store ( ret, dest, i32_align) ;
753
754
}
@@ -1217,8 +1218,13 @@ fn generic_simd_intrinsic<'ll, 'tcx>(
1217
1218
} ;
1218
1219
let llvm_name = & format ! ( "llvm.{0}.v{1}{2}" , intr_name, in_len, elem_ty_str) ;
1219
1220
let f = bx. declare_cfn ( llvm_name, llvm:: UnnamedAddr :: No , fn_ty) ;
1220
- let c =
1221
- bx. call ( fn_ty, f, & args. iter ( ) . map ( |arg| arg. immediate ( ) ) . collect :: < Vec < _ > > ( ) , None ) ;
1221
+ let c = bx. call (
1222
+ fn_ty,
1223
+ None ,
1224
+ f,
1225
+ & args. iter ( ) . map ( |arg| arg. immediate ( ) ) . collect :: < Vec < _ > > ( ) ,
1226
+ None ,
1227
+ ) ;
1222
1228
Ok ( c)
1223
1229
}
1224
1230
@@ -1417,8 +1423,13 @@ fn generic_simd_intrinsic<'ll, 'tcx>(
1417
1423
llvm_elem_vec_ty,
1418
1424
) ;
1419
1425
let f = bx. declare_cfn ( & llvm_intrinsic, llvm:: UnnamedAddr :: No , fn_ty) ;
1420
- let v =
1421
- bx. call ( fn_ty, f, & [ args[ 1 ] . immediate ( ) , alignment, mask, args[ 0 ] . immediate ( ) ] , None ) ;
1426
+ let v = bx. call (
1427
+ fn_ty,
1428
+ None ,
1429
+ f,
1430
+ & [ args[ 1 ] . immediate ( ) , alignment, mask, args[ 0 ] . immediate ( ) ] ,
1431
+ None ,
1432
+ ) ;
1422
1433
return Ok ( v) ;
1423
1434
}
1424
1435
@@ -1543,8 +1554,13 @@ fn generic_simd_intrinsic<'ll, 'tcx>(
1543
1554
let fn_ty =
1544
1555
bx. type_func ( & [ llvm_elem_vec_ty, llvm_pointer_vec_ty, alignment_ty, mask_ty] , ret_t) ;
1545
1556
let f = bx. declare_cfn ( & llvm_intrinsic, llvm:: UnnamedAddr :: No , fn_ty) ;
1546
- let v =
1547
- bx. call ( fn_ty, f, & [ args[ 0 ] . immediate ( ) , args[ 1 ] . immediate ( ) , alignment, mask] , None ) ;
1557
+ let v = bx. call (
1558
+ fn_ty,
1559
+ None ,
1560
+ f,
1561
+ & [ args[ 0 ] . immediate ( ) , args[ 1 ] . immediate ( ) , alignment, mask] ,
1562
+ None ,
1563
+ ) ;
1548
1564
return Ok ( v) ;
1549
1565
}
1550
1566
@@ -1992,7 +2008,7 @@ unsupported {} from `{}` with element `{}` of size `{}` to `{}`"#,
1992
2008
1993
2009
let fn_ty = bx. type_func ( & [ vec_ty, vec_ty] , vec_ty) ;
1994
2010
let f = bx. declare_cfn ( llvm_intrinsic, llvm:: UnnamedAddr :: No , fn_ty) ;
1995
- let v = bx. call ( fn_ty, f, & [ lhs, rhs] , None ) ;
2011
+ let v = bx. call ( fn_ty, None , f, & [ lhs, rhs] , None ) ;
1996
2012
return Ok ( v) ;
1997
2013
}
1998
2014
0 commit comments