@@ -864,13 +864,12 @@ function lower_llvm_intrinsics!(@nospecialize(job::CompilerJob), fun::LLVM.Funct
864864 error (" Unsupported intrinsic type: $typ " )
865865 end
866866
867- new_intr_ft = LLVM. FunctionType (typ, parameters (call_ft))
868- new_intr = LLVM. Function (mod, fn, new_intr_ft)
867+ new_intr = LLVM. Function (mod, fn, call_ft)
869868 @dispose builder= IRBuilder (ctx) begin
870869 position! (builder, call)
871870 debuglocation! (builder, call)
872871
873- new_value = call! (builder, new_intr, arguments (call))
872+ new_value = call! (builder, call_ft, new_intr, arguments (call))
874873 replace_uses! (call, new_value)
875874 unsafe_delete! (bb, call)
876875 changed = true
@@ -936,7 +935,7 @@ function lower_llvm_intrinsics!(@nospecialize(job::CompilerJob), fun::LLVM.Funct
936935 if haskey (functions (mod), new_intr_fn)
937936 new_intr = functions (mod)[new_intr_fn]
938937 else
939- new_intr = LLVM. Function (mod, new_intr_fn, LLVM . FunctionType (typ, parameters ( call_ft)) )
938+ new_intr = LLVM. Function (mod, new_intr_fn, call_ft)
940939 push! (function_attributes (new_intr), EnumAttribute (" alwaysinline" ; ctx))
941940
942941 arg0, arg1 = parameters (new_intr)
@@ -1008,9 +1007,9 @@ function lower_llvm_intrinsics!(@nospecialize(job::CompilerJob), fun::LLVM.Funct
10081007 fallback_intr = if haskey (functions (mod), fallback_intr_fn)
10091008 functions (mod)[fallback_intr_fn]
10101009 else
1011- LLVM. Function (mod, fallback_intr_fn, LLVM . FunctionType (typ, parameters ( call_ft)) )
1010+ LLVM. Function (mod, fallback_intr_fn, call_ft)
10121011 end
1013- val = call! (builder, fallback_intr, collect (parameters (new_intr)))
1012+ val = call! (builder, call_ft, fallback_intr, collect (parameters (new_intr)))
10141013 ret! (builder, val)
10151014 end
10161015 end
@@ -1019,7 +1018,7 @@ function lower_llvm_intrinsics!(@nospecialize(job::CompilerJob), fun::LLVM.Funct
10191018 position! (builder, call)
10201019 debuglocation! (builder, call)
10211020
1022- new_value = call! (builder, new_intr, arguments (call))
1021+ new_value = call! (builder, call_ft, new_intr, arguments (call))
10231022 replace_uses! (call, new_value)
10241023 unsafe_delete! (bb, call)
10251024 changed = true
0 commit comments