numbox 0.1.1__py3-none-any.whl → 0.1.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of numbox might be problematic. Click here for more details.
- numbox/__init__.py +1 -1
- numbox/core/any_type.py +4 -18
- numbox/core/declare_func.py +2270 -0
- numbox/core/proxy.py +87 -0
- {numbox-0.1.1.dist-info → numbox-0.1.3.dist-info}/METADATA +13 -2
- numbox-0.1.3.dist-info/RECORD +14 -0
- numbox-0.1.1.dist-info/RECORD +0 -12
- {numbox-0.1.1.dist-info → numbox-0.1.3.dist-info}/LICENSE +0 -0
- {numbox-0.1.1.dist-info → numbox-0.1.3.dist-info}/WHEEL +0 -0
- {numbox-0.1.1.dist-info → numbox-0.1.3.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,2270 @@
|
|
|
1
|
+
"""
|
|
2
|
+
|
|
3
|
+
; ModuleID = 'func4'
|
|
4
|
+
source_filename = "<string>"
|
|
5
|
+
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
|
6
|
+
target triple = "arm64-apple-darwin24.3.0"
|
|
7
|
+
|
|
8
|
+
@.const.func4 = internal constant [6 x i8] c"func4\00"
|
|
9
|
+
@_ZN08NumbaEnv8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
10
|
+
@".const.missing Environment: _ZN08NumbaEnv8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx" = internal constant [97 x i8] c"missing Environment: _ZN08NumbaEnv8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx\00"
|
|
11
|
+
@".const.Error creating Python tuple from runtime exception arguments" = internal constant [61 x i8] c"Error creating Python tuple from runtime exception arguments\00"
|
|
12
|
+
@".const.unknown error when calling native function" = internal constant [43 x i8] c"unknown error when calling native function\00"
|
|
13
|
+
@".const.Error creating Python tuple from runtime exception arguments.1" = internal constant [61 x i8] c"Error creating Python tuple from runtime exception arguments\00"
|
|
14
|
+
@".const.unknown error when calling native function.2" = internal constant [43 x i8] c"unknown error when calling native function\00"
|
|
15
|
+
@".const.<numba.core.cpu.CPUContext object at 0x110f389b0>" = internal constant [50 x i8] c"<numba.core.cpu.CPUContext object at 0x110f389b0>\00"
|
|
16
|
+
@_ZN08NumbaEnv8__main__5func3B3v10B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
17
|
+
@.const.pickledata.4575674496 = internal constant [77 x i8] c"\80\04\95B\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C\1Fnegative dimensions not allowed\94\85\94N\87\94."
|
|
18
|
+
@.const.pickledata.4575674496.sha1 = internal constant [20 x i8] c"3\1B\85c\BD\B9\DA\C8\1B8B\22s\05,Ho\C1pk"
|
|
19
|
+
@.const.picklebuf.4575674496 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.const.pickledata.4575674496, i32 0, i32 0), i32 77, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674496.sha1, i32 0, i32 0), i8* null, i32 0 }
|
|
20
|
+
@.const.pickledata.4575674432 = internal constant [137 x i8] c"\80\04\95~\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C[array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.\94\85\94N\87\94."
|
|
21
|
+
@.const.pickledata.4575674432.sha1 = internal constant [20 x i8] c"X\E1N\CC\B5\07\B1\E0 i\81t\02#\E6\85\CB\8C<W"
|
|
22
|
+
@.const.picklebuf.4575674432 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([137 x i8], [137 x i8]* @.const.pickledata.4575674432, i32 0, i32 0), i32 137, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674432.sha1, i32 0, i32 0), i8* null, i32 0 }
|
|
23
|
+
@.const.pickledata.4575216064 = internal constant [86 x i8] c"\80\04\95K\00\00\00\00\00\00\00\8C\08builtins\94\8C\0BMemoryError\94\93\94\8C'Allocation failed (probably too large).\94\85\94N\87\94."
|
|
24
|
+
@.const.pickledata.4575216064.sha1 = internal constant [20 x i8] c"\BA(\9D\81\F0\\p \F3G|\15sH\04\DFe\AB\E2\09"
|
|
25
|
+
@.const.picklebuf.4575216064 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.const.pickledata.4575216064, i32 0, i32 0), i32 86, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575216064.sha1, i32 0, i32 0), i8* null, i32 0 }
|
|
26
|
+
@.const.pickledata.4575674496.14 = internal constant [77 x i8] c"\80\04\95B\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C\1Fnegative dimensions not allowed\94\85\94N\87\94."
|
|
27
|
+
@.const.pickledata.4575674496.sha1.15 = internal constant [20 x i8] c"3\1B\85c\BD\B9\DA\C8\1B8B\22s\05,Ho\C1pk"
|
|
28
|
+
@.const.picklebuf.4575674496.13 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.const.pickledata.4575674496.14, i32 0, i32 0), i32 77, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674496.sha1.15, i32 0, i32 0), i8* null, i32 0 }
|
|
29
|
+
@.const.pickledata.4575674432.16 = internal constant [137 x i8] c"\80\04\95~\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C[array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.\94\85\94N\87\94."
|
|
30
|
+
@.const.pickledata.4575674432.sha1.17 = internal constant [20 x i8] c"X\E1N\CC\B5\07\B1\E0 i\81t\02#\E6\85\CB\8C<W"
|
|
31
|
+
@.const.picklebuf.4575674432.12 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([137 x i8], [137 x i8]* @.const.pickledata.4575674432.16, i32 0, i32 0), i32 137, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674432.sha1.17, i32 0, i32 0), i8* null, i32 0 }
|
|
32
|
+
@.const.pickledata.4575216064.18 = internal constant [86 x i8] c"\80\04\95K\00\00\00\00\00\00\00\8C\08builtins\94\8C\0BMemoryError\94\93\94\8C'Allocation failed (probably too large).\94\85\94N\87\94."
|
|
33
|
+
@.const.pickledata.4575216064.sha1.19 = internal constant [20 x i8] c"\BA(\9D\81\F0\\p \F3G|\15sH\04\DFe\AB\E2\09"
|
|
34
|
+
@.const.picklebuf.4575216064.11 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.const.pickledata.4575216064.18, i32 0, i32 0), i32 86, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575216064.sha1.19, i32 0, i32 0), i8* null, i32 0 }
|
|
35
|
+
@.const.pickledata.4575674496.16 = internal constant [77 x i8] c"\80\04\95B\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C\1Fnegative dimensions not allowed\94\85\94N\87\94."
|
|
36
|
+
@.const.pickledata.4575674496.sha1.17 = internal constant [20 x i8] c"3\1B\85c\BD\B9\DA\C8\1B8B\22s\05,Ho\C1pk"
|
|
37
|
+
@.const.picklebuf.4575674496.15 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.const.pickledata.4575674496.16, i32 0, i32 0), i32 77, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674496.sha1.17, i32 0, i32 0), i8* null, i32 0 }
|
|
38
|
+
@.const.pickledata.4575674432.18 = internal constant [137 x i8] c"\80\04\95~\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C[array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.\94\85\94N\87\94."
|
|
39
|
+
@.const.pickledata.4575674432.sha1.19 = internal constant [20 x i8] c"X\E1N\CC\B5\07\B1\E0 i\81t\02#\E6\85\CB\8C<W"
|
|
40
|
+
@.const.picklebuf.4575674432.14 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([137 x i8], [137 x i8]* @.const.pickledata.4575674432.18, i32 0, i32 0), i32 137, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674432.sha1.19, i32 0, i32 0), i8* null, i32 0 }
|
|
41
|
+
@.const.pickledata.4575216064.20 = internal constant [86 x i8] c"\80\04\95K\00\00\00\00\00\00\00\8C\08builtins\94\8C\0BMemoryError\94\93\94\8C'Allocation failed (probably too large).\94\85\94N\87\94."
|
|
42
|
+
@.const.pickledata.4575216064.sha1.21 = internal constant [20 x i8] c"\BA(\9D\81\F0\\p \F3G|\15sH\04\DFe\AB\E2\09"
|
|
43
|
+
@.const.picklebuf.4575216064.13 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.const.pickledata.4575216064.20, i32 0, i32 0), i32 86, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575216064.sha1.21, i32 0, i32 0), i8* null, i32 0 }
|
|
44
|
+
@_ZN08NumbaEnv8__main__5func2B3v11B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
45
|
+
@_Py_NoneStruct = external global i8
|
|
46
|
+
@PyExc_StopIteration = external global i8
|
|
47
|
+
@_ZN08NumbaEnv5numba7cpython11old_numbers14int_power_impl12_3clocals_3e9int_powerB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAExx = common local_unnamed_addr global i8* null
|
|
48
|
+
@.const.pickledata.4575674496.18 = internal constant [77 x i8] c"\80\04\95B\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C\1Fnegative dimensions not allowed\94\85\94N\87\94."
|
|
49
|
+
@.const.pickledata.4575674496.sha1.19 = internal constant [20 x i8] c"3\1B\85c\BD\B9\DA\C8\1B8B\22s\05,Ho\C1pk"
|
|
50
|
+
@.const.picklebuf.4575674496.17 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.const.pickledata.4575674496.18, i32 0, i32 0), i32 77, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674496.sha1.19, i32 0, i32 0), i8* null, i32 0 }
|
|
51
|
+
@.const.pickledata.4575674432.20 = internal constant [137 x i8] c"\80\04\95~\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C[array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.\94\85\94N\87\94."
|
|
52
|
+
@.const.pickledata.4575674432.sha1.21 = internal constant [20 x i8] c"X\E1N\CC\B5\07\B1\E0 i\81t\02#\E6\85\CB\8C<W"
|
|
53
|
+
@.const.picklebuf.4575674432.16 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([137 x i8], [137 x i8]* @.const.pickledata.4575674432.20, i32 0, i32 0), i32 137, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575674432.sha1.21, i32 0, i32 0), i8* null, i32 0 }
|
|
54
|
+
@.const.pickledata.4575216064.22 = internal constant [86 x i8] c"\80\04\95K\00\00\00\00\00\00\00\8C\08builtins\94\8C\0BMemoryError\94\93\94\8C'Allocation failed (probably too large).\94\85\94N\87\94."
|
|
55
|
+
@.const.pickledata.4575216064.sha1.23 = internal constant [20 x i8] c"\BA(\9D\81\F0\\p \F3G|\15sH\04\DFe\AB\E2\09"
|
|
56
|
+
@.const.picklebuf.4575216064.15 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.const.pickledata.4575216064.22, i32 0, i32 0), i32 86, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4575216064.sha1.23, i32 0, i32 0), i8* null, i32 0 }
|
|
57
|
+
@_ZN08NumbaEnv8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
58
|
+
@PyExc_RuntimeError = external global i8
|
|
59
|
+
@PyExc_SystemError = external global i8
|
|
60
|
+
@_ZN08NumbaEnv5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29 = common local_unnamed_addr global i8* null
|
|
61
|
+
@_ZN08NumbaEnv5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29 = common local_unnamed_addr global i8* null
|
|
62
|
+
@_ZN08NumbaEnv5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj = common local_unnamed_addr global i8* null
|
|
63
|
+
@_ZN08NumbaEnv5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj = common local_unnamed_addr global i8* null
|
|
64
|
+
@_ZN08NumbaEnv5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE = common local_unnamed_addr global i8* null
|
|
65
|
+
@_ZN08NumbaEnv5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE = common local_unnamed_addr global i8* null
|
|
66
|
+
@_ZN08NumbaEnv5numba2np8arrayobj15make_nditer_cls12_3clocals_3e6NdIter13init_specific12_3clocals_3e11check_shapeB3v14B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE8UniTupleIxLi1EE8UniTupleIxLi1EE = common local_unnamed_addr global i8* null
|
|
67
|
+
|
|
68
|
+
define i32 @_ZN8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx([5 x double]* noalias nocapture writeonly %retptr, { i8*, i32, i8*, i8*, i32 }** noalias nocapture writeonly %excinfo, i64 %arg.m) local_unnamed_addr {
|
|
69
|
+
B0.endif:
|
|
70
|
+
%.152 = alloca { double, double, i64, double, double }, align 8
|
|
71
|
+
%excinfo.1 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
72
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.1, align 8
|
|
73
|
+
%.636 = alloca { double, double, i64, i64, double }, align 8
|
|
74
|
+
%excinfo.3 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
75
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.3, align 8
|
|
76
|
+
%.848 = alloca { double, double, double, i64, i64 }, align 8
|
|
77
|
+
%excinfo.5 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
78
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.5, align 8
|
|
79
|
+
%0 = tail call i64 @llvm.smax.i64(i64 %arg.m, i64 0)
|
|
80
|
+
%.10484.not = icmp slt i64 %arg.m, 1
|
|
81
|
+
br i1 %.10484.not, label %B228.else.if, label %B54.preheader
|
|
82
|
+
|
|
83
|
+
B54.preheader: ; preds = %B0.endif
|
|
84
|
+
br label %B54
|
|
85
|
+
|
|
86
|
+
B54: ; preds = %B54.preheader, %B192.else.if
|
|
87
|
+
%lsr.iv125 = phi i64 [ 10, %B54.preheader ], [ %lsr.iv.next126, %B192.else.if ]
|
|
88
|
+
%lsr.iv123 = phi i64 [ 0, %B54.preheader ], [ %lsr.iv.next124, %B192.else.if ]
|
|
89
|
+
%total_sum.4.090 = phi double [ %total_sum.5.1, %B192.else.if ], [ 0.000000e+00, %B54.preheader ]
|
|
90
|
+
%max_value.3.089 = phi double [ %max_value.4.1, %B192.else.if ], [ -1.000000e+07, %B54.preheader ]
|
|
91
|
+
%factorial_sum.3.088 = phi double [ %factorial_sum.4.1, %B192.else.if ], [ 0.000000e+00, %B54.preheader ]
|
|
92
|
+
%count_total.3.087 = phi double [ %count_total.4.1, %B192.else.if ], [ 0.000000e+00, %B54.preheader ]
|
|
93
|
+
%.46.085 = phi i64 [ %.117, %B192.else.if ], [ 1, %B54.preheader ]
|
|
94
|
+
%1 = bitcast { double, double, i64, double, double }* %.152 to i8*
|
|
95
|
+
%2 = udiv i64 %.46.085, 11
|
|
96
|
+
%3 = mul nuw nsw i64 %2, 11
|
|
97
|
+
%4 = add nsw i64 %3, -1
|
|
98
|
+
%5 = udiv i64 %.46.085, 7
|
|
99
|
+
%6 = mul nuw nsw i64 %5, 7
|
|
100
|
+
%7 = add nsw i64 %6, -1
|
|
101
|
+
%8 = udiv i64 %.46.085, 5
|
|
102
|
+
%9 = mul nuw nsw i64 %8, 5
|
|
103
|
+
%10 = add nsw i64 %9, -1
|
|
104
|
+
%11 = add i64 %lsr.iv123, 1
|
|
105
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %1, i8 0, i64 40, i1 false)
|
|
106
|
+
%.156 = call i32 @_ZN8__main__5func3B3v10B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, i64, double, double }* nonnull %.152, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.1, i64 %lsr.iv125)
|
|
107
|
+
switch i32 %.156, label %B54.if [
|
|
108
|
+
i32 -2, label %B54.endif
|
|
109
|
+
i32 0, label %B54.endif
|
|
110
|
+
]
|
|
111
|
+
|
|
112
|
+
B270: ; preds = %B270.preheader, %B270.endif
|
|
113
|
+
%lsr.iv121 = phi i64 [ 5, %B270.preheader ], [ %lsr.iv.next122, %B270.endif ]
|
|
114
|
+
%lsr.iv119 = phi i64 [ %spec.select66, %B270.preheader ], [ %lsr.iv.next120, %B270.endif ]
|
|
115
|
+
%max_value.5.082 = phi double [ %.676, %B270.endif ], [ %max_value.3.0.lcssa, %B270.preheader ]
|
|
116
|
+
%total_sum.6.081 = phi double [ %.671, %B270.endif ], [ %total_sum.4.0.lcssa, %B270.preheader ]
|
|
117
|
+
%12 = bitcast { double, double, i64, i64, double }* %.636 to i8*
|
|
118
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
|
|
119
|
+
%.640 = call i32 @_ZN8__main__5func2B3v11B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, i64, i64, double }* nonnull %.636, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.3, i64 %lsr.iv121)
|
|
120
|
+
switch i32 %.640, label %B270.if [
|
|
121
|
+
i32 -2, label %B270.endif
|
|
122
|
+
i32 0, label %B270.endif
|
|
123
|
+
]
|
|
124
|
+
|
|
125
|
+
B348: ; preds = %B270.endif, %B228.else.if
|
|
126
|
+
%total_sum.6.0.lcssa = phi double [ %total_sum.4.0.lcssa, %B228.else.if ], [ %.671, %B270.endif ]
|
|
127
|
+
%max_value.5.0.lcssa = phi double [ %max_value.3.0.lcssa, %B228.else.if ], [ %.676, %B270.endif ]
|
|
128
|
+
%.15.i.i = icmp slt i64 %arg.m, 0
|
|
129
|
+
br i1 %.15.i.i, label %B348.if, label %B0.endif.endif.i.i, !prof !0
|
|
130
|
+
|
|
131
|
+
B0.endif.endif.i.i: ; preds = %B348
|
|
132
|
+
%.29.i.i = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %arg.m, i64 8)
|
|
133
|
+
%.31.i.i = extractvalue { i64, i1 } %.29.i.i, 1
|
|
134
|
+
br i1 %.31.i.i, label %B348.if, label %B0.endif.endif.endif.i.i, !prof !0
|
|
135
|
+
|
|
136
|
+
B0.endif.endif.endif.i.i: ; preds = %B0.endif.endif.i.i
|
|
137
|
+
%.30.i.i = extractvalue { i64, i1 } %.29.i.i, 0
|
|
138
|
+
%.7.i.i.i.i = tail call i8* @NRT_MemInfo_alloc_aligned(i64 %.30.i.i, i32 32), !noalias !1
|
|
139
|
+
%.8.i.i.i.i = icmp eq i8* %.7.i.i.i.i, null
|
|
140
|
+
br i1 %.8.i.i.i.i, label %B348.if, label %B348.endif.endif, !prof !0
|
|
141
|
+
|
|
142
|
+
B418: ; preds = %B418.preheader, %B418.endif
|
|
143
|
+
%.752.076 = phi i64 [ %.847, %B418.endif ], [ 0, %B418.preheader ]
|
|
144
|
+
%13 = bitcast { double, double, double, i64, i64 }* %.848 to i8*
|
|
145
|
+
%.847 = add nuw nsw i64 %.752.076, 1
|
|
146
|
+
%14 = add i64 %.752.076, 1
|
|
147
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
|
|
148
|
+
%.852 = call i32 @_ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.848, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.5, i64 %14)
|
|
149
|
+
switch i32 %.852, label %B418.if [
|
|
150
|
+
i32 -2, label %B418.endif
|
|
151
|
+
i32 0, label %B418.endif
|
|
152
|
+
]
|
|
153
|
+
|
|
154
|
+
B52.endif.i.preheader: ; preds = %B418.endif
|
|
155
|
+
%smax = call i64 @llvm.smax.i64(i64 %arg.m, i64 1)
|
|
156
|
+
br label %B52.endif.i
|
|
157
|
+
|
|
158
|
+
B52.endif.i: ; preds = %B52.endif.i.preheader, %B52.endif.i
|
|
159
|
+
%lsr.iv117 = phi double* [ %.6.i1.i.i, %B52.endif.i.preheader ], [ %scevgep, %B52.endif.i ]
|
|
160
|
+
%lsr.iv = phi i64 [ %smax, %B52.endif.i.preheader ], [ %lsr.iv.next, %B52.endif.i ]
|
|
161
|
+
%c.2.06.i = phi double [ %.239.i, %B52.endif.i ], [ 0.000000e+00, %B52.endif.i.preheader ]
|
|
162
|
+
%.236.i = load double, double* %lsr.iv117, align 8, !noalias !14
|
|
163
|
+
%.239.i = fadd double %c.2.06.i, %.236.i
|
|
164
|
+
%lsr.iv.next = add nsw i64 %lsr.iv, -1
|
|
165
|
+
%scevgep = getelementptr double, double* %lsr.iv117, i64 1
|
|
166
|
+
%exitcond.not = icmp eq i64 %lsr.iv.next, 0
|
|
167
|
+
br i1 %exitcond.not, label %B472.endif, label %B52.endif.i, !prof !0
|
|
168
|
+
|
|
169
|
+
common.ret: ; preds = %B418.if, %B348.if, %B270.if, %B54.if, %B472.endif
|
|
170
|
+
%common.ret.op = phi i32 [ 0, %B472.endif ], [ 1, %B348.if ], [ %.852, %B418.if ], [ %.640, %B270.if ], [ %.156, %B54.if ]
|
|
171
|
+
ret i32 %common.ret.op
|
|
172
|
+
|
|
173
|
+
B54.if: ; preds = %B54
|
|
174
|
+
%.164 = icmp sgt i32 %.156, 0
|
|
175
|
+
%.157 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.1, align 8
|
|
176
|
+
%.165 = select i1 %.164, { i8*, i32, i8*, i8*, i32 }* %.157, { i8*, i32, i8*, i8*, i32 }* undef
|
|
177
|
+
store { i8*, i32, i8*, i8*, i32 }* %.165, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
178
|
+
br label %common.ret
|
|
179
|
+
|
|
180
|
+
B54.endif: ; preds = %B54, %B54
|
|
181
|
+
%15 = bitcast { double, double, i64, double, double }* %.152 to double*
|
|
182
|
+
%16 = bitcast { double, double, i64, double, double }* %.152 to i8*
|
|
183
|
+
%sunkaddr = getelementptr inbounds i8, i8* %16, i64 32
|
|
184
|
+
%17 = bitcast i8* %sunkaddr to double*
|
|
185
|
+
%.166.fca.4.load = load double, double* %17, align 8
|
|
186
|
+
%18 = bitcast { double, double, i64, double, double }* %.152 to i8*
|
|
187
|
+
%sunkaddr130 = getelementptr inbounds i8, i8* %18, i64 24
|
|
188
|
+
%19 = bitcast i8* %sunkaddr130 to double*
|
|
189
|
+
%.166.fca.3.load = load double, double* %19, align 8
|
|
190
|
+
%20 = bitcast { double, double, i64, double, double }* %.152 to i8*
|
|
191
|
+
%sunkaddr131 = getelementptr inbounds i8, i8* %20, i64 8
|
|
192
|
+
%21 = bitcast i8* %sunkaddr131 to double*
|
|
193
|
+
%.166.fca.1.load = load double, double* %21, align 8
|
|
194
|
+
%.166.fca.0.load = load double, double* %15, align 8
|
|
195
|
+
%.196 = fadd double %total_sum.4.090, %.166.fca.0.load
|
|
196
|
+
%.204 = fcmp ogt double %.166.fca.1.load, %max_value.3.089
|
|
197
|
+
%max_value.4.1 = select i1 %.204, double %.166.fca.1.load, double %max_value.3.089
|
|
198
|
+
%.222 = fadd double %factorial_sum.3.088, %.166.fca.3.load
|
|
199
|
+
%.232 = fadd double %count_total.3.087, %.166.fca.4.load
|
|
200
|
+
%.283 = icmp eq i64 %10, %lsr.iv123
|
|
201
|
+
%.286 = fmul double %.196, 0x3FEE666666666666
|
|
202
|
+
%total_sum.5.1 = select i1 %.283, double %.286, double %.196
|
|
203
|
+
%.341 = icmp eq i64 %7, %lsr.iv123
|
|
204
|
+
br i1 %.341, label %B182.else, label %B192.else.if
|
|
205
|
+
|
|
206
|
+
B182.else: ; preds = %B54.endif
|
|
207
|
+
%.11.i = frem double %.222, 2.000000e+00
|
|
208
|
+
%.12.i = fsub double %.222, %.11.i
|
|
209
|
+
%.13.i = fmul double %.12.i, 5.000000e-01
|
|
210
|
+
%22 = fcmp olt double %.11.i, 0.000000e+00
|
|
211
|
+
%.22.i = fadd double %.13.i, -1.000000e+00
|
|
212
|
+
%.7.0.i = select i1 %22, double %.22.i, double %.13.i, !prof !17
|
|
213
|
+
%.32.i = fcmp ueq double %.7.0.i, 0.000000e+00
|
|
214
|
+
br i1 %.32.i, label %entry.endif.endif.if.i, label %entry.endif.endif.thread.i
|
|
215
|
+
|
|
216
|
+
entry.endif.endif.thread.i: ; preds = %B182.else
|
|
217
|
+
%.34.i = tail call double @llvm.floor.f64(double %.7.0.i)
|
|
218
|
+
%.35.i = fsub double %.7.0.i, %.34.i
|
|
219
|
+
%.36.i = fadd double %.34.i, 1.000000e+00
|
|
220
|
+
%.37.i = fcmp ogt double %.35.i, 5.000000e-01
|
|
221
|
+
%.38.i = select i1 %.37.i, double %.36.i, double %.34.i
|
|
222
|
+
br label %B192.else.if
|
|
223
|
+
|
|
224
|
+
entry.endif.endif.if.i: ; preds = %B182.else
|
|
225
|
+
%.43.i = fmul double %.7.0.i, %.7.0.i
|
|
226
|
+
%.45.i = fmul double %.222, %.43.i
|
|
227
|
+
%.46.i = fmul double %.45.i, 5.000000e-01
|
|
228
|
+
br label %B192.else.if
|
|
229
|
+
|
|
230
|
+
B192.else.if: ; preds = %B54.endif, %entry.endif.endif.thread.i, %entry.endif.endif.if.i
|
|
231
|
+
%factorial_sum.4.1 = phi double [ %.222, %B54.endif ], [ %.46.i, %entry.endif.endif.if.i ], [ %.38.i, %entry.endif.endif.thread.i ]
|
|
232
|
+
%.411 = icmp eq i64 %4, %lsr.iv123
|
|
233
|
+
%.191.i = mul nsw i64 %11, %11
|
|
234
|
+
%.450 = sitofp i64 %.191.i to double
|
|
235
|
+
%.451 = select i1 %.411, double %.450, double -0.000000e+00
|
|
236
|
+
%count_total.4.1 = fadd double %.232, %.451
|
|
237
|
+
%lsr.iv.next124 = add nuw nsw i64 %lsr.iv123, 1
|
|
238
|
+
%lsr.iv.next126 = add i64 %lsr.iv125, 10
|
|
239
|
+
%.117 = add nuw i64 %.46.085, 1
|
|
240
|
+
%exitcond100.not = icmp eq i64 %0, %lsr.iv.next124
|
|
241
|
+
br i1 %exitcond100.not, label %B228.else.if, label %B54
|
|
242
|
+
|
|
243
|
+
B228.else.if: ; preds = %B192.else.if, %B0.endif
|
|
244
|
+
%count_total.3.0.lcssa = phi double [ 0.000000e+00, %B0.endif ], [ %count_total.4.1, %B192.else.if ]
|
|
245
|
+
%factorial_sum.3.0.lcssa = phi double [ 0.000000e+00, %B0.endif ], [ %factorial_sum.4.1, %B192.else.if ]
|
|
246
|
+
%max_value.3.0.lcssa = phi double [ -1.000000e+07, %B0.endif ], [ %max_value.4.1, %B192.else.if ]
|
|
247
|
+
%total_sum.4.0.lcssa = phi double [ 0.000000e+00, %B0.endif ], [ %total_sum.5.1, %B192.else.if ]
|
|
248
|
+
%.494 = sdiv i64 %arg.m, 2
|
|
249
|
+
%23 = and i64 %arg.m, -9223372036854775807
|
|
250
|
+
%.497 = icmp eq i64 %23, -9223372036854775807
|
|
251
|
+
%.504 = sext i1 %.497 to i64
|
|
252
|
+
%spec.select66 = add nsw i64 %.494, %.504
|
|
253
|
+
%.59678.not = icmp slt i64 %spec.select66, 1
|
|
254
|
+
br i1 %.59678.not, label %B348, label %B270.preheader
|
|
255
|
+
|
|
256
|
+
B270.preheader: ; preds = %B228.else.if
|
|
257
|
+
br label %B270
|
|
258
|
+
|
|
259
|
+
B270.if: ; preds = %B270
|
|
260
|
+
%.648 = icmp sgt i32 %.640, 0
|
|
261
|
+
%.641 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.3, align 8
|
|
262
|
+
%.649 = select i1 %.648, { i8*, i32, i8*, i8*, i32 }* %.641, { i8*, i32, i8*, i8*, i32 }* undef
|
|
263
|
+
store { i8*, i32, i8*, i8*, i32 }* %.649, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
264
|
+
br label %common.ret
|
|
265
|
+
|
|
266
|
+
B270.endif: ; preds = %B270, %B270
|
|
267
|
+
%24 = bitcast { double, double, i64, i64, double }* %.636 to double*
|
|
268
|
+
%25 = bitcast { double, double, i64, i64, double }* %.636 to i8*
|
|
269
|
+
%sunkaddr132 = getelementptr inbounds i8, i8* %25, i64 8
|
|
270
|
+
%26 = bitcast i8* %sunkaddr132 to double*
|
|
271
|
+
%.650.fca.1.load = load double, double* %26, align 8
|
|
272
|
+
%.650.fca.0.load = load double, double* %24, align 8
|
|
273
|
+
%.671 = fadd double %total_sum.6.081, %.650.fca.0.load
|
|
274
|
+
%.675 = fcmp ogt double %.650.fca.1.load, %max_value.5.082
|
|
275
|
+
%.676 = select i1 %.675, double %.650.fca.1.load, double %max_value.5.082
|
|
276
|
+
%lsr.iv.next120 = add i64 %lsr.iv119, -1
|
|
277
|
+
%lsr.iv.next122 = add i64 %lsr.iv121, 5
|
|
278
|
+
%exitcond99.not = icmp eq i64 %lsr.iv.next120, 0
|
|
279
|
+
br i1 %exitcond99.not, label %B348, label %B270
|
|
280
|
+
|
|
281
|
+
B348.if: ; preds = %B0.endif.endif.endif.i.i, %B0.endif.endif.i.i, %B348
|
|
282
|
+
%excinfo.1.0.ph.i = phi { i8*, i32, i8*, i8*, i32 }* [ @.const.picklebuf.4575216064.15, %B0.endif.endif.endif.i.i ], [ @.const.picklebuf.4575674432.16, %B0.endif.endif.i.i ], [ @.const.picklebuf.4575674496.17, %B348 ]
|
|
283
|
+
store { i8*, i32, i8*, i8*, i32 }* %excinfo.1.0.ph.i, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
284
|
+
br label %common.ret
|
|
285
|
+
|
|
286
|
+
B348.endif.endif: ; preds = %B0.endif.endif.endif.i.i
|
|
287
|
+
%27 = icmp slt i64 %arg.m, 1
|
|
288
|
+
%.5.i.i.i = getelementptr i8, i8* %.7.i.i.i.i, i64 24
|
|
289
|
+
%28 = bitcast i8* %.5.i.i.i to double**
|
|
290
|
+
%.6.i1.i.i = load double*, double** %28, align 8, !noalias !18
|
|
291
|
+
%.26.i.i = shl nuw nsw i64 %arg.m, 3
|
|
292
|
+
%.27.i.i = bitcast double* %.6.i1.i.i to i8*
|
|
293
|
+
tail call void @llvm.memset.p0i8.i64(i8* align 1 %.27.i.i, i8 0, i64 %.26.i.i, i1 false), !noalias !19
|
|
294
|
+
br i1 %27, label %B472.endif, label %B418.preheader
|
|
295
|
+
|
|
296
|
+
B418.preheader: ; preds = %B348.endif.endif
|
|
297
|
+
br label %B418
|
|
298
|
+
|
|
299
|
+
B418.if: ; preds = %B418
|
|
300
|
+
%.860 = icmp sgt i32 %.852, 0
|
|
301
|
+
%.853 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.5, align 8
|
|
302
|
+
%.861 = select i1 %.860, { i8*, i32, i8*, i8*, i32 }* %.853, { i8*, i32, i8*, i8*, i32 }* undef
|
|
303
|
+
store { i8*, i32, i8*, i8*, i32 }* %.861, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
304
|
+
br label %common.ret
|
|
305
|
+
|
|
306
|
+
B418.endif: ; preds = %B418, %B418
|
|
307
|
+
%29 = bitcast { double, double, double, i64, i64 }* %.848 to double*
|
|
308
|
+
%.862.fca.0.load = load double, double* %29, align 8
|
|
309
|
+
%scevgep118 = getelementptr double, double* %.6.i1.i.i, i64 %.752.076
|
|
310
|
+
store double %.862.fca.0.load, double* %scevgep118, align 8
|
|
311
|
+
%exitcond98.not = icmp eq i64 %0, %.847
|
|
312
|
+
br i1 %exitcond98.not, label %B52.endif.i.preheader, label %B418
|
|
313
|
+
|
|
314
|
+
B472.endif: ; preds = %B52.endif.i, %B348.endif.endif
|
|
315
|
+
%c.2.0.lcssa.i = phi double [ 0.000000e+00, %B348.endif.endif ], [ %.239.i, %B52.endif.i ]
|
|
316
|
+
tail call void @NRT_decref(i8* nonnull %.7.i.i.i.i)
|
|
317
|
+
%retptr.repack133 = bitcast [5 x double]* %retptr to double*
|
|
318
|
+
store double %total_sum.6.0.lcssa, double* %retptr.repack133, align 8
|
|
319
|
+
%retptr.repack28 = getelementptr inbounds [5 x double], [5 x double]* %retptr, i64 0, i64 1
|
|
320
|
+
store double %max_value.5.0.lcssa, double* %retptr.repack28, align 8
|
|
321
|
+
%retptr.repack30 = getelementptr inbounds [5 x double], [5 x double]* %retptr, i64 0, i64 2
|
|
322
|
+
store double %factorial_sum.3.0.lcssa, double* %retptr.repack30, align 8
|
|
323
|
+
%retptr.repack32 = getelementptr inbounds [5 x double], [5 x double]* %retptr, i64 0, i64 3
|
|
324
|
+
store double %count_total.3.0.lcssa, double* %retptr.repack32, align 8
|
|
325
|
+
%retptr.repack34 = getelementptr inbounds [5 x double], [5 x double]* %retptr, i64 0, i64 4
|
|
326
|
+
store double %c.2.0.lcssa.i, double* %retptr.repack34, align 8
|
|
327
|
+
br label %common.ret
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
define i8* @_ZN7cpython8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i8* nocapture readnone %py_closure, i8* %py_args, i8* nocapture readnone %py_kws) local_unnamed_addr {
|
|
331
|
+
entry:
|
|
332
|
+
%.5 = alloca i8*, align 8
|
|
333
|
+
%.6 = call i32 (i8*, i8*, i64, i64, ...) @PyArg_UnpackTuple(i8* %py_args, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.const.func4, i64 0, i64 0), i64 1, i64 1, i8** nonnull %.5)
|
|
334
|
+
%.7 = icmp eq i32 %.6, 0
|
|
335
|
+
%.36 = alloca [5 x double], align 8
|
|
336
|
+
%excinfo = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
337
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
338
|
+
br i1 %.7, label %common.ret, label %entry.endif, !prof !0
|
|
339
|
+
|
|
340
|
+
common.ret: ; preds = %entry.endif.endif.endif.endif.endif.endif, %entry.endif.endif.endif.endif.endif.if.endif, %entry.endif.endif.endif.endif.endif.if.endif.if, %entry.endif.endif.endif.endif.endif.endif.if, %entry.endif.endif.endif.endif.endif.endif.endif.endif, %entry.endif.endif.endif, %entry, %entry.endif.endif.endif.endif.endif.if.if.if, %entry.endif.endif.endif.endif.if.endif, %entry.endif.endif.endif.endif.if.if, %entry.endif.if
|
|
341
|
+
%common.ret.op = phi i8* [ null, %entry.endif.if ], [ @_Py_NoneStruct, %entry.endif.endif.endif.endif.if.if ], [ %.55, %entry.endif.endif.endif.endif.if.endif ], [ null, %entry.endif.endif.endif.endif.endif.if.if.if ], [ null, %entry ], [ null, %entry.endif.endif.endif ], [ null, %entry.endif.endif.endif.endif.endif.endif.endif.endif ], [ null, %entry.endif.endif.endif.endif.endif.endif.if ], [ null, %entry.endif.endif.endif.endif.endif.if.endif.if ], [ null, %entry.endif.endif.endif.endif.endif.if.endif ], [ null, %entry.endif.endif.endif.endif.endif.endif ]
|
|
342
|
+
ret i8* %common.ret.op
|
|
343
|
+
|
|
344
|
+
entry.endif: ; preds = %entry
|
|
345
|
+
%.11 = load i8*, i8** @_ZN08NumbaEnv8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx, align 8
|
|
346
|
+
%.16 = icmp eq i8* %.11, null
|
|
347
|
+
br i1 %.16, label %entry.endif.if, label %entry.endif.endif, !prof !0
|
|
348
|
+
|
|
349
|
+
entry.endif.if: ; preds = %entry.endif
|
|
350
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_RuntimeError, i8* getelementptr inbounds ([97 x i8], [97 x i8]* @".const.missing Environment: _ZN08NumbaEnv8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx", i64 0, i64 0))
|
|
351
|
+
br label %common.ret
|
|
352
|
+
|
|
353
|
+
entry.endif.endif: ; preds = %entry.endif
|
|
354
|
+
%.20 = load i8*, i8** %.5, align 8
|
|
355
|
+
%.23 = call i8* @PyNumber_Long(i8* %.20)
|
|
356
|
+
%.24.not = icmp eq i8* %.23, null
|
|
357
|
+
br i1 %.24.not, label %entry.endif.endif.endif, label %entry.endif.endif.if, !prof !0
|
|
358
|
+
|
|
359
|
+
entry.endif.endif.if: ; preds = %entry.endif.endif
|
|
360
|
+
%.26 = call i64 @PyLong_AsLongLong(i8* nonnull %.23)
|
|
361
|
+
call void @Py_DecRef(i8* nonnull %.23)
|
|
362
|
+
br label %entry.endif.endif.endif
|
|
363
|
+
|
|
364
|
+
entry.endif.endif.endif: ; preds = %entry.endif.endif.if, %entry.endif.endif
|
|
365
|
+
%.21.0 = phi i64 [ %.26, %entry.endif.endif.if ], [ 0, %entry.endif.endif ]
|
|
366
|
+
%.31 = call i8* @PyErr_Occurred()
|
|
367
|
+
%.32.not = icmp eq i8* %.31, null
|
|
368
|
+
br i1 %.32.not, label %entry.endif.endif.endif.endif, label %common.ret, !prof !22
|
|
369
|
+
|
|
370
|
+
entry.endif.endif.endif.endif: ; preds = %entry.endif.endif.endif
|
|
371
|
+
%0 = bitcast [5 x double]* %.36 to i8*
|
|
372
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %0, i8 0, i64 40, i1 false)
|
|
373
|
+
%.40 = call i32 @_ZN8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx([5 x double]* nonnull %.36, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo, i64 %.21.0) #2
|
|
374
|
+
%.41 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
375
|
+
%.48 = icmp sgt i32 %.40, 0
|
|
376
|
+
%.49 = select i1 %.48, { i8*, i32, i8*, i8*, i32 }* %.41, { i8*, i32, i8*, i8*, i32 }* undef
|
|
377
|
+
switch i32 %.40, label %entry.endif.endif.endif.endif.endif [
|
|
378
|
+
i32 -2, label %entry.endif.endif.endif.endif.if.if
|
|
379
|
+
i32 0, label %entry.endif.endif.endif.endif.if.endif
|
|
380
|
+
]
|
|
381
|
+
|
|
382
|
+
entry.endif.endif.endif.endif.endif: ; preds = %entry.endif.endif.endif.endif
|
|
383
|
+
%1 = icmp sgt i32 %.40, 0
|
|
384
|
+
br i1 %1, label %entry.endif.endif.endif.endif.endif.if, label %entry.endif.endif.endif.endif.endif.endif
|
|
385
|
+
|
|
386
|
+
entry.endif.endif.endif.endif.if.if: ; preds = %entry.endif.endif.endif.endif
|
|
387
|
+
call void @Py_IncRef(i8* nonnull @_Py_NoneStruct)
|
|
388
|
+
br label %common.ret
|
|
389
|
+
|
|
390
|
+
entry.endif.endif.endif.endif.if.endif: ; preds = %entry.endif.endif.endif.endif
|
|
391
|
+
%2 = bitcast [5 x double]* %.36 to double*
|
|
392
|
+
%3 = bitcast [5 x double]* %.36 to i8*
|
|
393
|
+
%sunkaddr = getelementptr inbounds i8, i8* %3, i64 32
|
|
394
|
+
%4 = bitcast i8* %sunkaddr to double*
|
|
395
|
+
%.50.fca.4.load = load double, double* %4, align 8
|
|
396
|
+
%5 = bitcast [5 x double]* %.36 to i8*
|
|
397
|
+
%sunkaddr2 = getelementptr inbounds i8, i8* %5, i64 24
|
|
398
|
+
%6 = bitcast i8* %sunkaddr2 to double*
|
|
399
|
+
%.50.fca.3.load = load double, double* %6, align 8
|
|
400
|
+
%7 = bitcast [5 x double]* %.36 to i8*
|
|
401
|
+
%sunkaddr3 = getelementptr inbounds i8, i8* %7, i64 16
|
|
402
|
+
%8 = bitcast i8* %sunkaddr3 to double*
|
|
403
|
+
%.50.fca.2.load = load double, double* %8, align 8
|
|
404
|
+
%9 = bitcast [5 x double]* %.36 to i8*
|
|
405
|
+
%sunkaddr4 = getelementptr inbounds i8, i8* %9, i64 8
|
|
406
|
+
%10 = bitcast i8* %sunkaddr4 to double*
|
|
407
|
+
%.50.fca.1.load = load double, double* %10, align 8
|
|
408
|
+
%.50.fca.0.load = load double, double* %2, align 8
|
|
409
|
+
%.55 = call i8* @PyTuple_New(i64 5)
|
|
410
|
+
%.57 = call i8* @PyFloat_FromDouble(double %.50.fca.0.load)
|
|
411
|
+
%.58 = call i32 @PyTuple_SetItem(i8* %.55, i64 0, i8* %.57)
|
|
412
|
+
%.60 = call i8* @PyFloat_FromDouble(double %.50.fca.1.load)
|
|
413
|
+
%.61 = call i32 @PyTuple_SetItem(i8* %.55, i64 1, i8* %.60)
|
|
414
|
+
%.63 = call i8* @PyFloat_FromDouble(double %.50.fca.2.load)
|
|
415
|
+
%.64 = call i32 @PyTuple_SetItem(i8* %.55, i64 2, i8* %.63)
|
|
416
|
+
%.66 = call i8* @PyFloat_FromDouble(double %.50.fca.3.load)
|
|
417
|
+
%.67 = call i32 @PyTuple_SetItem(i8* %.55, i64 3, i8* %.66)
|
|
418
|
+
%.69 = call i8* @PyFloat_FromDouble(double %.50.fca.4.load)
|
|
419
|
+
%.70 = call i32 @PyTuple_SetItem(i8* %.55, i64 4, i8* %.69)
|
|
420
|
+
br label %common.ret
|
|
421
|
+
|
|
422
|
+
entry.endif.endif.endif.endif.endif.if: ; preds = %entry.endif.endif.endif.endif.endif
|
|
423
|
+
call void @PyErr_Clear()
|
|
424
|
+
%.75 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.49, align 8
|
|
425
|
+
%.76 = extractvalue { i8*, i32, i8*, i8*, i32 } %.75, 4
|
|
426
|
+
%.77 = icmp sgt i32 %.76, 0
|
|
427
|
+
%.80 = extractvalue { i8*, i32, i8*, i8*, i32 } %.75, 0
|
|
428
|
+
%.82 = extractvalue { i8*, i32, i8*, i8*, i32 } %.75, 1
|
|
429
|
+
br i1 %.77, label %entry.endif.endif.endif.endif.endif.if.if, label %entry.endif.endif.endif.endif.endif.if.else
|
|
430
|
+
|
|
431
|
+
entry.endif.endif.endif.endif.endif.endif: ; preds = %entry.endif.endif.endif.endif.endif
|
|
432
|
+
switch i32 %.40, label %entry.endif.endif.endif.endif.endif.endif.endif.endif [
|
|
433
|
+
i32 -3, label %entry.endif.endif.endif.endif.endif.endif.if
|
|
434
|
+
i32 -1, label %common.ret
|
|
435
|
+
]
|
|
436
|
+
|
|
437
|
+
entry.endif.endif.endif.endif.endif.if.if: ; preds = %entry.endif.endif.endif.endif.endif.if
|
|
438
|
+
%.83 = sext i32 %.82 to i64
|
|
439
|
+
%.84 = call i8* @PyBytes_FromStringAndSize(i8* %.80, i64 %.83)
|
|
440
|
+
%.85 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.49, align 8
|
|
441
|
+
%.86 = extractvalue { i8*, i32, i8*, i8*, i32 } %.85, 2
|
|
442
|
+
%.88 = extractvalue { i8*, i32, i8*, i8*, i32 } %.85, 3
|
|
443
|
+
%.89 = bitcast i8* %.88 to i8* (i8*)*
|
|
444
|
+
%.90 = call i8* %.89(i8* %.86)
|
|
445
|
+
%.91 = icmp eq i8* %.90, null
|
|
446
|
+
br i1 %.91, label %entry.endif.endif.endif.endif.endif.if.if.if, label %entry.endif.endif.endif.endif.endif.if.if.endif, !prof !0
|
|
447
|
+
|
|
448
|
+
entry.endif.endif.endif.endif.endif.if.else: ; preds = %entry.endif.endif.endif.endif.endif.if
|
|
449
|
+
%.104 = extractvalue { i8*, i32, i8*, i8*, i32 } %.75, 2
|
|
450
|
+
%.105 = call i8* @numba_unpickle(i8* %.80, i32 %.82, i8* %.104)
|
|
451
|
+
br label %entry.endif.endif.endif.endif.endif.if.endif
|
|
452
|
+
|
|
453
|
+
entry.endif.endif.endif.endif.endif.if.endif: ; preds = %entry.endif.endif.endif.endif.endif.if.if.endif, %entry.endif.endif.endif.endif.endif.if.else
|
|
454
|
+
%.107 = phi i8* [ %.95, %entry.endif.endif.endif.endif.endif.if.if.endif ], [ %.105, %entry.endif.endif.endif.endif.endif.if.else ]
|
|
455
|
+
%.108.not = icmp eq i8* %.107, null
|
|
456
|
+
br i1 %.108.not, label %common.ret, label %entry.endif.endif.endif.endif.endif.if.endif.if, !prof !0
|
|
457
|
+
|
|
458
|
+
entry.endif.endif.endif.endif.endif.if.if.if: ; preds = %entry.endif.endif.endif.endif.endif.if.if
|
|
459
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_RuntimeError, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @".const.Error creating Python tuple from runtime exception arguments", i64 0, i64 0))
|
|
460
|
+
br label %common.ret
|
|
461
|
+
|
|
462
|
+
entry.endif.endif.endif.endif.endif.if.if.endif: ; preds = %entry.endif.endif.endif.endif.endif.if.if
|
|
463
|
+
%.95 = call i8* @numba_runtime_build_excinfo_struct(i8* %.84, i8* nonnull %.90)
|
|
464
|
+
%.96 = bitcast { i8*, i32, i8*, i8*, i32 }* %.49 to i8*
|
|
465
|
+
call void @NRT_Free(i8* nonnull %.96)
|
|
466
|
+
br label %entry.endif.endif.endif.endif.endif.if.endif
|
|
467
|
+
|
|
468
|
+
entry.endif.endif.endif.endif.endif.if.endif.if: ; preds = %entry.endif.endif.endif.endif.endif.if.endif
|
|
469
|
+
call void @numba_do_raise(i8* nonnull %.107)
|
|
470
|
+
br label %common.ret
|
|
471
|
+
|
|
472
|
+
entry.endif.endif.endif.endif.endif.endif.if: ; preds = %entry.endif.endif.endif.endif.endif.endif
|
|
473
|
+
call void @PyErr_SetNone(i8* nonnull @PyExc_StopIteration)
|
|
474
|
+
br label %common.ret
|
|
475
|
+
|
|
476
|
+
entry.endif.endif.endif.endif.endif.endif.endif.endif: ; preds = %entry.endif.endif.endif.endif.endif.endif
|
|
477
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_SystemError, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @".const.unknown error when calling native function", i64 0, i64 0))
|
|
478
|
+
br label %common.ret
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
declare i32 @PyArg_UnpackTuple(i8*, i8*, i64, i64, ...) local_unnamed_addr
|
|
482
|
+
|
|
483
|
+
declare void @PyErr_SetString(i8*, i8*) local_unnamed_addr
|
|
484
|
+
|
|
485
|
+
declare i8* @PyNumber_Long(i8*) local_unnamed_addr
|
|
486
|
+
|
|
487
|
+
declare i64 @PyLong_AsLongLong(i8*) local_unnamed_addr
|
|
488
|
+
|
|
489
|
+
declare void @Py_DecRef(i8*) local_unnamed_addr
|
|
490
|
+
|
|
491
|
+
declare i8* @PyErr_Occurred() local_unnamed_addr
|
|
492
|
+
|
|
493
|
+
declare void @Py_IncRef(i8*) local_unnamed_addr
|
|
494
|
+
|
|
495
|
+
declare i8* @PyTuple_New(i64) local_unnamed_addr
|
|
496
|
+
|
|
497
|
+
declare i8* @PyFloat_FromDouble(double) local_unnamed_addr
|
|
498
|
+
|
|
499
|
+
declare i32 @PyTuple_SetItem(i8*, i64, i8*) local_unnamed_addr
|
|
500
|
+
|
|
501
|
+
declare void @PyErr_Clear() local_unnamed_addr
|
|
502
|
+
|
|
503
|
+
declare i8* @PyBytes_FromStringAndSize(i8*, i64) local_unnamed_addr
|
|
504
|
+
|
|
505
|
+
declare i8* @numba_unpickle(i8*, i32, i8*) local_unnamed_addr
|
|
506
|
+
|
|
507
|
+
declare i8* @numba_runtime_build_excinfo_struct(i8*, i8*) local_unnamed_addr
|
|
508
|
+
|
|
509
|
+
declare void @NRT_Free(i8*) local_unnamed_addr
|
|
510
|
+
|
|
511
|
+
declare void @numba_do_raise(i8*) local_unnamed_addr
|
|
512
|
+
|
|
513
|
+
declare void @PyErr_SetNone(i8*) local_unnamed_addr
|
|
514
|
+
|
|
515
|
+
define [5 x double] @cfunc._ZN8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64 %.1) local_unnamed_addr {
|
|
516
|
+
entry:
|
|
517
|
+
%.3 = alloca [5 x double], align 8
|
|
518
|
+
%.fca.0.gep1 = bitcast [5 x double]* %.3 to double*
|
|
519
|
+
%.fca.1.gep = getelementptr inbounds [5 x double], [5 x double]* %.3, i64 0, i64 1
|
|
520
|
+
%.fca.2.gep = getelementptr inbounds [5 x double], [5 x double]* %.3, i64 0, i64 2
|
|
521
|
+
%.fca.3.gep = getelementptr inbounds [5 x double], [5 x double]* %.3, i64 0, i64 3
|
|
522
|
+
%.fca.4.gep = getelementptr inbounds [5 x double], [5 x double]* %.3, i64 0, i64 4
|
|
523
|
+
%excinfo = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
524
|
+
%0 = bitcast [5 x double]* %.3 to i8*
|
|
525
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %0, i8 0, i64 40, i1 false)
|
|
526
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
527
|
+
%.7 = call i32 @_ZN8__main__5func4B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx([5 x double]* nonnull %.3, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo, i64 %.1) #2
|
|
528
|
+
%.8 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
529
|
+
%.15 = icmp sgt i32 %.7, 0
|
|
530
|
+
%.16 = select i1 %.15, { i8*, i32, i8*, i8*, i32 }* %.8, { i8*, i32, i8*, i8*, i32 }* undef
|
|
531
|
+
%.17.fca.0.load = load double, double* %.fca.0.gep1, align 8
|
|
532
|
+
%.17.fca.0.insert = insertvalue [5 x double] poison, double %.17.fca.0.load, 0
|
|
533
|
+
%.17.fca.1.load = load double, double* %.fca.1.gep, align 8
|
|
534
|
+
%.17.fca.1.insert = insertvalue [5 x double] %.17.fca.0.insert, double %.17.fca.1.load, 1
|
|
535
|
+
%.17.fca.2.load = load double, double* %.fca.2.gep, align 8
|
|
536
|
+
%.17.fca.2.insert = insertvalue [5 x double] %.17.fca.1.insert, double %.17.fca.2.load, 2
|
|
537
|
+
%.17.fca.3.load = load double, double* %.fca.3.gep, align 8
|
|
538
|
+
%.17.fca.3.insert = insertvalue [5 x double] %.17.fca.2.insert, double %.17.fca.3.load, 3
|
|
539
|
+
%.17.fca.4.load = load double, double* %.fca.4.gep, align 8
|
|
540
|
+
%.17.fca.4.insert = insertvalue [5 x double] %.17.fca.3.insert, double %.17.fca.4.load, 4
|
|
541
|
+
%.19 = alloca i32, align 4
|
|
542
|
+
store i32 0, i32* %.19, align 4
|
|
543
|
+
switch i32 %.7, label %entry.if [
|
|
544
|
+
i32 -2, label %common.ret
|
|
545
|
+
i32 0, label %common.ret
|
|
546
|
+
]
|
|
547
|
+
|
|
548
|
+
entry.if: ; preds = %entry
|
|
549
|
+
%1 = icmp sgt i32 %.7, 0
|
|
550
|
+
call void @numba_gil_ensure(i32* nonnull %.19)
|
|
551
|
+
br i1 %1, label %entry.if.if, label %entry.if.endif
|
|
552
|
+
|
|
553
|
+
common.ret: ; preds = %entry, %entry, %.22, %entry.if.if.if.if
|
|
554
|
+
%common.ret.op = phi [5 x double] [ zeroinitializer, %entry.if.if.if.if ], [ %.17.fca.4.insert, %.22 ], [ %.17.fca.4.insert, %entry ], [ %.17.fca.4.insert, %entry ]
|
|
555
|
+
ret [5 x double] %common.ret.op
|
|
556
|
+
|
|
557
|
+
.22: ; preds = %entry.if.endif, %entry.if.if.endif, %entry.if.if.endif.if, %entry.if.endif.endif.endif, %entry.if.endif.if
|
|
558
|
+
%.70 = call i8* @PyUnicode_FromString(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @".const.<numba.core.cpu.CPUContext object at 0x110f389b0>", i64 0, i64 0))
|
|
559
|
+
call void @PyErr_WriteUnraisable(i8* %.70)
|
|
560
|
+
call void @Py_DecRef(i8* %.70)
|
|
561
|
+
call void @numba_gil_release(i32* nonnull %.19)
|
|
562
|
+
br label %common.ret
|
|
563
|
+
|
|
564
|
+
entry.if.if: ; preds = %entry.if
|
|
565
|
+
call void @PyErr_Clear()
|
|
566
|
+
%.25 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.16, align 8
|
|
567
|
+
%.26 = extractvalue { i8*, i32, i8*, i8*, i32 } %.25, 4
|
|
568
|
+
%.27 = icmp sgt i32 %.26, 0
|
|
569
|
+
%.30 = extractvalue { i8*, i32, i8*, i8*, i32 } %.25, 0
|
|
570
|
+
%.32 = extractvalue { i8*, i32, i8*, i8*, i32 } %.25, 1
|
|
571
|
+
br i1 %.27, label %entry.if.if.if, label %entry.if.if.else
|
|
572
|
+
|
|
573
|
+
entry.if.endif: ; preds = %entry.if
|
|
574
|
+
switch i32 %.7, label %entry.if.endif.endif.endif [
|
|
575
|
+
i32 -3, label %entry.if.endif.if
|
|
576
|
+
i32 -1, label %.22
|
|
577
|
+
]
|
|
578
|
+
|
|
579
|
+
entry.if.if.if: ; preds = %entry.if.if
|
|
580
|
+
%.33 = sext i32 %.32 to i64
|
|
581
|
+
%.34 = call i8* @PyBytes_FromStringAndSize(i8* %.30, i64 %.33)
|
|
582
|
+
%.35 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.16, align 8
|
|
583
|
+
%.36 = extractvalue { i8*, i32, i8*, i8*, i32 } %.35, 2
|
|
584
|
+
%.38 = extractvalue { i8*, i32, i8*, i8*, i32 } %.35, 3
|
|
585
|
+
%.39 = bitcast i8* %.38 to i8* (i8*)*
|
|
586
|
+
%.40 = call i8* %.39(i8* %.36)
|
|
587
|
+
%.41 = icmp eq i8* %.40, null
|
|
588
|
+
br i1 %.41, label %entry.if.if.if.if, label %entry.if.if.if.endif, !prof !0
|
|
589
|
+
|
|
590
|
+
entry.if.if.else: ; preds = %entry.if.if
|
|
591
|
+
%.54 = extractvalue { i8*, i32, i8*, i8*, i32 } %.25, 2
|
|
592
|
+
%.55 = call i8* @numba_unpickle(i8* %.30, i32 %.32, i8* %.54)
|
|
593
|
+
br label %entry.if.if.endif
|
|
594
|
+
|
|
595
|
+
entry.if.if.endif: ; preds = %entry.if.if.if.endif, %entry.if.if.else
|
|
596
|
+
%.57 = phi i8* [ %.45, %entry.if.if.if.endif ], [ %.55, %entry.if.if.else ]
|
|
597
|
+
%.58.not = icmp eq i8* %.57, null
|
|
598
|
+
br i1 %.58.not, label %.22, label %entry.if.if.endif.if, !prof !0
|
|
599
|
+
|
|
600
|
+
entry.if.if.if.if: ; preds = %entry.if.if.if
|
|
601
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_RuntimeError, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @".const.Error creating Python tuple from runtime exception arguments.1", i64 0, i64 0))
|
|
602
|
+
br label %common.ret
|
|
603
|
+
|
|
604
|
+
entry.if.if.if.endif: ; preds = %entry.if.if.if
|
|
605
|
+
%.45 = call i8* @numba_runtime_build_excinfo_struct(i8* %.34, i8* nonnull %.40)
|
|
606
|
+
%.46 = bitcast { i8*, i32, i8*, i8*, i32 }* %.16 to i8*
|
|
607
|
+
call void @NRT_Free(i8* nonnull %.46)
|
|
608
|
+
br label %entry.if.if.endif
|
|
609
|
+
|
|
610
|
+
entry.if.if.endif.if: ; preds = %entry.if.if.endif
|
|
611
|
+
call void @numba_do_raise(i8* nonnull %.57)
|
|
612
|
+
br label %.22
|
|
613
|
+
|
|
614
|
+
entry.if.endif.if: ; preds = %entry.if.endif
|
|
615
|
+
call void @PyErr_SetNone(i8* nonnull @PyExc_StopIteration)
|
|
616
|
+
br label %.22
|
|
617
|
+
|
|
618
|
+
entry.if.endif.endif.endif: ; preds = %entry.if.endif
|
|
619
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_SystemError, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @".const.unknown error when calling native function.2", i64 0, i64 0))
|
|
620
|
+
br label %.22
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
declare void @numba_gil_ensure(i32*) local_unnamed_addr
|
|
624
|
+
|
|
625
|
+
declare i8* @PyUnicode_FromString(i8*) local_unnamed_addr
|
|
626
|
+
|
|
627
|
+
declare void @PyErr_WriteUnraisable(i8*) local_unnamed_addr
|
|
628
|
+
|
|
629
|
+
declare void @numba_gil_release(i32*) local_unnamed_addr
|
|
630
|
+
|
|
631
|
+
define linkonce_odr i32 @_ZN8__main__5func3B3v10B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, i64, double, double }* noalias nocapture writeonly %retptr, { i8*, i32, i8*, i8*, i32 }** noalias nocapture writeonly %excinfo, i64 %arg.m) local_unnamed_addr {
|
|
632
|
+
B0.endif:
|
|
633
|
+
%.151 = alloca { double, double, i64, i64, double }, align 8
|
|
634
|
+
%excinfo.1 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
635
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.1, align 8
|
|
636
|
+
%.660 = alloca { double, double, double, i64, i64 }, align 8
|
|
637
|
+
%excinfo.3 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
638
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.3, align 8
|
|
639
|
+
%.872 = alloca { double, double, double, i64, i64 }, align 8
|
|
640
|
+
%excinfo.5 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
641
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.5, align 8
|
|
642
|
+
%0 = tail call i64 @llvm.smax.i64(i64 %arg.m, i64 0)
|
|
643
|
+
%.10384.not = icmp slt i64 %arg.m, 1
|
|
644
|
+
br i1 %.10384.not, label %B228.else.if, label %B54.preheader
|
|
645
|
+
|
|
646
|
+
B54.preheader: ; preds = %B0.endif
|
|
647
|
+
br label %B54
|
|
648
|
+
|
|
649
|
+
B54: ; preds = %B54.preheader, %B192.else.if
|
|
650
|
+
%lsr.iv26 = phi i64 [ -2, %B54.preheader ], [ %lsr.iv.next27, %B192.else.if ]
|
|
651
|
+
%lsr.iv125 = phi i64 [ %lsr.iv.next126, %B192.else.if ], [ 10, %B54.preheader ]
|
|
652
|
+
%lsr.iv123 = phi i64 [ %13, %B192.else.if ], [ 0, %B54.preheader ]
|
|
653
|
+
%total_sum.4.090 = phi double [ %total_sum.5.1, %B192.else.if ], [ 0.000000e+00, %B54.preheader ]
|
|
654
|
+
%max_value.3.089 = phi double [ %max_value.4.1, %B192.else.if ], [ -1.000000e+07, %B54.preheader ]
|
|
655
|
+
%factorial_sum.3.088 = phi i64 [ %factorial_sum.4.1, %B192.else.if ], [ 0, %B54.preheader ]
|
|
656
|
+
%count_total.3.087 = phi double [ %count_total.4.1, %B192.else.if ], [ 0.000000e+00, %B54.preheader ]
|
|
657
|
+
%.45.085 = phi i64 [ %.116, %B192.else.if ], [ 1, %B54.preheader ]
|
|
658
|
+
%1 = bitcast { double, double, i64, i64, double }* %.151 to i8*
|
|
659
|
+
%2 = add i64 %lsr.iv123, 1
|
|
660
|
+
%3 = udiv i64 %.45.085, 5
|
|
661
|
+
%4 = mul nuw nsw i64 %3, 5
|
|
662
|
+
%5 = add i64 %lsr.iv26, %4
|
|
663
|
+
%6 = udiv i64 %.45.085, 7
|
|
664
|
+
%7 = mul nuw nsw i64 %6, 7
|
|
665
|
+
%8 = add i64 %lsr.iv26, %7
|
|
666
|
+
%9 = udiv i64 %.45.085, 11
|
|
667
|
+
%10 = mul nuw nsw i64 %9, 11
|
|
668
|
+
%11 = add i64 %lsr.iv26, %10
|
|
669
|
+
%12 = add i64 %2, %11
|
|
670
|
+
%13 = add nuw nsw i64 %lsr.iv123, 1
|
|
671
|
+
%14 = add i64 %lsr.iv123, 1
|
|
672
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %1, i8 0, i64 40, i1 false)
|
|
673
|
+
%.155 = call i32 @_ZN8__main__5func2B3v11B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, i64, i64, double }* nonnull %.151, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.1, i64 %lsr.iv125)
|
|
674
|
+
switch i32 %.155, label %B54.if [
|
|
675
|
+
i32 -2, label %B54.endif
|
|
676
|
+
i32 0, label %B54.endif
|
|
677
|
+
]
|
|
678
|
+
|
|
679
|
+
B270: ; preds = %B270.preheader, %B270.endif
|
|
680
|
+
%lsr.iv121 = phi i64 [ %lsr.iv.next122, %B270.endif ], [ 5, %B270.preheader ]
|
|
681
|
+
%lsr.iv119 = phi i64 [ %lsr.iv.next120, %B270.endif ], [ %spec.select66, %B270.preheader ]
|
|
682
|
+
%max_value.5.082 = phi double [ %.700, %B270.endif ], [ %max_value.3.0.lcssa, %B270.preheader ]
|
|
683
|
+
%total_sum.6.081 = phi double [ %.695, %B270.endif ], [ %total_sum.4.0.lcssa, %B270.preheader ]
|
|
684
|
+
%15 = bitcast { double, double, double, i64, i64 }* %.660 to i8*
|
|
685
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
|
|
686
|
+
%.664 = call i32 @_ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.660, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.3, i64 %lsr.iv121)
|
|
687
|
+
switch i32 %.664, label %B270.if [
|
|
688
|
+
i32 -2, label %B270.endif
|
|
689
|
+
i32 0, label %B270.endif
|
|
690
|
+
]
|
|
691
|
+
|
|
692
|
+
B348: ; preds = %B270.endif, %B228.else.if
|
|
693
|
+
%total_sum.6.0.lcssa = phi double [ %total_sum.4.0.lcssa, %B228.else.if ], [ %.695, %B270.endif ]
|
|
694
|
+
%max_value.5.0.lcssa = phi double [ %max_value.3.0.lcssa, %B228.else.if ], [ %.700, %B270.endif ]
|
|
695
|
+
%.15.i.i = icmp slt i64 %arg.m, 0
|
|
696
|
+
br i1 %.15.i.i, label %B348.if, label %B0.endif.endif.i.i, !prof !0
|
|
697
|
+
|
|
698
|
+
B0.endif.endif.i.i: ; preds = %B348
|
|
699
|
+
%.29.i.i = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %arg.m, i64 8)
|
|
700
|
+
%.31.i.i = extractvalue { i64, i1 } %.29.i.i, 1
|
|
701
|
+
br i1 %.31.i.i, label %B348.if, label %B0.endif.endif.endif.i.i, !prof !0
|
|
702
|
+
|
|
703
|
+
B0.endif.endif.endif.i.i: ; preds = %B0.endif.endif.i.i
|
|
704
|
+
%.30.i.i = extractvalue { i64, i1 } %.29.i.i, 0
|
|
705
|
+
%.7.i.i.i.i = tail call i8* @NRT_MemInfo_alloc_aligned(i64 %.30.i.i, i32 32), !noalias !23
|
|
706
|
+
%.8.i.i.i.i = icmp eq i8* %.7.i.i.i.i, null
|
|
707
|
+
br i1 %.8.i.i.i.i, label %B348.if, label %B348.endif.endif, !prof !0
|
|
708
|
+
|
|
709
|
+
B418: ; preds = %B418.preheader, %B418.endif
|
|
710
|
+
%.776.076 = phi i64 [ %17, %B418.endif ], [ 0, %B418.preheader ]
|
|
711
|
+
%16 = bitcast { double, double, double, i64, i64 }* %.872 to i8*
|
|
712
|
+
%17 = add nuw nsw i64 %.776.076, 1
|
|
713
|
+
%18 = add i64 %.776.076, 1
|
|
714
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %16, i8 0, i64 40, i1 false)
|
|
715
|
+
%.876 = call i32 @_ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.872, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.5, i64 %18)
|
|
716
|
+
switch i32 %.876, label %B418.if [
|
|
717
|
+
i32 -2, label %B418.endif
|
|
718
|
+
i32 0, label %B418.endif
|
|
719
|
+
]
|
|
720
|
+
|
|
721
|
+
B52.endif.i.preheader: ; preds = %B418.endif
|
|
722
|
+
%smax = tail call i64 @llvm.smax.i64(i64 %arg.m, i64 1)
|
|
723
|
+
br label %B52.endif.i
|
|
724
|
+
|
|
725
|
+
B52.endif.i: ; preds = %B52.endif.i, %B52.endif.i.preheader
|
|
726
|
+
%lsr.iv117 = phi double* [ %.6.i1.i.i, %B52.endif.i.preheader ], [ %scevgep, %B52.endif.i ]
|
|
727
|
+
%lsr.iv = phi i64 [ %smax, %B52.endif.i.preheader ], [ %lsr.iv.next, %B52.endif.i ]
|
|
728
|
+
%c.2.06.i = phi double [ 0.000000e+00, %B52.endif.i.preheader ], [ %.239.i, %B52.endif.i ]
|
|
729
|
+
%.236.i = load double, double* %lsr.iv117, align 8, !noalias !36
|
|
730
|
+
%.239.i = fadd double %c.2.06.i, %.236.i
|
|
731
|
+
%lsr.iv.next = add nsw i64 %lsr.iv, -1
|
|
732
|
+
%scevgep = getelementptr double, double* %lsr.iv117, i64 1
|
|
733
|
+
%exitcond.not = icmp eq i64 %lsr.iv.next, 0
|
|
734
|
+
br i1 %exitcond.not, label %B472.endif, label %B52.endif.i, !prof !0
|
|
735
|
+
|
|
736
|
+
common.ret: ; preds = %B472.endif, %B418.if, %B348.if, %B270.if, %B54.if
|
|
737
|
+
%common.ret.op = phi i32 [ 0, %B472.endif ], [ 1, %B348.if ], [ %.876, %B418.if ], [ %.664, %B270.if ], [ %.155, %B54.if ]
|
|
738
|
+
ret i32 %common.ret.op
|
|
739
|
+
|
|
740
|
+
B54.if: ; preds = %B54
|
|
741
|
+
%.163 = icmp sgt i32 %.155, 0
|
|
742
|
+
%.156 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.1, align 8
|
|
743
|
+
%.164 = select i1 %.163, { i8*, i32, i8*, i8*, i32 }* %.156, { i8*, i32, i8*, i8*, i32 }* undef
|
|
744
|
+
store { i8*, i32, i8*, i8*, i32 }* %.164, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
745
|
+
br label %common.ret
|
|
746
|
+
|
|
747
|
+
B54.endif: ; preds = %B54, %B54
|
|
748
|
+
%19 = bitcast { double, double, i64, i64, double }* %.151 to double*
|
|
749
|
+
%20 = add i64 %2, %5
|
|
750
|
+
%21 = add i64 %2, %8
|
|
751
|
+
%22 = bitcast { double, double, i64, i64, double }* %.151 to i8*
|
|
752
|
+
%sunkaddr28 = getelementptr inbounds i8, i8* %22, i64 32
|
|
753
|
+
%23 = bitcast i8* %sunkaddr28 to double*
|
|
754
|
+
%.165.fca.4.load = load double, double* %23, align 8
|
|
755
|
+
%24 = bitcast { double, double, i64, i64, double }* %.151 to i8*
|
|
756
|
+
%sunkaddr = getelementptr inbounds i8, i8* %24, i64 24
|
|
757
|
+
%25 = bitcast i8* %sunkaddr to i64*
|
|
758
|
+
%.165.fca.3.load = load i64, i64* %25, align 8
|
|
759
|
+
%26 = bitcast { double, double, i64, i64, double }* %.151 to i8*
|
|
760
|
+
%sunkaddr29 = getelementptr inbounds i8, i8* %26, i64 8
|
|
761
|
+
%27 = bitcast i8* %sunkaddr29 to double*
|
|
762
|
+
%.165.fca.1.load = load double, double* %27, align 8
|
|
763
|
+
%.165.fca.0.load = load double, double* %19, align 8
|
|
764
|
+
%.195 = fadd double %total_sum.4.090, %.165.fca.0.load
|
|
765
|
+
%.203 = fcmp ogt double %.165.fca.1.load, %max_value.3.089
|
|
766
|
+
%max_value.4.1 = select i1 %.203, double %.165.fca.1.load, double %max_value.3.089
|
|
767
|
+
%.221 = add nsw i64 %.165.fca.3.load, %factorial_sum.3.088
|
|
768
|
+
%.231 = fadd double %count_total.3.087, %.165.fca.4.load
|
|
769
|
+
%.282 = icmp eq i64 %lsr.iv123, %20
|
|
770
|
+
%.285 = fmul double %.195, 0x3FEE666666666666
|
|
771
|
+
%total_sum.5.1 = select i1 %.282, double %.285, double %.195
|
|
772
|
+
%.340 = icmp eq i64 %lsr.iv123, %21
|
|
773
|
+
br i1 %.340, label %B182.else.if, label %B192.else.if
|
|
774
|
+
|
|
775
|
+
B182.else.if: ; preds = %B54.endif
|
|
776
|
+
%.363 = sdiv i64 %.221, 2
|
|
777
|
+
%28 = and i64 %.221, -9223372036854775807
|
|
778
|
+
%.366 = icmp eq i64 %28, -9223372036854775807
|
|
779
|
+
%.373 = sext i1 %.366 to i64
|
|
780
|
+
%spec.select64 = add nsw i64 %.363, %.373
|
|
781
|
+
br label %B192.else.if
|
|
782
|
+
|
|
783
|
+
B192.else.if: ; preds = %B182.else.if, %B54.endif
|
|
784
|
+
%factorial_sum.4.1 = phi i64 [ %.221, %B54.endif ], [ %spec.select64, %B182.else.if ]
|
|
785
|
+
%.435 = icmp eq i64 %lsr.iv123, %12
|
|
786
|
+
%.191.i = mul nsw i64 %14, %14
|
|
787
|
+
%.474 = sitofp i64 %.191.i to double
|
|
788
|
+
%.475 = select i1 %.435, double %.474, double -0.000000e+00
|
|
789
|
+
%count_total.4.1 = fadd double %.475, %.231
|
|
790
|
+
%lsr.iv.next126 = add i64 %lsr.iv125, 10
|
|
791
|
+
%.116 = add nuw i64 %.45.085, 1
|
|
792
|
+
%lsr.iv.next27 = add i64 %lsr.iv26, -1
|
|
793
|
+
%exitcond100.not = icmp eq i64 %0, %13
|
|
794
|
+
br i1 %exitcond100.not, label %B228.else.if, label %B54
|
|
795
|
+
|
|
796
|
+
B228.else.if: ; preds = %B192.else.if, %B0.endif
|
|
797
|
+
%count_total.3.0.lcssa = phi double [ 0.000000e+00, %B0.endif ], [ %count_total.4.1, %B192.else.if ]
|
|
798
|
+
%factorial_sum.3.0.lcssa = phi i64 [ 0, %B0.endif ], [ %factorial_sum.4.1, %B192.else.if ]
|
|
799
|
+
%max_value.3.0.lcssa = phi double [ -1.000000e+07, %B0.endif ], [ %max_value.4.1, %B192.else.if ]
|
|
800
|
+
%total_sum.4.0.lcssa = phi double [ 0.000000e+00, %B0.endif ], [ %total_sum.5.1, %B192.else.if ]
|
|
801
|
+
%.518 = sdiv i64 %arg.m, 2
|
|
802
|
+
%29 = and i64 %arg.m, -9223372036854775807
|
|
803
|
+
%.521 = icmp eq i64 %29, -9223372036854775807
|
|
804
|
+
%.528 = sext i1 %.521 to i64
|
|
805
|
+
%spec.select66 = add nsw i64 %.518, %.528
|
|
806
|
+
%.62078.not = icmp slt i64 %spec.select66, 1
|
|
807
|
+
br i1 %.62078.not, label %B348, label %B270.preheader
|
|
808
|
+
|
|
809
|
+
B270.preheader: ; preds = %B228.else.if
|
|
810
|
+
br label %B270
|
|
811
|
+
|
|
812
|
+
B270.if: ; preds = %B270
|
|
813
|
+
%.672 = icmp sgt i32 %.664, 0
|
|
814
|
+
%.665 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.3, align 8
|
|
815
|
+
%.673 = select i1 %.672, { i8*, i32, i8*, i8*, i32 }* %.665, { i8*, i32, i8*, i8*, i32 }* undef
|
|
816
|
+
store { i8*, i32, i8*, i8*, i32 }* %.673, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
817
|
+
br label %common.ret
|
|
818
|
+
|
|
819
|
+
B270.endif: ; preds = %B270, %B270
|
|
820
|
+
%30 = bitcast { double, double, double, i64, i64 }* %.660 to double*
|
|
821
|
+
%31 = bitcast { double, double, double, i64, i64 }* %.660 to i8*
|
|
822
|
+
%sunkaddr30 = getelementptr inbounds i8, i8* %31, i64 8
|
|
823
|
+
%32 = bitcast i8* %sunkaddr30 to double*
|
|
824
|
+
%.674.fca.1.load = load double, double* %32, align 8
|
|
825
|
+
%.674.fca.0.load = load double, double* %30, align 8
|
|
826
|
+
%.695 = fadd double %total_sum.6.081, %.674.fca.0.load
|
|
827
|
+
%.699 = fcmp ogt double %.674.fca.1.load, %max_value.5.082
|
|
828
|
+
%.700 = select i1 %.699, double %.674.fca.1.load, double %max_value.5.082
|
|
829
|
+
%lsr.iv.next120 = add i64 %lsr.iv119, -1
|
|
830
|
+
%lsr.iv.next122 = add i64 %lsr.iv121, 5
|
|
831
|
+
%exitcond99.not = icmp eq i64 %lsr.iv.next120, 0
|
|
832
|
+
br i1 %exitcond99.not, label %B348, label %B270
|
|
833
|
+
|
|
834
|
+
B348.if: ; preds = %B0.endif.endif.endif.i.i, %B0.endif.endif.i.i, %B348
|
|
835
|
+
%excinfo.1.0.ph.i = phi { i8*, i32, i8*, i8*, i32 }* [ @.const.picklebuf.4575216064.13, %B0.endif.endif.endif.i.i ], [ @.const.picklebuf.4575674432.14, %B0.endif.endif.i.i ], [ @.const.picklebuf.4575674496.15, %B348 ]
|
|
836
|
+
store { i8*, i32, i8*, i8*, i32 }* %excinfo.1.0.ph.i, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
837
|
+
br label %common.ret
|
|
838
|
+
|
|
839
|
+
B348.endif.endif: ; preds = %B0.endif.endif.endif.i.i
|
|
840
|
+
%33 = icmp slt i64 %arg.m, 1
|
|
841
|
+
%.5.i.i.i = getelementptr i8, i8* %.7.i.i.i.i, i64 24
|
|
842
|
+
%34 = bitcast i8* %.5.i.i.i to double**
|
|
843
|
+
%.6.i1.i.i = load double*, double** %34, align 8, !noalias !39
|
|
844
|
+
%.26.i.i = shl nuw nsw i64 %arg.m, 3
|
|
845
|
+
%.27.i.i = bitcast double* %.6.i1.i.i to i8*
|
|
846
|
+
tail call void @llvm.memset.p0i8.i64(i8* align 1 %.27.i.i, i8 0, i64 %.26.i.i, i1 false), !noalias !40
|
|
847
|
+
br i1 %33, label %B472.endif, label %B418.preheader
|
|
848
|
+
|
|
849
|
+
B418.preheader: ; preds = %B348.endif.endif
|
|
850
|
+
br label %B418
|
|
851
|
+
|
|
852
|
+
B418.if: ; preds = %B418
|
|
853
|
+
%.884 = icmp sgt i32 %.876, 0
|
|
854
|
+
%.877 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.5, align 8
|
|
855
|
+
%.885 = select i1 %.884, { i8*, i32, i8*, i8*, i32 }* %.877, { i8*, i32, i8*, i8*, i32 }* undef
|
|
856
|
+
store { i8*, i32, i8*, i8*, i32 }* %.885, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
857
|
+
br label %common.ret
|
|
858
|
+
|
|
859
|
+
B418.endif: ; preds = %B418, %B418
|
|
860
|
+
%35 = bitcast { double, double, double, i64, i64 }* %.872 to double*
|
|
861
|
+
%.886.fca.0.load = load double, double* %35, align 8
|
|
862
|
+
%scevgep25 = getelementptr double, double* %.6.i1.i.i, i64 %.776.076
|
|
863
|
+
store double %.886.fca.0.load, double* %scevgep25, align 8
|
|
864
|
+
%exitcond98.not = icmp eq i64 %0, %17
|
|
865
|
+
br i1 %exitcond98.not, label %B52.endif.i.preheader, label %B418
|
|
866
|
+
|
|
867
|
+
B472.endif: ; preds = %B52.endif.i, %B348.endif.endif
|
|
868
|
+
%c.2.0.lcssa.i = phi double [ 0.000000e+00, %B348.endif.endif ], [ %.239.i, %B52.endif.i ]
|
|
869
|
+
tail call void @NRT_decref(i8* nonnull %.7.i.i.i.i)
|
|
870
|
+
%retptr.repack13331 = bitcast { double, double, i64, double, double }* %retptr to double*
|
|
871
|
+
store double %total_sum.6.0.lcssa, double* %retptr.repack13331, align 8
|
|
872
|
+
%retptr.repack28 = getelementptr inbounds { double, double, i64, double, double }, { double, double, i64, double, double }* %retptr, i64 0, i32 1
|
|
873
|
+
store double %max_value.5.0.lcssa, double* %retptr.repack28, align 8
|
|
874
|
+
%retptr.repack30 = getelementptr inbounds { double, double, i64, double, double }, { double, double, i64, double, double }* %retptr, i64 0, i32 2
|
|
875
|
+
store i64 %factorial_sum.3.0.lcssa, i64* %retptr.repack30, align 8
|
|
876
|
+
%retptr.repack32 = getelementptr inbounds { double, double, i64, double, double }, { double, double, i64, double, double }* %retptr, i64 0, i32 3
|
|
877
|
+
store double %count_total.3.0.lcssa, double* %retptr.repack32, align 8
|
|
878
|
+
%retptr.repack34 = getelementptr inbounds { double, double, i64, double, double }, { double, double, i64, double, double }* %retptr, i64 0, i32 4
|
|
879
|
+
store double %c.2.0.lcssa.i, double* %retptr.repack34, align 8
|
|
880
|
+
br label %common.ret
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
884
|
+
declare i64 @llvm.smax.i64(i64, i64) #0
|
|
885
|
+
|
|
886
|
+
; Function Attrs: argmemonly mustprogress nocallback nofree nounwind willreturn writeonly
|
|
887
|
+
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #1
|
|
888
|
+
|
|
889
|
+
define linkonce_odr i32 @_ZN8__main__5func2B3v11B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, i64, i64, double }* noalias nocapture writeonly %retptr, { i8*, i32, i8*, i8*, i32 }** noalias nocapture writeonly %excinfo, i64 %arg.m) local_unnamed_addr {
|
|
890
|
+
B0.endif:
|
|
891
|
+
%.150 = alloca { double, double, double, i64, i64 }, align 8
|
|
892
|
+
%excinfo.1 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
893
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.1, align 8
|
|
894
|
+
%.658 = alloca { double, double, double, i64, i64 }, align 8
|
|
895
|
+
%excinfo.3 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
896
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.3, align 8
|
|
897
|
+
%.870 = alloca { double, double, double, i64, i64 }, align 8
|
|
898
|
+
%excinfo.5 = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
899
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo.5, align 8
|
|
900
|
+
%0 = tail call i64 @llvm.smax.i64(i64 %arg.m, i64 0)
|
|
901
|
+
%.10284.not = icmp slt i64 %arg.m, 1
|
|
902
|
+
br i1 %.10284.not, label %B228.else.if, label %B54.preheader
|
|
903
|
+
|
|
904
|
+
B54.preheader: ; preds = %B0.endif
|
|
905
|
+
br label %B54
|
|
906
|
+
|
|
907
|
+
B54: ; preds = %B54.preheader, %B192.else.if
|
|
908
|
+
%lsr.iv125 = phi i64 [ %lsr.iv.next126, %B192.else.if ], [ 10, %B54.preheader ]
|
|
909
|
+
%lsr.iv123 = phi i64 [ %2, %B192.else.if ], [ 0, %B54.preheader ]
|
|
910
|
+
%total_sum.4.090 = phi double [ %total_sum.5.1, %B192.else.if ], [ 0.000000e+00, %B54.preheader ]
|
|
911
|
+
%max_value.3.089 = phi double [ %max_value.4.1, %B192.else.if ], [ -1.000000e+07, %B54.preheader ]
|
|
912
|
+
%factorial_sum.3.088 = phi i64 [ %factorial_sum.4.1, %B192.else.if ], [ 0, %B54.preheader ]
|
|
913
|
+
%count_total.3.087 = phi i64 [ %count_total.4.1, %B192.else.if ], [ 0, %B54.preheader ]
|
|
914
|
+
%.44.085 = phi i64 [ %.115, %B192.else.if ], [ 1, %B54.preheader ]
|
|
915
|
+
%1 = bitcast { double, double, double, i64, i64 }* %.150 to i8*
|
|
916
|
+
%2 = add nuw nsw i64 %lsr.iv123, 1
|
|
917
|
+
%3 = add i64 %lsr.iv123, 1
|
|
918
|
+
%4 = udiv i64 %.44.085, 11
|
|
919
|
+
%5 = mul nuw nsw i64 %4, 11
|
|
920
|
+
%6 = sub i64 1, %5
|
|
921
|
+
%7 = udiv i64 %.44.085, 7
|
|
922
|
+
%8 = mul nuw nsw i64 %7, 7
|
|
923
|
+
%9 = sub i64 1, %8
|
|
924
|
+
%10 = udiv i64 %.44.085, 5
|
|
925
|
+
%11 = mul nuw nsw i64 %10, 5
|
|
926
|
+
%12 = sub i64 1, %11
|
|
927
|
+
%13 = add i64 %lsr.iv123, %6
|
|
928
|
+
%14 = sub i64 %lsr.iv123, %13
|
|
929
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %1, i8 0, i64 40, i1 false)
|
|
930
|
+
%.154 = call i32 @_ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.150, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.1, i64 %lsr.iv125)
|
|
931
|
+
switch i32 %.154, label %B54.if [
|
|
932
|
+
i32 -2, label %B54.endif
|
|
933
|
+
i32 0, label %B54.endif
|
|
934
|
+
]
|
|
935
|
+
|
|
936
|
+
B270: ; preds = %B270.preheader, %B270.endif
|
|
937
|
+
%lsr.iv121 = phi i64 [ %lsr.iv.next122, %B270.endif ], [ 5, %B270.preheader ]
|
|
938
|
+
%lsr.iv119 = phi i64 [ %lsr.iv.next120, %B270.endif ], [ %spec.select66, %B270.preheader ]
|
|
939
|
+
%max_value.5.082 = phi double [ %.698, %B270.endif ], [ %max_value.3.0.lcssa, %B270.preheader ]
|
|
940
|
+
%total_sum.6.081 = phi double [ %.693, %B270.endif ], [ %total_sum.4.0.lcssa, %B270.preheader ]
|
|
941
|
+
%15 = bitcast { double, double, double, i64, i64 }* %.658 to i8*
|
|
942
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
|
|
943
|
+
%.662 = call i32 @_ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.658, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.3, i64 %lsr.iv121)
|
|
944
|
+
switch i32 %.662, label %B270.if [
|
|
945
|
+
i32 -2, label %B270.endif
|
|
946
|
+
i32 0, label %B270.endif
|
|
947
|
+
]
|
|
948
|
+
|
|
949
|
+
B348: ; preds = %B270.endif, %B228.else.if
|
|
950
|
+
%total_sum.6.0.lcssa = phi double [ %total_sum.4.0.lcssa, %B228.else.if ], [ %.693, %B270.endif ]
|
|
951
|
+
%max_value.5.0.lcssa = phi double [ %max_value.3.0.lcssa, %B228.else.if ], [ %.698, %B270.endif ]
|
|
952
|
+
%.15.i.i = icmp slt i64 %arg.m, 0
|
|
953
|
+
br i1 %.15.i.i, label %B348.if, label %B0.endif.endif.i.i, !prof !0
|
|
954
|
+
|
|
955
|
+
B0.endif.endif.i.i: ; preds = %B348
|
|
956
|
+
%.29.i.i = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %arg.m, i64 8)
|
|
957
|
+
%.31.i.i = extractvalue { i64, i1 } %.29.i.i, 1
|
|
958
|
+
br i1 %.31.i.i, label %B348.if, label %B0.endif.endif.endif.i.i, !prof !0
|
|
959
|
+
|
|
960
|
+
B0.endif.endif.endif.i.i: ; preds = %B0.endif.endif.i.i
|
|
961
|
+
%.30.i.i = extractvalue { i64, i1 } %.29.i.i, 0
|
|
962
|
+
%.7.i.i.i.i = tail call i8* @NRT_MemInfo_alloc_aligned(i64 %.30.i.i, i32 32), !noalias !43
|
|
963
|
+
%.8.i.i.i.i = icmp eq i8* %.7.i.i.i.i, null
|
|
964
|
+
br i1 %.8.i.i.i.i, label %B348.if, label %B348.endif.endif, !prof !0
|
|
965
|
+
|
|
966
|
+
B418: ; preds = %B418.preheader, %B418.endif
|
|
967
|
+
%.774.076 = phi i64 [ %17, %B418.endif ], [ 0, %B418.preheader ]
|
|
968
|
+
%16 = bitcast { double, double, double, i64, i64 }* %.870 to i8*
|
|
969
|
+
%17 = add nuw nsw i64 %.774.076, 1
|
|
970
|
+
%18 = add i64 %.774.076, 1
|
|
971
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %16, i8 0, i64 40, i1 false)
|
|
972
|
+
%.874 = call i32 @_ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.870, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo.5, i64 %18)
|
|
973
|
+
switch i32 %.874, label %B418.if [
|
|
974
|
+
i32 -2, label %B418.endif
|
|
975
|
+
i32 0, label %B418.endif
|
|
976
|
+
]
|
|
977
|
+
|
|
978
|
+
B52.endif.i.preheader: ; preds = %B418.endif
|
|
979
|
+
%smax = tail call i64 @llvm.smax.i64(i64 %arg.m, i64 1)
|
|
980
|
+
br label %B52.endif.i
|
|
981
|
+
|
|
982
|
+
B52.endif.i: ; preds = %B52.endif.i, %B52.endif.i.preheader
|
|
983
|
+
%lsr.iv117 = phi double* [ %.6.i1.i.i, %B52.endif.i.preheader ], [ %scevgep, %B52.endif.i ]
|
|
984
|
+
%lsr.iv = phi i64 [ %smax, %B52.endif.i.preheader ], [ %lsr.iv.next, %B52.endif.i ]
|
|
985
|
+
%c.2.06.i = phi double [ 0.000000e+00, %B52.endif.i.preheader ], [ %.239.i, %B52.endif.i ]
|
|
986
|
+
%.236.i = load double, double* %lsr.iv117, align 8, !noalias !56
|
|
987
|
+
%.239.i = fadd double %c.2.06.i, %.236.i
|
|
988
|
+
%lsr.iv.next = add nsw i64 %lsr.iv, -1
|
|
989
|
+
%scevgep = getelementptr double, double* %lsr.iv117, i64 1
|
|
990
|
+
%exitcond.not = icmp eq i64 %lsr.iv.next, 0
|
|
991
|
+
br i1 %exitcond.not, label %B472.endif, label %B52.endif.i, !prof !0
|
|
992
|
+
|
|
993
|
+
common.ret: ; preds = %B472.endif, %B418.if, %B348.if, %B270.if, %B54.if
|
|
994
|
+
%common.ret.op = phi i32 [ 0, %B472.endif ], [ 1, %B348.if ], [ %.874, %B418.if ], [ %.662, %B270.if ], [ %.154, %B54.if ]
|
|
995
|
+
ret i32 %common.ret.op
|
|
996
|
+
|
|
997
|
+
B54.if: ; preds = %B54
|
|
998
|
+
%.162 = icmp sgt i32 %.154, 0
|
|
999
|
+
%.155 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.1, align 8
|
|
1000
|
+
%.163 = select i1 %.162, { i8*, i32, i8*, i8*, i32 }* %.155, { i8*, i32, i8*, i8*, i32 }* undef
|
|
1001
|
+
store { i8*, i32, i8*, i8*, i32 }* %.163, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1002
|
+
br label %common.ret
|
|
1003
|
+
|
|
1004
|
+
B54.endif: ; preds = %B54, %B54
|
|
1005
|
+
%19 = bitcast { double, double, double, i64, i64 }* %.150 to double*
|
|
1006
|
+
%20 = add i64 %lsr.iv123, %9
|
|
1007
|
+
%21 = add i64 %lsr.iv123, %12
|
|
1008
|
+
%22 = sub i64 %lsr.iv123, %21
|
|
1009
|
+
%23 = sub i64 %lsr.iv123, %20
|
|
1010
|
+
%24 = bitcast { double, double, double, i64, i64 }* %.150 to i8*
|
|
1011
|
+
%sunkaddr31 = getelementptr inbounds i8, i8* %24, i64 32
|
|
1012
|
+
%25 = bitcast i8* %sunkaddr31 to i64*
|
|
1013
|
+
%.164.fca.4.load = load i64, i64* %25, align 8
|
|
1014
|
+
%26 = bitcast { double, double, double, i64, i64 }* %.150 to i8*
|
|
1015
|
+
%sunkaddr32 = getelementptr inbounds i8, i8* %26, i64 24
|
|
1016
|
+
%27 = bitcast i8* %sunkaddr32 to i64*
|
|
1017
|
+
%.164.fca.3.load = load i64, i64* %27, align 8
|
|
1018
|
+
%28 = bitcast { double, double, double, i64, i64 }* %.150 to i8*
|
|
1019
|
+
%sunkaddr = getelementptr inbounds i8, i8* %28, i64 8
|
|
1020
|
+
%29 = bitcast i8* %sunkaddr to double*
|
|
1021
|
+
%.164.fca.1.load = load double, double* %29, align 8
|
|
1022
|
+
%.164.fca.0.load = load double, double* %19, align 8
|
|
1023
|
+
%.194 = fadd double %total_sum.4.090, %.164.fca.0.load
|
|
1024
|
+
%.202 = fcmp ogt double %.164.fca.1.load, %max_value.3.089
|
|
1025
|
+
%max_value.4.1 = select i1 %.202, double %.164.fca.1.load, double %max_value.3.089
|
|
1026
|
+
%.220 = add nsw i64 %.164.fca.3.load, %factorial_sum.3.088
|
|
1027
|
+
%.281 = icmp eq i64 %lsr.iv123, %22
|
|
1028
|
+
%.284 = fmul double %.194, 0x3FEE666666666666
|
|
1029
|
+
%total_sum.5.1 = select i1 %.281, double %.284, double %.194
|
|
1030
|
+
%.339 = icmp eq i64 %lsr.iv123, %23
|
|
1031
|
+
br i1 %.339, label %B182.else.if, label %B192.else.if
|
|
1032
|
+
|
|
1033
|
+
B182.else.if: ; preds = %B54.endif
|
|
1034
|
+
%.362 = sdiv i64 %.220, 2
|
|
1035
|
+
%30 = and i64 %.220, -9223372036854775807
|
|
1036
|
+
%.365 = icmp eq i64 %30, -9223372036854775807
|
|
1037
|
+
%.372 = sext i1 %.365 to i64
|
|
1038
|
+
%spec.select64 = add nsw i64 %.362, %.372
|
|
1039
|
+
br label %B192.else.if
|
|
1040
|
+
|
|
1041
|
+
B192.else.if: ; preds = %B182.else.if, %B54.endif
|
|
1042
|
+
%factorial_sum.4.1 = phi i64 [ %.220, %B54.endif ], [ %spec.select64, %B182.else.if ]
|
|
1043
|
+
%.434 = icmp eq i64 %lsr.iv123, %14
|
|
1044
|
+
%.191.i = mul nsw i64 %3, %3
|
|
1045
|
+
%.473 = select i1 %.434, i64 %.191.i, i64 0
|
|
1046
|
+
%.230 = add i64 %.473, %count_total.3.087
|
|
1047
|
+
%count_total.4.1 = add i64 %.230, %.164.fca.4.load
|
|
1048
|
+
%lsr.iv.next126 = add i64 %lsr.iv125, 10
|
|
1049
|
+
%.115 = add nuw i64 %.44.085, 1
|
|
1050
|
+
%exitcond100.not = icmp eq i64 %0, %2
|
|
1051
|
+
br i1 %exitcond100.not, label %B228.else.if, label %B54
|
|
1052
|
+
|
|
1053
|
+
B228.else.if: ; preds = %B192.else.if, %B0.endif
|
|
1054
|
+
%count_total.3.0.lcssa = phi i64 [ 0, %B0.endif ], [ %count_total.4.1, %B192.else.if ]
|
|
1055
|
+
%factorial_sum.3.0.lcssa = phi i64 [ 0, %B0.endif ], [ %factorial_sum.4.1, %B192.else.if ]
|
|
1056
|
+
%max_value.3.0.lcssa = phi double [ -1.000000e+07, %B0.endif ], [ %max_value.4.1, %B192.else.if ]
|
|
1057
|
+
%total_sum.4.0.lcssa = phi double [ 0.000000e+00, %B0.endif ], [ %total_sum.5.1, %B192.else.if ]
|
|
1058
|
+
%.516 = sdiv i64 %arg.m, 2
|
|
1059
|
+
%31 = and i64 %arg.m, -9223372036854775807
|
|
1060
|
+
%.519 = icmp eq i64 %31, -9223372036854775807
|
|
1061
|
+
%.526 = sext i1 %.519 to i64
|
|
1062
|
+
%spec.select66 = add nsw i64 %.516, %.526
|
|
1063
|
+
%.61878.not = icmp slt i64 %spec.select66, 1
|
|
1064
|
+
br i1 %.61878.not, label %B348, label %B270.preheader
|
|
1065
|
+
|
|
1066
|
+
B270.preheader: ; preds = %B228.else.if
|
|
1067
|
+
br label %B270
|
|
1068
|
+
|
|
1069
|
+
B270.if: ; preds = %B270
|
|
1070
|
+
%.670 = icmp sgt i32 %.662, 0
|
|
1071
|
+
%.663 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.3, align 8
|
|
1072
|
+
%.671 = select i1 %.670, { i8*, i32, i8*, i8*, i32 }* %.663, { i8*, i32, i8*, i8*, i32 }* undef
|
|
1073
|
+
store { i8*, i32, i8*, i8*, i32 }* %.671, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1074
|
+
br label %common.ret
|
|
1075
|
+
|
|
1076
|
+
B270.endif: ; preds = %B270, %B270
|
|
1077
|
+
%32 = bitcast { double, double, double, i64, i64 }* %.658 to double*
|
|
1078
|
+
%33 = bitcast { double, double, double, i64, i64 }* %.658 to i8*
|
|
1079
|
+
%sunkaddr33 = getelementptr inbounds i8, i8* %33, i64 8
|
|
1080
|
+
%34 = bitcast i8* %sunkaddr33 to double*
|
|
1081
|
+
%.672.fca.1.load = load double, double* %34, align 8
|
|
1082
|
+
%.672.fca.0.load = load double, double* %32, align 8
|
|
1083
|
+
%.693 = fadd double %total_sum.6.081, %.672.fca.0.load
|
|
1084
|
+
%.697 = fcmp ogt double %.672.fca.1.load, %max_value.5.082
|
|
1085
|
+
%.698 = select i1 %.697, double %.672.fca.1.load, double %max_value.5.082
|
|
1086
|
+
%lsr.iv.next120 = add i64 %lsr.iv119, -1
|
|
1087
|
+
%lsr.iv.next122 = add i64 %lsr.iv121, 5
|
|
1088
|
+
%exitcond99.not = icmp eq i64 %lsr.iv.next120, 0
|
|
1089
|
+
br i1 %exitcond99.not, label %B348, label %B270
|
|
1090
|
+
|
|
1091
|
+
B348.if: ; preds = %B0.endif.endif.endif.i.i, %B0.endif.endif.i.i, %B348
|
|
1092
|
+
%excinfo.1.0.ph.i = phi { i8*, i32, i8*, i8*, i32 }* [ @.const.picklebuf.4575216064.11, %B0.endif.endif.endif.i.i ], [ @.const.picklebuf.4575674432.12, %B0.endif.endif.i.i ], [ @.const.picklebuf.4575674496.13, %B348 ]
|
|
1093
|
+
store { i8*, i32, i8*, i8*, i32 }* %excinfo.1.0.ph.i, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1094
|
+
br label %common.ret
|
|
1095
|
+
|
|
1096
|
+
B348.endif.endif: ; preds = %B0.endif.endif.endif.i.i
|
|
1097
|
+
%35 = icmp slt i64 %arg.m, 1
|
|
1098
|
+
%.5.i.i.i = getelementptr i8, i8* %.7.i.i.i.i, i64 24
|
|
1099
|
+
%36 = bitcast i8* %.5.i.i.i to double**
|
|
1100
|
+
%.6.i1.i.i = load double*, double** %36, align 8, !noalias !59
|
|
1101
|
+
%.26.i.i = shl nuw nsw i64 %arg.m, 3
|
|
1102
|
+
%.27.i.i = bitcast double* %.6.i1.i.i to i8*
|
|
1103
|
+
tail call void @llvm.memset.p0i8.i64(i8* align 1 %.27.i.i, i8 0, i64 %.26.i.i, i1 false), !noalias !60
|
|
1104
|
+
br i1 %35, label %B472.endif, label %B418.preheader
|
|
1105
|
+
|
|
1106
|
+
B418.preheader: ; preds = %B348.endif.endif
|
|
1107
|
+
br label %B418
|
|
1108
|
+
|
|
1109
|
+
B418.if: ; preds = %B418
|
|
1110
|
+
%.882 = icmp sgt i32 %.874, 0
|
|
1111
|
+
%.875 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo.5, align 8
|
|
1112
|
+
%.883 = select i1 %.882, { i8*, i32, i8*, i8*, i32 }* %.875, { i8*, i32, i8*, i8*, i32 }* undef
|
|
1113
|
+
store { i8*, i32, i8*, i8*, i32 }* %.883, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1114
|
+
br label %common.ret
|
|
1115
|
+
|
|
1116
|
+
B418.endif: ; preds = %B418, %B418
|
|
1117
|
+
%37 = bitcast { double, double, double, i64, i64 }* %.870 to double*
|
|
1118
|
+
%.884.fca.0.load = load double, double* %37, align 8
|
|
1119
|
+
%scevgep28 = getelementptr double, double* %.6.i1.i.i, i64 %.774.076
|
|
1120
|
+
store double %.884.fca.0.load, double* %scevgep28, align 8
|
|
1121
|
+
%exitcond98.not = icmp eq i64 %0, %17
|
|
1122
|
+
br i1 %exitcond98.not, label %B52.endif.i.preheader, label %B418
|
|
1123
|
+
|
|
1124
|
+
B472.endif: ; preds = %B52.endif.i, %B348.endif.endif
|
|
1125
|
+
%c.2.0.lcssa.i = phi double [ 0.000000e+00, %B348.endif.endif ], [ %.239.i, %B52.endif.i ]
|
|
1126
|
+
tail call void @NRT_decref(i8* nonnull %.7.i.i.i.i)
|
|
1127
|
+
%retptr.repack1333134 = bitcast { double, double, i64, i64, double }* %retptr to double*
|
|
1128
|
+
store double %total_sum.6.0.lcssa, double* %retptr.repack1333134, align 8
|
|
1129
|
+
%retptr.repack28 = getelementptr inbounds { double, double, i64, i64, double }, { double, double, i64, i64, double }* %retptr, i64 0, i32 1
|
|
1130
|
+
store double %max_value.5.0.lcssa, double* %retptr.repack28, align 8
|
|
1131
|
+
%retptr.repack30 = getelementptr inbounds { double, double, i64, i64, double }, { double, double, i64, i64, double }* %retptr, i64 0, i32 2
|
|
1132
|
+
store i64 %factorial_sum.3.0.lcssa, i64* %retptr.repack30, align 8
|
|
1133
|
+
%retptr.repack32 = getelementptr inbounds { double, double, i64, i64, double }, { double, double, i64, i64, double }* %retptr, i64 0, i32 3
|
|
1134
|
+
store i64 %count_total.3.0.lcssa, i64* %retptr.repack32, align 8
|
|
1135
|
+
%retptr.repack34 = getelementptr inbounds { double, double, i64, i64, double }, { double, double, i64, i64, double }* %retptr, i64 0, i32 4
|
|
1136
|
+
store double %c.2.0.lcssa.i, double* %retptr.repack34, align 8
|
|
1137
|
+
br label %common.ret
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
define linkonce_odr i32 @_ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* noalias nocapture writeonly %retptr, { i8*, i32, i8*, i8*, i32 }** noalias nocapture writeonly %excinfo, i64 %arg.n) local_unnamed_addr {
|
|
1141
|
+
entry:
|
|
1142
|
+
%.15.i.i = icmp slt i64 %arg.n, 0
|
|
1143
|
+
br i1 %.15.i.i, label %B0.if, label %B0.endif.endif.i.i, !prof !0
|
|
1144
|
+
|
|
1145
|
+
B0.endif.endif.i.i: ; preds = %entry
|
|
1146
|
+
%.29.i.i = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %arg.n, i64 8)
|
|
1147
|
+
%.31.i.i = extractvalue { i64, i1 } %.29.i.i, 1
|
|
1148
|
+
br i1 %.31.i.i, label %B0.if, label %B0.endif.endif.endif.i.i, !prof !0
|
|
1149
|
+
|
|
1150
|
+
B0.endif.endif.endif.i.i: ; preds = %B0.endif.endif.i.i
|
|
1151
|
+
%.30.i.i = extractvalue { i64, i1 } %.29.i.i, 0
|
|
1152
|
+
%.7.i.i.i.i = tail call i8* @NRT_MemInfo_alloc_aligned(i64 %.30.i.i, i32 32), !noalias !63
|
|
1153
|
+
%.8.i.i.i.i = icmp eq i8* %.7.i.i.i.i, null
|
|
1154
|
+
br i1 %.8.i.i.i.i, label %B0.if, label %B0.endif.endif, !prof !0
|
|
1155
|
+
|
|
1156
|
+
B76: ; preds = %B76.preheader65, %B76
|
|
1157
|
+
%.78.0134 = phi i64 [ %.147, %B76 ], [ %.78.0134.ph, %B76.preheader65 ]
|
|
1158
|
+
%.147 = add nuw nsw i64 %.78.0134, 1
|
|
1159
|
+
%.172 = sitofp i64 %.78.0134 to double
|
|
1160
|
+
%.173 = fmul double %.172, 1.100000e+00
|
|
1161
|
+
%scevgep91 = getelementptr double, double* %.6.i1.i.i, i64 %.78.0134
|
|
1162
|
+
store double %.173, double* %scevgep91, align 8
|
|
1163
|
+
%exitcond141.not = icmp eq i64 %arg.n, %.147
|
|
1164
|
+
br i1 %exitcond141.not, label %B96.endif, label %B76, !llvm.loop !76
|
|
1165
|
+
|
|
1166
|
+
for.end.preheader: ; preds = %B128.preheader244.thread, %middle.block149, %B96.endif
|
|
1167
|
+
%total.2.0.lcssa = phi double [ 0.000000e+00, %B96.endif ], [ %36, %middle.block149 ], [ %.364, %B128.preheader244.thread ]
|
|
1168
|
+
br label %for.end
|
|
1169
|
+
|
|
1170
|
+
B352.preheader.thread: ; preds = %B0.endif.endif
|
|
1171
|
+
%.62819 = load double, double* %.6.i1.i.i, align 8
|
|
1172
|
+
br label %B670.sink.split
|
|
1173
|
+
|
|
1174
|
+
B356.preheader: ; preds = %B292, %B252.endif
|
|
1175
|
+
%max_val.2.0.lcssa = phi double [ %.628, %B252.endif ], [ %max_val.3.1, %B292 ]
|
|
1176
|
+
%min.iters.check165 = icmp eq i64 %arg.n, 1
|
|
1177
|
+
br i1 %min.iters.check165, label %B356.preheader243, label %vector.ph166
|
|
1178
|
+
|
|
1179
|
+
vector.ph166: ; preds = %B356.preheader
|
|
1180
|
+
%scevgep274 = getelementptr double, double* %.6.i1.i.i, i64 1
|
|
1181
|
+
%0 = and i64 %arg.n, -2
|
|
1182
|
+
%1 = lshr i64 %arg.n, 1
|
|
1183
|
+
%2 = mul i64 %1, -2
|
|
1184
|
+
br label %vector.body171
|
|
1185
|
+
|
|
1186
|
+
vector.body171: ; preds = %vector.body171, %vector.ph166
|
|
1187
|
+
%lsr.iv = phi i64 [ %lsr.iv.next, %vector.body171 ], [ %2, %vector.ph166 ]
|
|
1188
|
+
%lsr.iv275 = phi double* [ %scevgep276, %vector.body171 ], [ %scevgep274, %vector.ph166 ]
|
|
1189
|
+
%vec.phi173 = phi double [ %6, %vector.body171 ], [ 0.000000e+00, %vector.ph166 ]
|
|
1190
|
+
%scevgep83 = getelementptr double, double* %lsr.iv275, i64 -1
|
|
1191
|
+
%3 = load double, double* %scevgep83, align 8
|
|
1192
|
+
%4 = load double, double* %lsr.iv275, align 8
|
|
1193
|
+
%5 = fadd double %vec.phi173, %3
|
|
1194
|
+
%6 = fadd double %5, %4
|
|
1195
|
+
%scevgep276 = getelementptr double, double* %lsr.iv275, i64 2
|
|
1196
|
+
%lsr.iv.next = add i64 %lsr.iv, 2
|
|
1197
|
+
%7 = icmp eq i64 %lsr.iv.next, 0
|
|
1198
|
+
br i1 %7, label %middle.block163, label %vector.body171, !llvm.loop !79
|
|
1199
|
+
|
|
1200
|
+
middle.block163: ; preds = %vector.body171
|
|
1201
|
+
%cmp.n170 = icmp eq i64 %0, %arg.n
|
|
1202
|
+
br i1 %cmp.n170, label %B376.endif, label %B356.preheader243
|
|
1203
|
+
|
|
1204
|
+
B356.preheader243: ; preds = %middle.block163, %B356.preheader
|
|
1205
|
+
%running_sum.2.0118.ph = phi double [ %6, %middle.block163 ], [ 0.000000e+00, %B356.preheader ]
|
|
1206
|
+
%.865.0116.ph = phi i64 [ %0, %middle.block163 ], [ 0, %B356.preheader ]
|
|
1207
|
+
%scevgep = getelementptr double, double* %.6.i1.i.i, i64 %.865.0116.ph
|
|
1208
|
+
%8 = sub i64 %arg.n, %.865.0116.ph
|
|
1209
|
+
br label %B356
|
|
1210
|
+
|
|
1211
|
+
B292: ; preds = %B292.preheader, %B292
|
|
1212
|
+
%lsr.iv85 = phi double* [ %scevgep84, %B292.preheader ], [ %scevgep87, %B292 ]
|
|
1213
|
+
%lsr.iv283 = phi i64 [ %lsr.iv.next284, %B292 ], [ %.669, %B292.preheader ]
|
|
1214
|
+
%max_val.2.0123 = phi double [ %max_val.3.1, %B292 ], [ %.628, %B292.preheader ]
|
|
1215
|
+
%.783 = load double, double* %lsr.iv85, align 8
|
|
1216
|
+
%.785 = fcmp ogt double %.783, %max_val.2.0123
|
|
1217
|
+
%max_val.3.1 = select i1 %.785, double %.783, double %max_val.2.0123
|
|
1218
|
+
%lsr.iv.next284 = add i64 %lsr.iv283, -1
|
|
1219
|
+
%scevgep87 = getelementptr double, double* %lsr.iv85, i64 1
|
|
1220
|
+
%exitcond139.not = icmp eq i64 %lsr.iv.next284, 0
|
|
1221
|
+
br i1 %exitcond139.not, label %B356.preheader, label %B292
|
|
1222
|
+
|
|
1223
|
+
B356: ; preds = %B356, %B356.preheader243
|
|
1224
|
+
%lsr.iv81 = phi i64 [ %lsr.iv.next82, %B356 ], [ %8, %B356.preheader243 ]
|
|
1225
|
+
%lsr.iv270 = phi double* [ %scevgep271, %B356 ], [ %scevgep, %B356.preheader243 ]
|
|
1226
|
+
%running_sum.2.0118 = phi double [ %.990, %B356 ], [ %running_sum.2.0118.ph, %B356.preheader243 ]
|
|
1227
|
+
%.988 = load double, double* %lsr.iv270, align 8
|
|
1228
|
+
%.990 = fadd double %running_sum.2.0118, %.988
|
|
1229
|
+
%scevgep271 = getelementptr double, double* %lsr.iv270, i64 1
|
|
1230
|
+
%lsr.iv.next82 = add i64 %lsr.iv81, -1
|
|
1231
|
+
%ov = icmp eq i64 %lsr.iv.next82, 0
|
|
1232
|
+
br i1 %ov, label %B376.endif, label %B356, !llvm.loop !80
|
|
1233
|
+
|
|
1234
|
+
B404.loopexit: ; preds = %B404.loopexit.preheader242, %B404.loopexit
|
|
1235
|
+
%lsr.iv77 = phi i64 [ %49, %B404.loopexit.preheader242 ], [ %lsr.iv.next78, %B404.loopexit ]
|
|
1236
|
+
%count.3.0113 = phi i64 [ %count.3.0113.ph, %B404.loopexit.preheader242 ], [ %9, %B404.loopexit ]
|
|
1237
|
+
%.1085112 = phi i64 [ %.1085112.ph, %B404.loopexit.preheader242 ], [ %.1095, %B404.loopexit ]
|
|
1238
|
+
%.1095 = add nsw i64 %.1085112, -1
|
|
1239
|
+
%smax = tail call i64 @llvm.smax.i64(i64 %.1085112, i64 0)
|
|
1240
|
+
%9 = add i64 %smax, %count.3.0113
|
|
1241
|
+
%lsr.iv.next78 = add i64 %lsr.iv77, -1
|
|
1242
|
+
%ov133 = icmp eq i64 %lsr.iv.next78, 0
|
|
1243
|
+
br i1 %ov133, label %B456, label %B404.loopexit, !llvm.loop !81
|
|
1244
|
+
|
|
1245
|
+
B456: ; preds = %B404.loopexit, %middle.block178
|
|
1246
|
+
%.lcssa = phi i64 [ %48, %middle.block178 ], [ %9, %B404.loopexit ]
|
|
1247
|
+
%10 = icmp eq i64 %arg.n, 1
|
|
1248
|
+
br i1 %10, label %B506.preheader, label %vector.ph202
|
|
1249
|
+
|
|
1250
|
+
vector.ph202: ; preds = %B456
|
|
1251
|
+
%n.vec204 = and i64 %arg.n, -2
|
|
1252
|
+
br label %vector.body208
|
|
1253
|
+
|
|
1254
|
+
vector.body208: ; preds = %vector.body208, %vector.ph202
|
|
1255
|
+
%index209 = phi i64 [ 0, %vector.ph202 ], [ %induction214, %vector.body208 ]
|
|
1256
|
+
%vec.phi210 = phi i64 [ 1, %vector.ph202 ], [ %12, %vector.body208 ]
|
|
1257
|
+
%vec.phi211 = phi i64 [ 1, %vector.ph202 ], [ %13, %vector.body208 ]
|
|
1258
|
+
%induction214 = add i64 %index209, 2
|
|
1259
|
+
%11 = add i64 %index209, 1
|
|
1260
|
+
%12 = mul i64 %vec.phi210, %11
|
|
1261
|
+
%13 = mul i64 %vec.phi211, %induction214
|
|
1262
|
+
%14 = icmp eq i64 %n.vec204, %induction214
|
|
1263
|
+
br i1 %14, label %middle.block199, label %vector.body208, !llvm.loop !82
|
|
1264
|
+
|
|
1265
|
+
middle.block199: ; preds = %vector.body208
|
|
1266
|
+
%ind.end205 = or i64 %arg.n, 1
|
|
1267
|
+
%bin.rdx216 = mul i64 %13, %12
|
|
1268
|
+
%cmp.n207 = icmp eq i64 %n.vec204, %arg.n
|
|
1269
|
+
br i1 %cmp.n207, label %B522, label %B506.preheader
|
|
1270
|
+
|
|
1271
|
+
B506.preheader: ; preds = %middle.block199, %B456
|
|
1272
|
+
%factorial.2.0105.ph = phi i64 [ %bin.rdx216, %middle.block199 ], [ 1, %B456 ]
|
|
1273
|
+
%.1310.0103.ph = phi i64 [ %ind.end205, %middle.block199 ], [ 1, %B456 ]
|
|
1274
|
+
%15 = add i64 %arg.n, 1
|
|
1275
|
+
br label %B506
|
|
1276
|
+
|
|
1277
|
+
B506: ; preds = %B506.preheader, %B506
|
|
1278
|
+
%factorial.2.0105 = phi i64 [ %.1405, %B506 ], [ %factorial.2.0105.ph, %B506.preheader ]
|
|
1279
|
+
%.1310.0103 = phi i64 [ %.1379, %B506 ], [ %.1310.0103.ph, %B506.preheader ]
|
|
1280
|
+
%.1379 = add i64 %.1310.0103, 1
|
|
1281
|
+
%.1405 = mul nsw i64 %.1310.0103, %factorial.2.0105
|
|
1282
|
+
%exitcond136.not = icmp eq i64 %15, %.1379
|
|
1283
|
+
br i1 %exitcond136.not, label %B522, label %B506, !llvm.loop !83
|
|
1284
|
+
|
|
1285
|
+
B522: ; preds = %B506, %middle.block199
|
|
1286
|
+
%.1405.lcssa = phi i64 [ %bin.rdx216, %middle.block199 ], [ %.1405, %B506 ]
|
|
1287
|
+
%.1422 = icmp sgt i64 %arg.n, 1
|
|
1288
|
+
br i1 %.1422, label %B0.endif.endif.endif.i.i8, label %B670
|
|
1289
|
+
|
|
1290
|
+
B0.endif.endif.endif.i.i8: ; preds = %B522
|
|
1291
|
+
%.7.i.i.i.i6 = tail call i8* @NRT_MemInfo_alloc_aligned(i64 %.30.i.i, i32 32), !noalias !84
|
|
1292
|
+
%.8.i.i.i.i7 = icmp eq i8* %.7.i.i.i.i6, null
|
|
1293
|
+
br i1 %.8.i.i.i.i7, label %B532.if, label %B532.endif.endif, !prof !0
|
|
1294
|
+
|
|
1295
|
+
B624: ; preds = %B624.preheader, %B624
|
|
1296
|
+
%lsr.iv111 = phi i64 [ %51, %B624.preheader ], [ %lsr.iv.next112, %B624 ]
|
|
1297
|
+
%lsr.iv108 = phi double* [ %scevgep107, %B624.preheader ], [ %scevgep109, %B624 ]
|
|
1298
|
+
%store_forwarded = phi double [ 1.000000e+00, %B624.preheader ], [ %.1714, %B624 ]
|
|
1299
|
+
%scevgep76 = getelementptr double, double* %lsr.iv108, i64 -2
|
|
1300
|
+
%.1713 = load double, double* %scevgep76, align 8
|
|
1301
|
+
%.1714 = fadd double %store_forwarded, %.1713
|
|
1302
|
+
store double %.1714, double* %lsr.iv108, align 8
|
|
1303
|
+
%scevgep109 = getelementptr double, double* %lsr.iv108, i64 1
|
|
1304
|
+
%lsr.iv.next112 = add i64 %lsr.iv111, -1
|
|
1305
|
+
%exitcond.not = icmp eq i64 %lsr.iv.next112, 0
|
|
1306
|
+
br i1 %exitcond.not, label %B670.sink.split, label %B624
|
|
1307
|
+
|
|
1308
|
+
common.ret: ; preds = %B532.if, %B0.if, %B670
|
|
1309
|
+
%common.ret.op = phi i32 [ 0, %B670 ], [ 1, %B0.if ], [ 1, %B532.if ]
|
|
1310
|
+
ret i32 %common.ret.op
|
|
1311
|
+
|
|
1312
|
+
B670.sink.split: ; preds = %B624, %B532.endif.endif, %B352.preheader.thread
|
|
1313
|
+
%total.2.0.lcssa39 = phi double [ %total.2.0.lcssa, %B532.endif.endif ], [ 0.000000e+00, %B352.preheader.thread ], [ %total.2.0.lcssa, %B624 ]
|
|
1314
|
+
%max_val.2.0.lcssa24 = phi double [ %max_val.2.0.lcssa, %B532.endif.endif ], [ %.62819, %B352.preheader.thread ], [ %max_val.2.0.lcssa, %B624 ]
|
|
1315
|
+
%.7.i.i.i.i.sink = phi i8* [ %.7.i.i.i.i6, %B532.endif.endif ], [ %.7.i.i.i.i, %B352.preheader.thread ], [ %.7.i.i.i.i6, %B624 ]
|
|
1316
|
+
%running_sum.2.0.lcssa146.ph = phi double [ %.990.lcssa, %B532.endif.endif ], [ 0.000000e+00, %B352.preheader.thread ], [ %.990.lcssa, %B624 ]
|
|
1317
|
+
%count.3.0.lcssa144.ph = phi i64 [ %.lcssa, %B532.endif.endif ], [ 0, %B352.preheader.thread ], [ %.lcssa, %B624 ]
|
|
1318
|
+
%factorial.3.055.ph = phi i64 [ %.1405.lcssa, %B532.endif.endif ], [ 1, %B352.preheader.thread ], [ %.1405.lcssa, %B624 ]
|
|
1319
|
+
tail call void @NRT_decref(i8* nonnull %.7.i.i.i.i.sink)
|
|
1320
|
+
br label %B670
|
|
1321
|
+
|
|
1322
|
+
B670: ; preds = %B670.sink.split, %B522
|
|
1323
|
+
%total.2.0.lcssa38 = phi double [ %total.2.0.lcssa, %B522 ], [ %total.2.0.lcssa39, %B670.sink.split ]
|
|
1324
|
+
%max_val.2.0.lcssa23 = phi double [ %max_val.2.0.lcssa, %B522 ], [ %max_val.2.0.lcssa24, %B670.sink.split ]
|
|
1325
|
+
%running_sum.2.0.lcssa146 = phi double [ %.990.lcssa, %B522 ], [ %running_sum.2.0.lcssa146.ph, %B670.sink.split ]
|
|
1326
|
+
%count.3.0.lcssa144 = phi i64 [ %.lcssa, %B522 ], [ %count.3.0.lcssa144.ph, %B670.sink.split ]
|
|
1327
|
+
%factorial.3.055 = phi i64 [ %.1405.lcssa, %B522 ], [ %factorial.3.055.ph, %B670.sink.split ]
|
|
1328
|
+
%retptr.repack3031349395 = bitcast { double, double, double, i64, i64 }* %retptr to double*
|
|
1329
|
+
store double %total.2.0.lcssa38, double* %retptr.repack3031349395, align 8
|
|
1330
|
+
%retptr.repack30 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 1
|
|
1331
|
+
store double %max_val.2.0.lcssa23, double* %retptr.repack30, align 8
|
|
1332
|
+
%retptr.repack32 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 2
|
|
1333
|
+
store double %running_sum.2.0.lcssa146, double* %retptr.repack32, align 8
|
|
1334
|
+
%retptr.repack34 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 3
|
|
1335
|
+
store i64 %factorial.3.055, i64* %retptr.repack34, align 8
|
|
1336
|
+
%retptr.repack36 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 4
|
|
1337
|
+
store i64 %count.3.0.lcssa144, i64* %retptr.repack36, align 8
|
|
1338
|
+
br label %common.ret
|
|
1339
|
+
|
|
1340
|
+
B0.if: ; preds = %B0.endif.endif.endif.i.i, %B0.endif.endif.i.i, %entry
|
|
1341
|
+
%excinfo.1.0.ph.i = phi { i8*, i32, i8*, i8*, i32 }* [ @.const.picklebuf.4575216064, %B0.endif.endif.endif.i.i ], [ @.const.picklebuf.4575674432, %B0.endif.endif.i.i ], [ @.const.picklebuf.4575674496, %entry ]
|
|
1342
|
+
store { i8*, i32, i8*, i8*, i32 }* %excinfo.1.0.ph.i, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1343
|
+
br label %common.ret
|
|
1344
|
+
|
|
1345
|
+
B0.endif.endif: ; preds = %B0.endif.endif.endif.i.i
|
|
1346
|
+
%.5.i.i.i = getelementptr i8, i8* %.7.i.i.i.i, i64 24
|
|
1347
|
+
%16 = bitcast i8* %.5.i.i.i to double**
|
|
1348
|
+
%.6.i1.i.i = load double*, double** %16, align 8, !noalias !97
|
|
1349
|
+
%.26.i.i = shl nuw nsw i64 %arg.n, 3
|
|
1350
|
+
%.27.i.i = bitcast double* %.6.i1.i.i to i8*
|
|
1351
|
+
tail call void @llvm.memset.p0i8.i64(i8* align 1 %.27.i.i, i8 0, i64 %.26.i.i, i1 false), !noalias !98
|
|
1352
|
+
%.134133.not = icmp eq i64 %arg.n, 0
|
|
1353
|
+
br i1 %.134133.not, label %B352.preheader.thread, label %B76.preheader
|
|
1354
|
+
|
|
1355
|
+
B76.preheader: ; preds = %B0.endif.endif
|
|
1356
|
+
%min.iters.check = icmp ult i64 %arg.n, 4
|
|
1357
|
+
br i1 %min.iters.check, label %B76.preheader65, label %vector.ph
|
|
1358
|
+
|
|
1359
|
+
B76.preheader65: ; preds = %middle.block, %B76.preheader
|
|
1360
|
+
%.78.0134.ph = phi i64 [ %17, %middle.block ], [ 0, %B76.preheader ]
|
|
1361
|
+
br label %B76
|
|
1362
|
+
|
|
1363
|
+
vector.ph: ; preds = %B76.preheader
|
|
1364
|
+
%scevgep296 = getelementptr double, double* %.6.i1.i.i, i64 2
|
|
1365
|
+
%17 = and i64 %arg.n, -4
|
|
1366
|
+
%18 = lshr i64 %arg.n, 2
|
|
1367
|
+
%19 = mul i64 %18, -4
|
|
1368
|
+
br label %vector.body
|
|
1369
|
+
|
|
1370
|
+
vector.body: ; preds = %vector.body, %vector.ph
|
|
1371
|
+
%lsr.iv92 = phi i64 [ %lsr.iv.next93, %vector.body ], [ %19, %vector.ph ]
|
|
1372
|
+
%lsr.iv297 = phi double* [ %scevgep298, %vector.body ], [ %scevgep296, %vector.ph ]
|
|
1373
|
+
%vec.ind = phi <2 x i64> [ %vec.ind.next, %vector.body ], [ <i64 0, i64 1>, %vector.ph ]
|
|
1374
|
+
%lsr.iv297299 = bitcast double* %lsr.iv297 to <2 x double>*
|
|
1375
|
+
%step.add = add <2 x i64> %vec.ind, <i64 2, i64 2>
|
|
1376
|
+
%20 = sitofp <2 x i64> %vec.ind to <2 x double>
|
|
1377
|
+
%21 = sitofp <2 x i64> %step.add to <2 x double>
|
|
1378
|
+
%22 = fmul <2 x double> %20, <double 1.100000e+00, double 1.100000e+00>
|
|
1379
|
+
%23 = fmul <2 x double> %21, <double 1.100000e+00, double 1.100000e+00>
|
|
1380
|
+
%scevgep94 = getelementptr <2 x double>, <2 x double>* %lsr.iv297299, i64 -1
|
|
1381
|
+
store <2 x double> %22, <2 x double>* %scevgep94, align 8
|
|
1382
|
+
store <2 x double> %23, <2 x double>* %lsr.iv297299, align 8
|
|
1383
|
+
%vec.ind.next = add <2 x i64> %vec.ind, <i64 4, i64 4>
|
|
1384
|
+
%scevgep298 = getelementptr double, double* %lsr.iv297, i64 4
|
|
1385
|
+
%lsr.iv.next93 = add i64 %lsr.iv92, 4
|
|
1386
|
+
%24 = icmp eq i64 %lsr.iv.next93, 0
|
|
1387
|
+
br i1 %24, label %middle.block, label %vector.body, !llvm.loop !101
|
|
1388
|
+
|
|
1389
|
+
middle.block: ; preds = %vector.body
|
|
1390
|
+
%cmp.n = icmp eq i64 %17, %arg.n
|
|
1391
|
+
br i1 %cmp.n, label %B96.endif, label %B76.preheader65
|
|
1392
|
+
|
|
1393
|
+
B96.endif: ; preds = %B76, %middle.block
|
|
1394
|
+
%25 = and i64 %arg.n, -9223372036854775807
|
|
1395
|
+
%.271 = icmp eq i64 %25, 1
|
|
1396
|
+
%.2729498 = lshr i64 %arg.n, 1
|
|
1397
|
+
%.273 = zext i1 %.271 to i64
|
|
1398
|
+
%.274 = add nuw i64 %.2729498, %.273
|
|
1399
|
+
%.274.fr = freeze i64 %.274
|
|
1400
|
+
switch i64 %.274.fr, label %vector.ph152 [
|
|
1401
|
+
i64 0, label %for.end.preheader
|
|
1402
|
+
i64 1, label %B128.preheader244.thread
|
|
1403
|
+
]
|
|
1404
|
+
|
|
1405
|
+
vector.ph152: ; preds = %B96.endif
|
|
1406
|
+
%uglygep2571012 = getelementptr double, double* %.6.i1.i.i, i64 2
|
|
1407
|
+
%26 = and i64 %.274.fr, -2
|
|
1408
|
+
%27 = lshr i64 %.274.fr, 1
|
|
1409
|
+
%28 = mul i64 %27, -2
|
|
1410
|
+
br label %vector.body159
|
|
1411
|
+
|
|
1412
|
+
vector.body159: ; preds = %vector.body159, %vector.ph152
|
|
1413
|
+
%lsr.iv89 = phi i64 [ %lsr.iv.next90, %vector.body159 ], [ %28, %vector.ph152 ]
|
|
1414
|
+
%lsr.iv291 = phi i64 [ %lsr.iv.next292, %vector.body159 ], [ 0, %vector.ph152 ]
|
|
1415
|
+
%vec.phi = phi double [ %36, %vector.body159 ], [ 0.000000e+00, %vector.ph152 ]
|
|
1416
|
+
%29 = icmp slt i64 %lsr.iv291, 0
|
|
1417
|
+
%30 = select i1 %29, i64 %arg.n, i64 0
|
|
1418
|
+
%31 = add i64 %30, %lsr.iv291
|
|
1419
|
+
%32 = getelementptr double, double* %.6.i1.i.i, i64 %31
|
|
1420
|
+
%uglygep25811 = getelementptr double, double* %uglygep2571012, i64 %31
|
|
1421
|
+
%33 = load double, double* %32, align 8
|
|
1422
|
+
%34 = load double, double* %uglygep25811, align 8
|
|
1423
|
+
%35 = fadd double %vec.phi, %33
|
|
1424
|
+
%36 = fadd double %35, %34
|
|
1425
|
+
%lsr.iv.next292 = add i64 %lsr.iv291, 4
|
|
1426
|
+
%lsr.iv.next90 = add i64 %lsr.iv89, 2
|
|
1427
|
+
%37 = icmp eq i64 %lsr.iv.next90, 0
|
|
1428
|
+
br i1 %37, label %middle.block149, label %vector.body159, !llvm.loop !102
|
|
1429
|
+
|
|
1430
|
+
middle.block149: ; preds = %vector.body159
|
|
1431
|
+
%cmp.n158 = icmp eq i64 %.274.fr, %26
|
|
1432
|
+
br i1 %cmp.n158, label %for.end.preheader, label %B128.preheader244
|
|
1433
|
+
|
|
1434
|
+
B128.preheader244: ; preds = %middle.block149
|
|
1435
|
+
%ind.end156 = shl i64 %26, 1
|
|
1436
|
+
%.346 = icmp slt i64 %ind.end156, 0
|
|
1437
|
+
%spec.select = select i1 %.346, i64 %arg.n, i64 0
|
|
1438
|
+
%38 = add i64 %spec.select, %ind.end156
|
|
1439
|
+
br label %B128.preheader244.thread
|
|
1440
|
+
|
|
1441
|
+
B128.preheader244.thread: ; preds = %B128.preheader244, %B96.endif
|
|
1442
|
+
%total.2.0131.ph35 = phi double [ %36, %B128.preheader244 ], [ 0.000000e+00, %B96.endif ]
|
|
1443
|
+
%.348 = phi i64 [ %38, %B128.preheader244 ], [ 0, %B96.endif ]
|
|
1444
|
+
%.361 = getelementptr double, double* %.6.i1.i.i, i64 %.348
|
|
1445
|
+
%.362 = load double, double* %.361, align 8
|
|
1446
|
+
%.364 = fadd double %total.2.0131.ph35, %.362
|
|
1447
|
+
br label %for.end.preheader
|
|
1448
|
+
|
|
1449
|
+
for.end: ; preds = %for.end, %for.end.preheader
|
|
1450
|
+
%lsr.iv123 = phi i64 [ 0, %for.end.preheader ], [ %lsr.iv.next124, %for.end ]
|
|
1451
|
+
%scevgep88 = getelementptr double, double* %.6.i1.i.i, i64 %lsr.iv123
|
|
1452
|
+
%.519 = load double, double* %scevgep88, align 8
|
|
1453
|
+
%.520 = tail call double @llvm.pow.f64(double %.519, double 1.500000e+00)
|
|
1454
|
+
%.558 = tail call double @llvm.sin.f64(double %.519)
|
|
1455
|
+
%.563 = fsub double %.520, %.558
|
|
1456
|
+
store double %.563, double* %scevgep88, align 8
|
|
1457
|
+
%lsr.iv.next124 = add i64 %lsr.iv123, 1
|
|
1458
|
+
%exitcond140.not = icmp eq i64 %arg.n, %lsr.iv.next124
|
|
1459
|
+
br i1 %exitcond140.not, label %B252.endif, label %for.end
|
|
1460
|
+
|
|
1461
|
+
B252.endif: ; preds = %for.end
|
|
1462
|
+
%.628 = load double, double* %.6.i1.i.i, align 8
|
|
1463
|
+
%.669 = add i64 %arg.n, -1
|
|
1464
|
+
%.712120.not = icmp slt i64 %.669, 1
|
|
1465
|
+
br i1 %.712120.not, label %B356.preheader, label %B292.preheader
|
|
1466
|
+
|
|
1467
|
+
B292.preheader: ; preds = %B252.endif
|
|
1468
|
+
%scevgep84 = getelementptr double, double* %.6.i1.i.i, i64 1
|
|
1469
|
+
br label %B292
|
|
1470
|
+
|
|
1471
|
+
B376.endif: ; preds = %B356, %middle.block163
|
|
1472
|
+
%.990.lcssa = phi double [ %6, %middle.block163 ], [ %.990, %B356 ]
|
|
1473
|
+
%39 = icmp ult i64 %arg.n, 4
|
|
1474
|
+
tail call void @NRT_decref(i8* nonnull %.7.i.i.i.i)
|
|
1475
|
+
br i1 %39, label %B404.loopexit.preheader242, label %vector.ph181
|
|
1476
|
+
|
|
1477
|
+
vector.ph181: ; preds = %B376.endif
|
|
1478
|
+
%.splatinsert = insertelement <2 x i64> poison, i64 %arg.n, i64 0
|
|
1479
|
+
%.splat = shufflevector <2 x i64> %.splatinsert, <2 x i64> poison, <2 x i32> zeroinitializer
|
|
1480
|
+
%induction192 = add <2 x i64> %.splat, <i64 0, i64 -1>
|
|
1481
|
+
%40 = and i64 %arg.n, -4
|
|
1482
|
+
%41 = lshr i64 %arg.n, 2
|
|
1483
|
+
%42 = mul i64 %41, -4
|
|
1484
|
+
br label %vector.body188
|
|
1485
|
+
|
|
1486
|
+
vector.body188: ; preds = %vector.body188, %vector.ph181
|
|
1487
|
+
%lsr.iv79 = phi i64 [ %lsr.iv.next80, %vector.body188 ], [ %42, %vector.ph181 ]
|
|
1488
|
+
%vec.phi190 = phi <2 x i64> [ %45, %vector.body188 ], [ zeroinitializer, %vector.ph181 ]
|
|
1489
|
+
%vec.phi191 = phi <2 x i64> [ %46, %vector.body188 ], [ zeroinitializer, %vector.ph181 ]
|
|
1490
|
+
%vec.ind193 = phi <2 x i64> [ %vec.ind.next196, %vector.body188 ], [ %induction192, %vector.ph181 ]
|
|
1491
|
+
%step.add194 = add <2 x i64> %vec.ind193, <i64 -2, i64 -2>
|
|
1492
|
+
%43 = tail call <2 x i64> @llvm.smax.v2i64(<2 x i64> %vec.ind193, <2 x i64> zeroinitializer)
|
|
1493
|
+
%44 = tail call <2 x i64> @llvm.smax.v2i64(<2 x i64> %step.add194, <2 x i64> zeroinitializer)
|
|
1494
|
+
%45 = add <2 x i64> %43, %vec.phi190
|
|
1495
|
+
%46 = add <2 x i64> %44, %vec.phi191
|
|
1496
|
+
%vec.ind.next196 = add <2 x i64> %vec.ind193, <i64 -4, i64 -4>
|
|
1497
|
+
%lsr.iv.next80 = add i64 %lsr.iv79, 4
|
|
1498
|
+
%47 = icmp eq i64 %lsr.iv.next80, 0
|
|
1499
|
+
br i1 %47, label %middle.block178, label %vector.body188, !llvm.loop !103
|
|
1500
|
+
|
|
1501
|
+
middle.block178: ; preds = %vector.body188
|
|
1502
|
+
%ind.end184 = and i64 %arg.n, 3
|
|
1503
|
+
%bin.rdx = add <2 x i64> %46, %45
|
|
1504
|
+
%48 = tail call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %bin.rdx)
|
|
1505
|
+
%cmp.n187 = icmp eq i64 %40, %arg.n
|
|
1506
|
+
br i1 %cmp.n187, label %B456, label %B404.loopexit.preheader242
|
|
1507
|
+
|
|
1508
|
+
B404.loopexit.preheader242: ; preds = %middle.block178, %B376.endif
|
|
1509
|
+
%count.3.0113.ph = phi i64 [ %48, %middle.block178 ], [ 0, %B376.endif ]
|
|
1510
|
+
%.1085112.ph = phi i64 [ %ind.end184, %middle.block178 ], [ %arg.n, %B376.endif ]
|
|
1511
|
+
%.1030.0111.ph = phi i64 [ %40, %middle.block178 ], [ 0, %B376.endif ]
|
|
1512
|
+
%49 = sub i64 %arg.n, %.1030.0111.ph
|
|
1513
|
+
br label %B404.loopexit
|
|
1514
|
+
|
|
1515
|
+
B532.if: ; preds = %B0.endif.endif.endif.i.i8
|
|
1516
|
+
store { i8*, i32, i8*, i8*, i32 }* @.const.picklebuf.4575216064, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1517
|
+
br label %common.ret
|
|
1518
|
+
|
|
1519
|
+
B532.endif.endif: ; preds = %B0.endif.endif.endif.i.i8
|
|
1520
|
+
%.5.i.i.i12 = getelementptr i8, i8* %.7.i.i.i.i6, i64 24
|
|
1521
|
+
%50 = bitcast i8* %.5.i.i.i12 to double**
|
|
1522
|
+
%.6.i1.i.i13 = load double*, double** %50, align 8, !noalias !104
|
|
1523
|
+
%.27.i.i15 = bitcast double* %.6.i1.i.i13 to i8*
|
|
1524
|
+
tail call void @llvm.memset.p0i8.i64(i8* align 1 %.27.i.i15, i8 0, i64 %.26.i.i, i1 false), !noalias !105
|
|
1525
|
+
store double 0.000000e+00, double* %.6.i1.i.i13, align 8
|
|
1526
|
+
%.1529 = getelementptr double, double* %.6.i1.i.i13, i64 1
|
|
1527
|
+
store double 1.000000e+00, double* %.1529, align 8
|
|
1528
|
+
%.161499 = icmp ugt i64 %arg.n, 2
|
|
1529
|
+
br i1 %.161499, label %B624.preheader, label %B670.sink.split
|
|
1530
|
+
|
|
1531
|
+
B624.preheader: ; preds = %B532.endif.endif
|
|
1532
|
+
%scevgep107 = getelementptr double, double* %.6.i1.i.i13, i64 2
|
|
1533
|
+
%51 = add nsw i64 %arg.n, -2
|
|
1534
|
+
br label %B624
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
1538
|
+
declare { i64, i1 } @llvm.smul.with.overflow.i64(i64, i64) #0
|
|
1539
|
+
|
|
1540
|
+
declare noalias i8* @NRT_MemInfo_alloc_aligned(i64, i32) local_unnamed_addr
|
|
1541
|
+
|
|
1542
|
+
; Function Attrs: noinline
|
|
1543
|
+
define linkonce_odr void @NRT_decref(i8* %.1) local_unnamed_addr #2 {
|
|
1544
|
+
.3:
|
|
1545
|
+
%.4 = icmp eq i8* %.1, null
|
|
1546
|
+
br i1 %.4, label %common.ret, label %.3.endif, !prof !0
|
|
1547
|
+
|
|
1548
|
+
common.ret: ; preds = %.3, %.3.endif
|
|
1549
|
+
ret void
|
|
1550
|
+
|
|
1551
|
+
.3.endif: ; preds = %.3
|
|
1552
|
+
fence release
|
|
1553
|
+
%.8 = bitcast i8* %.1 to i64*
|
|
1554
|
+
%.4.i = atomicrmw sub i64* %.8, i64 1 monotonic, align 8
|
|
1555
|
+
%.10 = icmp eq i64 %.4.i, 1
|
|
1556
|
+
br i1 %.10, label %.3.endif.if, label %common.ret, !prof !0
|
|
1557
|
+
|
|
1558
|
+
.3.endif.if: ; preds = %.3.endif
|
|
1559
|
+
fence acquire
|
|
1560
|
+
tail call void @NRT_MemInfo_call_dtor(i8* nonnull %.1)
|
|
1561
|
+
ret void
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
declare void @NRT_MemInfo_call_dtor(i8*) local_unnamed_addr
|
|
1565
|
+
|
|
1566
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
1567
|
+
declare double @llvm.pow.f64(double, double) #0
|
|
1568
|
+
|
|
1569
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
1570
|
+
declare double @llvm.sin.f64(double) #0
|
|
1571
|
+
|
|
1572
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
1573
|
+
declare <2 x i64> @llvm.smax.v2i64(<2 x i64>, <2 x i64>) #0
|
|
1574
|
+
|
|
1575
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone willreturn
|
|
1576
|
+
declare i64 @llvm.vector.reduce.add.v2i64(<2 x i64>) #3
|
|
1577
|
+
|
|
1578
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
1579
|
+
declare double @llvm.floor.f64(double) #0
|
|
1580
|
+
|
|
1581
|
+
attributes #0 = { mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn }
|
|
1582
|
+
attributes #1 = { argmemonly mustprogress nocallback nofree nounwind willreturn writeonly }
|
|
1583
|
+
attributes #2 = { noinline }
|
|
1584
|
+
attributes #3 = { mustprogress nocallback nofree nosync nounwind readnone willreturn }
|
|
1585
|
+
|
|
1586
|
+
!0 = !{!"branch_weights", i32 1, i32 99}
|
|
1587
|
+
!1 = !{!2, !4, !5, !7, !8, !10, !11, !13}
|
|
1588
|
+
!2 = distinct !{!2, !3, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1589
|
+
!3 = distinct !{!3, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1590
|
+
!4 = distinct !{!4, !3, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1591
|
+
!5 = distinct !{!5, !6, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1592
|
+
!6 = distinct !{!6, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1593
|
+
!7 = distinct !{!7, !6, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1594
|
+
!8 = distinct !{!8, !9, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1595
|
+
!9 = distinct !{!9, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29"}
|
|
1596
|
+
!10 = distinct !{!10, !9, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1597
|
+
!11 = distinct !{!11, !12, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1598
|
+
!12 = distinct !{!12, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29"}
|
|
1599
|
+
!13 = distinct !{!13, !12, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1600
|
+
!14 = !{!15}
|
|
1601
|
+
!15 = distinct !{!15, !16, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1602
|
+
!16 = distinct !{!16, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1603
|
+
!17 = !{!"branch_weights", i32 99, i32 101}
|
|
1604
|
+
!18 = !{!8, !10, !11, !13}
|
|
1605
|
+
!19 = !{!20, !11, !13}
|
|
1606
|
+
!20 = distinct !{!20, !21, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1607
|
+
!21 = distinct !{!21, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1608
|
+
!22 = !{!"branch_weights", i32 99, i32 1}
|
|
1609
|
+
!23 = !{!24, !26, !27, !29, !30, !32, !33, !35}
|
|
1610
|
+
!24 = distinct !{!24, !25, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1611
|
+
!25 = distinct !{!25, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1612
|
+
!26 = distinct !{!26, !25, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1613
|
+
!27 = distinct !{!27, !28, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1614
|
+
!28 = distinct !{!28, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1615
|
+
!29 = distinct !{!29, !28, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1616
|
+
!30 = distinct !{!30, !31, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1617
|
+
!31 = distinct !{!31, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29"}
|
|
1618
|
+
!32 = distinct !{!32, !31, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1619
|
+
!33 = distinct !{!33, !34, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1620
|
+
!34 = distinct !{!34, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29"}
|
|
1621
|
+
!35 = distinct !{!35, !34, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1622
|
+
!36 = !{!37}
|
|
1623
|
+
!37 = distinct !{!37, !38, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1624
|
+
!38 = distinct !{!38, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1625
|
+
!39 = !{!30, !32, !33, !35}
|
|
1626
|
+
!40 = !{!41, !33, !35}
|
|
1627
|
+
!41 = distinct !{!41, !42, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1628
|
+
!42 = distinct !{!42, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1629
|
+
!43 = !{!44, !46, !47, !49, !50, !52, !53, !55}
|
|
1630
|
+
!44 = distinct !{!44, !45, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1631
|
+
!45 = distinct !{!45, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1632
|
+
!46 = distinct !{!46, !45, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1633
|
+
!47 = distinct !{!47, !48, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1634
|
+
!48 = distinct !{!48, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1635
|
+
!49 = distinct !{!49, !48, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1636
|
+
!50 = distinct !{!50, !51, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1637
|
+
!51 = distinct !{!51, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29"}
|
|
1638
|
+
!52 = distinct !{!52, !51, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1639
|
+
!53 = distinct !{!53, !54, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1640
|
+
!54 = distinct !{!54, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29"}
|
|
1641
|
+
!55 = distinct !{!55, !54, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1642
|
+
!56 = !{!57}
|
|
1643
|
+
!57 = distinct !{!57, !58, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1644
|
+
!58 = distinct !{!58, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1645
|
+
!59 = !{!50, !52, !53, !55}
|
|
1646
|
+
!60 = !{!61, !53, !55}
|
|
1647
|
+
!61 = distinct !{!61, !62, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1648
|
+
!62 = distinct !{!62, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1649
|
+
!63 = !{!64, !66, !67, !69, !70, !72, !73, !75}
|
|
1650
|
+
!64 = distinct !{!64, !65, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1651
|
+
!65 = distinct !{!65, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1652
|
+
!66 = distinct !{!66, !65, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1653
|
+
!67 = distinct !{!67, !68, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1654
|
+
!68 = distinct !{!68, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1655
|
+
!69 = distinct !{!69, !68, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1656
|
+
!70 = distinct !{!70, !71, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1657
|
+
!71 = distinct !{!71, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29"}
|
|
1658
|
+
!72 = distinct !{!72, !71, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1659
|
+
!73 = distinct !{!73, !74, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1660
|
+
!74 = distinct !{!74, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29"}
|
|
1661
|
+
!75 = distinct !{!75, !74, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1662
|
+
!76 = distinct !{!76, !77, !78}
|
|
1663
|
+
!77 = !{!"llvm.loop.unroll.runtime.disable"}
|
|
1664
|
+
!78 = !{!"llvm.loop.isvectorized", i32 1}
|
|
1665
|
+
!79 = distinct !{!79, !78}
|
|
1666
|
+
!80 = distinct !{!80, !78}
|
|
1667
|
+
!81 = distinct !{!81, !77, !78}
|
|
1668
|
+
!82 = distinct !{!82, !78}
|
|
1669
|
+
!83 = distinct !{!83, !78}
|
|
1670
|
+
!84 = !{!85, !87, !88, !90, !91, !93, !94, !96}
|
|
1671
|
+
!85 = distinct !{!85, !86, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1672
|
+
!86 = distinct !{!86, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1673
|
+
!87 = distinct !{!87, !86, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1674
|
+
!88 = distinct !{!88, !89, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
1675
|
+
!89 = distinct !{!89, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
1676
|
+
!90 = distinct !{!90, !89, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
1677
|
+
!91 = distinct !{!91, !92, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1678
|
+
!92 = distinct !{!92, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29"}
|
|
1679
|
+
!93 = distinct !{!93, !92, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1680
|
+
!94 = distinct !{!94, !95, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %retptr"}
|
|
1681
|
+
!95 = distinct !{!95, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29"}
|
|
1682
|
+
!96 = distinct !{!96, !95, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
1683
|
+
!97 = !{!70, !72, !73, !75}
|
|
1684
|
+
!98 = !{!99, !73, !75}
|
|
1685
|
+
!99 = distinct !{!99, !100, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1686
|
+
!100 = distinct !{!100, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1687
|
+
!101 = distinct !{!101, !78}
|
|
1688
|
+
!102 = distinct !{!102, !78}
|
|
1689
|
+
!103 = distinct !{!103, !78}
|
|
1690
|
+
!104 = !{!91, !93, !94, !96}
|
|
1691
|
+
!105 = !{!106, !94, !96}
|
|
1692
|
+
!106 = distinct !{!106, !107, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
1693
|
+
!107 = distinct !{!107, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
1694
|
+
|
|
1695
|
+
(venv) mikhailgoykhman@Mikhails-MacBook-Pro-2 core %
|
|
1696
|
+
|
|
1697
|
+
|
|
1698
|
+
"""
|
|
1699
|
+
|
|
1700
|
+
"""
|
|
1701
|
+
; ModuleID = 'func4'
|
|
1702
|
+
source_filename = "<string>"
|
|
1703
|
+
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
|
1704
|
+
target triple = "arm64-apple-darwin24.3.0"
|
|
1705
|
+
|
|
1706
|
+
@.const.func4 = internal constant [6 x i8] c"func4\00"
|
|
1707
|
+
@_ZN08NumbaEnv8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
1708
|
+
@".const.missing Environment: _ZN08NumbaEnv8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx" = internal constant [98 x i8] c"missing Environment: _ZN08NumbaEnv8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx\00"
|
|
1709
|
+
@".const.Error creating Python tuple from runtime exception arguments" = internal constant [61 x i8] c"Error creating Python tuple from runtime exception arguments\00"
|
|
1710
|
+
@".const.unknown error when calling native function" = internal constant [43 x i8] c"unknown error when calling native function\00"
|
|
1711
|
+
@".const.Error creating Python tuple from runtime exception arguments.1" = internal constant [61 x i8] c"Error creating Python tuple from runtime exception arguments\00"
|
|
1712
|
+
@PyExc_SystemError = external global i8
|
|
1713
|
+
@".const.unknown error when calling native function.2" = internal constant [43 x i8] c"unknown error when calling native function\00"
|
|
1714
|
+
@".const.<numba.core.cpu.CPUContext object at 0x1089cca10>" = internal constant [50 x i8] c"<numba.core.cpu.CPUContext object at 0x1089cca10>\00"
|
|
1715
|
+
@_ZN08NumbaEnv8__main__7__func3B3v16B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
1716
|
+
@_ZN08NumbaEnv5numba7cpython11old_numbers14int_power_impl12_3clocals_3e9int_powerB3v11B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAExx = common local_unnamed_addr global i8* null
|
|
1717
|
+
@_ZN08NumbaEnv8__main__7__func2B3v14B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
1718
|
+
@_ZN08NumbaEnv5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29 = common local_unnamed_addr global i8* null
|
|
1719
|
+
@_ZN08NumbaEnv5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29 = common local_unnamed_addr global i8* null
|
|
1720
|
+
@.const.pickledata.4433068544 = internal constant [77 x i8] c"\80\04\95B\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C\1Fnegative dimensions not allowed\94\85\94N\87\94."
|
|
1721
|
+
@.const.pickledata.4433068544.sha1 = internal constant [20 x i8] c"3\1B\85c\BD\B9\DA\C8\1B8B\22s\05,Ho\C1pk"
|
|
1722
|
+
@.const.picklebuf.4433068544 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.const.pickledata.4433068544, i32 0, i32 0), i32 77, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4433068544.sha1, i32 0, i32 0), i8* null, i32 0 }
|
|
1723
|
+
@.const.pickledata.4433068480 = internal constant [137 x i8] c"\80\04\95~\00\00\00\00\00\00\00\8C\08builtins\94\8C\0AValueError\94\93\94\8C[array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.\94\85\94N\87\94."
|
|
1724
|
+
@.const.pickledata.4433068480.sha1 = internal constant [20 x i8] c"X\E1N\CC\B5\07\B1\E0 i\81t\02#\E6\85\CB\8C<W"
|
|
1725
|
+
@.const.picklebuf.4433068480 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([137 x i8], [137 x i8]* @.const.pickledata.4433068480, i32 0, i32 0), i32 137, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4433068480.sha1, i32 0, i32 0), i8* null, i32 0 }
|
|
1726
|
+
@_ZN08NumbaEnv5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj = common local_unnamed_addr global i8* null
|
|
1727
|
+
@_ZN08NumbaEnv5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj = common local_unnamed_addr global i8* null
|
|
1728
|
+
@.const.pickledata.4432610432 = internal constant [86 x i8] c"\80\04\95K\00\00\00\00\00\00\00\8C\08builtins\94\8C\0BMemoryError\94\93\94\8C'Allocation failed (probably too large).\94\85\94N\87\94."
|
|
1729
|
+
@.const.pickledata.4432610432.sha1 = internal constant [20 x i8] c"\BA(\9D\81\F0\\p \F3G|\15sH\04\DFe\AB\E2\09"
|
|
1730
|
+
@.const.picklebuf.4432610432 = internal constant { i8*, i32, i8*, i8*, i32 } { i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.const.pickledata.4432610432, i32 0, i32 0), i32 86, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.const.pickledata.4432610432.sha1, i32 0, i32 0), i8* null, i32 0 }
|
|
1731
|
+
@_ZN08NumbaEnv5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE = common local_unnamed_addr global i8* null
|
|
1732
|
+
@_ZN08NumbaEnv8__main__7__func1B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx = common local_unnamed_addr global i8* null
|
|
1733
|
+
@PyExc_RuntimeError = external global i8
|
|
1734
|
+
@_ZN08NumbaEnv5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE = common local_unnamed_addr global i8* null
|
|
1735
|
+
@_ZN08NumbaEnv5numba2np8arrayobj15make_nditer_cls12_3clocals_3e6NdIter13init_specific12_3clocals_3e11check_shapeB3v13B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE8UniTupleIxLi1EE8UniTupleIxLi1EE = common local_unnamed_addr global i8* null
|
|
1736
|
+
|
|
1737
|
+
define i32 @_ZN8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* noalias nocapture writeonly %retptr, { i8*, i32, i8*, i8*, i32 }** noalias nocapture writeonly %excinfo, i64 %arg.m) local_unnamed_addr {
|
|
1738
|
+
B0.endif:
|
|
1739
|
+
%0 = tail call i64 @llvm.smax.i64(i64 %arg.m, i64 0)
|
|
1740
|
+
%.102106.not = icmp slt i64 %arg.m, 1
|
|
1741
|
+
br i1 %.102106.not, label %B228.else.if, label %B54.endif.preheader
|
|
1742
|
+
|
|
1743
|
+
B54.endif.preheader: ; preds = %B0.endif
|
|
1744
|
+
br label %B54.endif
|
|
1745
|
+
|
|
1746
|
+
B348: ; preds = %B270.endif, %B228.else.if
|
|
1747
|
+
%total_sum.6.0.lcssa = phi double [ %total_sum.4.0.lcssa, %B228.else.if ], [ %.693, %B270.endif ]
|
|
1748
|
+
%max_value.5.0.lcssa = phi double [ %max_value.3.0.lcssa, %B228.else.if ], [ %.698, %B270.endif ]
|
|
1749
|
+
%.15.i.i = icmp slt i64 %arg.m, 0
|
|
1750
|
+
br i1 %.15.i.i, label %B348.if, label %B0.endif.endif.i.i, !prof !0
|
|
1751
|
+
|
|
1752
|
+
B0.endif.endif.i.i: ; preds = %B348
|
|
1753
|
+
%.29.i.i = tail call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %arg.m, i64 8)
|
|
1754
|
+
%.31.i.i = extractvalue { i64, i1 } %.29.i.i, 1
|
|
1755
|
+
br i1 %.31.i.i, label %B348.if, label %B0.endif.endif.endif.i.i, !prof !0
|
|
1756
|
+
|
|
1757
|
+
B0.endif.endif.endif.i.i: ; preds = %B0.endif.endif.i.i
|
|
1758
|
+
%.30.i.i = extractvalue { i64, i1 } %.29.i.i, 0
|
|
1759
|
+
%.7.i.i.i.i = tail call i8* @NRT_MemInfo_alloc_aligned(i64 %.30.i.i, i32 32), !noalias !1
|
|
1760
|
+
%.8.i.i.i.i = icmp eq i8* %.7.i.i.i.i, null
|
|
1761
|
+
br i1 %.8.i.i.i.i, label %B348.if, label %B348.endif.endif, !prof !0
|
|
1762
|
+
|
|
1763
|
+
B52.endif.i.preheader: ; preds = %B418.endif
|
|
1764
|
+
%smax = call i64 @llvm.smax.i64(i64 %arg.m, i64 1)
|
|
1765
|
+
br label %B52.endif.i
|
|
1766
|
+
|
|
1767
|
+
B52.endif.i: ; preds = %B52.endif.i.preheader, %B52.endif.i
|
|
1768
|
+
%lsr.iv121 = phi double* [ %.6.i1.i.i, %B52.endif.i.preheader ], [ %scevgep, %B52.endif.i ]
|
|
1769
|
+
%lsr.iv = phi i64 [ %smax, %B52.endif.i.preheader ], [ %lsr.iv.next, %B52.endif.i ]
|
|
1770
|
+
%c.2.06.i = phi double [ %.239.i, %B52.endif.i ], [ 0.000000e+00, %B52.endif.i.preheader ]
|
|
1771
|
+
%.236.i = load double, double* %lsr.iv121, align 8, !noalias !14
|
|
1772
|
+
%.239.i = fadd double %c.2.06.i, %.236.i
|
|
1773
|
+
%lsr.iv.next = add nsw i64 %lsr.iv, -1
|
|
1774
|
+
%scevgep = getelementptr double, double* %lsr.iv121, i64 1
|
|
1775
|
+
%exitcond.not = icmp eq i64 %lsr.iv.next, 0
|
|
1776
|
+
br i1 %exitcond.not, label %_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE.exit.loopexit, label %B52.endif.i, !prof !0
|
|
1777
|
+
|
|
1778
|
+
_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE.exit.loopexit: ; preds = %B52.endif.i
|
|
1779
|
+
%phi.cast = fptosi double %.239.i to i64
|
|
1780
|
+
br label %B472.endif
|
|
1781
|
+
|
|
1782
|
+
common.ret: ; preds = %B348.if, %B472.endif
|
|
1783
|
+
%common.ret.op = phi i32 [ 0, %B472.endif ], [ 1, %B348.if ]
|
|
1784
|
+
ret i32 %common.ret.op
|
|
1785
|
+
|
|
1786
|
+
B54.endif: ; preds = %B54.endif.preheader, %B192.else.if
|
|
1787
|
+
%lsr.iv129 = phi i64 [ 10, %B54.endif.preheader ], [ %lsr.iv.next130, %B192.else.if ]
|
|
1788
|
+
%lsr.iv127 = phi i64 [ 0, %B54.endif.preheader ], [ %lsr.iv.next128, %B192.else.if ]
|
|
1789
|
+
%total_sum.4.0112 = phi double [ %total_sum.5.1, %B192.else.if ], [ 0.000000e+00, %B54.endif.preheader ]
|
|
1790
|
+
%max_value.3.0111 = phi double [ %max_value.4.1, %B192.else.if ], [ -1.000000e+07, %B54.endif.preheader ]
|
|
1791
|
+
%factorial_sum.3.0110 = phi i64 [ %factorial_sum.4.1, %B192.else.if ], [ 0, %B54.endif.preheader ]
|
|
1792
|
+
%count_total.3.0109 = phi i64 [ %count_total.4.1, %B192.else.if ], [ 0, %B54.endif.preheader ]
|
|
1793
|
+
%.44.0107 = phi i64 [ %.115, %B192.else.if ], [ 1, %B54.endif.preheader ]
|
|
1794
|
+
%1 = udiv i64 %.44.0107, 11
|
|
1795
|
+
%2 = mul nuw nsw i64 %1, 11
|
|
1796
|
+
%3 = add nsw i64 %2, -1
|
|
1797
|
+
%4 = udiv i64 %.44.0107, 7
|
|
1798
|
+
%5 = mul nuw nsw i64 %4, 7
|
|
1799
|
+
%6 = add nsw i64 %5, -1
|
|
1800
|
+
%7 = udiv i64 %.44.0107, 5
|
|
1801
|
+
%8 = mul nuw nsw i64 %7, 5
|
|
1802
|
+
%9 = add nsw i64 %8, -1
|
|
1803
|
+
%10 = add i64 %lsr.iv127, 1
|
|
1804
|
+
%.5.i = tail call { double, double, double, i64, i64 } @cfunc._ZN8__main__5func3B3v15B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64 %lsr.iv129), !noalias !17
|
|
1805
|
+
%.5.elt.i = extractvalue { double, double, double, i64, i64 } %.5.i, 0
|
|
1806
|
+
%.5.elt2.i = extractvalue { double, double, double, i64, i64 } %.5.i, 1
|
|
1807
|
+
%.5.elt6.i = extractvalue { double, double, double, i64, i64 } %.5.i, 3
|
|
1808
|
+
%.5.elt8.i = extractvalue { double, double, double, i64, i64 } %.5.i, 4
|
|
1809
|
+
%.194 = fadd double %total_sum.4.0112, %.5.elt.i
|
|
1810
|
+
%.202 = fcmp ogt double %.5.elt2.i, %max_value.3.0111
|
|
1811
|
+
%max_value.4.1 = select i1 %.202, double %.5.elt2.i, double %max_value.3.0111
|
|
1812
|
+
%.220 = add nsw i64 %.5.elt6.i, %factorial_sum.3.0110
|
|
1813
|
+
%.230 = add nsw i64 %.5.elt8.i, %count_total.3.0109
|
|
1814
|
+
%.281 = icmp eq i64 %9, %lsr.iv127
|
|
1815
|
+
%.284 = fmul double %.194, 0x3FEE666666666666
|
|
1816
|
+
%total_sum.5.1 = select i1 %.281, double %.284, double %.194
|
|
1817
|
+
%.339 = icmp eq i64 %6, %lsr.iv127
|
|
1818
|
+
br i1 %.339, label %B182.else.if, label %B192.else.if
|
|
1819
|
+
|
|
1820
|
+
B182.else.if: ; preds = %B54.endif
|
|
1821
|
+
%.362 = sdiv i64 %.220, 2
|
|
1822
|
+
%11 = and i64 %.220, -9223372036854775807
|
|
1823
|
+
%.365 = icmp eq i64 %11, -9223372036854775807
|
|
1824
|
+
%.372 = sext i1 %.365 to i64
|
|
1825
|
+
%spec.select92 = add nsw i64 %.362, %.372
|
|
1826
|
+
br label %B192.else.if
|
|
1827
|
+
|
|
1828
|
+
B192.else.if: ; preds = %B182.else.if, %B54.endif
|
|
1829
|
+
%factorial_sum.4.1 = phi i64 [ %.220, %B54.endif ], [ %spec.select92, %B182.else.if ]
|
|
1830
|
+
%.434 = icmp eq i64 %3, %lsr.iv127
|
|
1831
|
+
%.191.i = mul nsw i64 %10, %10
|
|
1832
|
+
%.473 = select i1 %.434, i64 %.191.i, i64 0
|
|
1833
|
+
%count_total.4.1 = add nsw i64 %.230, %.473
|
|
1834
|
+
%lsr.iv.next128 = add nuw nsw i64 %lsr.iv127, 1
|
|
1835
|
+
%lsr.iv.next130 = add i64 %lsr.iv129, 10
|
|
1836
|
+
%.115 = add nuw i64 %.44.0107, 1
|
|
1837
|
+
%exitcond119.not = icmp eq i64 %0, %lsr.iv.next128
|
|
1838
|
+
br i1 %exitcond119.not, label %B228.else.if, label %B54.endif
|
|
1839
|
+
|
|
1840
|
+
B228.else.if: ; preds = %B192.else.if, %B0.endif
|
|
1841
|
+
%count_total.3.0.lcssa = phi i64 [ 0, %B0.endif ], [ %count_total.4.1, %B192.else.if ]
|
|
1842
|
+
%factorial_sum.3.0.lcssa = phi i64 [ 0, %B0.endif ], [ %factorial_sum.4.1, %B192.else.if ]
|
|
1843
|
+
%max_value.3.0.lcssa = phi double [ -1.000000e+07, %B0.endif ], [ %max_value.4.1, %B192.else.if ]
|
|
1844
|
+
%total_sum.4.0.lcssa = phi double [ 0.000000e+00, %B0.endif ], [ %total_sum.5.1, %B192.else.if ]
|
|
1845
|
+
%.516 = sdiv i64 %arg.m, 2
|
|
1846
|
+
%12 = and i64 %arg.m, -9223372036854775807
|
|
1847
|
+
%.519 = icmp eq i64 %12, -9223372036854775807
|
|
1848
|
+
%.526 = sext i1 %.519 to i64
|
|
1849
|
+
%spec.select94 = add nsw i64 %.516, %.526
|
|
1850
|
+
%.618100.not = icmp slt i64 %spec.select94, 1
|
|
1851
|
+
br i1 %.618100.not, label %B348, label %B270.endif.preheader
|
|
1852
|
+
|
|
1853
|
+
B270.endif.preheader: ; preds = %B228.else.if
|
|
1854
|
+
br label %B270.endif
|
|
1855
|
+
|
|
1856
|
+
B270.endif: ; preds = %B270.endif.preheader, %B270.endif
|
|
1857
|
+
%lsr.iv125 = phi i64 [ 5, %B270.endif.preheader ], [ %lsr.iv.next126, %B270.endif ]
|
|
1858
|
+
%lsr.iv123 = phi i64 [ %spec.select94, %B270.endif.preheader ], [ %lsr.iv.next124, %B270.endif ]
|
|
1859
|
+
%max_value.5.0104 = phi double [ %.698, %B270.endif ], [ %max_value.3.0.lcssa, %B270.endif.preheader ]
|
|
1860
|
+
%total_sum.6.0103 = phi double [ %.693, %B270.endif ], [ %total_sum.4.0.lcssa, %B270.endif.preheader ]
|
|
1861
|
+
%.5.i1 = tail call { double, double, double, i64, i64 } @cfunc._ZN8__main__5func2B3v10B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64 %lsr.iv125), !noalias !20
|
|
1862
|
+
%.5.elt.i3 = extractvalue { double, double, double, i64, i64 } %.5.i1, 0
|
|
1863
|
+
%.5.elt2.i5 = extractvalue { double, double, double, i64, i64 } %.5.i1, 1
|
|
1864
|
+
%.693 = fadd double %total_sum.6.0103, %.5.elt.i3
|
|
1865
|
+
%.697 = fcmp ogt double %.5.elt2.i5, %max_value.5.0104
|
|
1866
|
+
%.698 = select i1 %.697, double %.5.elt2.i5, double %max_value.5.0104
|
|
1867
|
+
%lsr.iv.next124 = add i64 %lsr.iv123, -1
|
|
1868
|
+
%lsr.iv.next126 = add i64 %lsr.iv125, 5
|
|
1869
|
+
%exitcond118.not = icmp eq i64 %lsr.iv.next124, 0
|
|
1870
|
+
br i1 %exitcond118.not, label %B348, label %B270.endif
|
|
1871
|
+
|
|
1872
|
+
B348.if: ; preds = %B0.endif.endif.endif.i.i, %B0.endif.endif.i.i, %B348
|
|
1873
|
+
%excinfo.1.0.ph.i = phi { i8*, i32, i8*, i8*, i32 }* [ @.const.picklebuf.4432610432, %B0.endif.endif.endif.i.i ], [ @.const.picklebuf.4433068480, %B0.endif.endif.i.i ], [ @.const.picklebuf.4433068544, %B348 ]
|
|
1874
|
+
store { i8*, i32, i8*, i8*, i32 }* %excinfo.1.0.ph.i, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1875
|
+
br label %common.ret
|
|
1876
|
+
|
|
1877
|
+
B348.endif.endif: ; preds = %B0.endif.endif.endif.i.i
|
|
1878
|
+
%13 = icmp slt i64 %arg.m, 1
|
|
1879
|
+
%.5.i.i.i = getelementptr i8, i8* %.7.i.i.i.i, i64 24
|
|
1880
|
+
%14 = bitcast i8* %.5.i.i.i to double**
|
|
1881
|
+
%.6.i1.i.i = load double*, double** %14, align 8, !noalias !23
|
|
1882
|
+
%.26.i.i = shl nuw nsw i64 %arg.m, 3
|
|
1883
|
+
%.27.i.i = bitcast double* %.6.i1.i.i to i8*
|
|
1884
|
+
tail call void @llvm.memset.p0i8.i64(i8* align 1 %.27.i.i, i8 0, i64 %.26.i.i, i1 false), !noalias !24
|
|
1885
|
+
br i1 %13, label %B472.endif, label %B418.endif.preheader
|
|
1886
|
+
|
|
1887
|
+
B418.endif.preheader: ; preds = %B348.endif.endif
|
|
1888
|
+
br label %B418.endif
|
|
1889
|
+
|
|
1890
|
+
B418.endif: ; preds = %B418.endif.preheader, %B418.endif
|
|
1891
|
+
%.774.098 = phi i64 [ %.843, %B418.endif ], [ 0, %B418.endif.preheader ]
|
|
1892
|
+
%.843 = add nuw nsw i64 %.774.098, 1
|
|
1893
|
+
%15 = add i64 %.774.098, 1
|
|
1894
|
+
%.5.i16 = tail call { double, double, double, i64, i64 } @cfunc._ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64 %15), !noalias !27
|
|
1895
|
+
%.5.elt.i18 = extractvalue { double, double, double, i64, i64 } %.5.i16, 0
|
|
1896
|
+
%scevgep122 = getelementptr double, double* %.6.i1.i.i, i64 %.774.098
|
|
1897
|
+
store double %.5.elt.i18, double* %scevgep122, align 8
|
|
1898
|
+
%exitcond117.not = icmp eq i64 %0, %.843
|
|
1899
|
+
br i1 %exitcond117.not, label %B52.endif.i.preheader, label %B418.endif
|
|
1900
|
+
|
|
1901
|
+
B472.endif: ; preds = %B348.endif.endif, %_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE.exit.loopexit
|
|
1902
|
+
%c.2.0.lcssa.i = phi i64 [ %phi.cast, %_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE.exit.loopexit ], [ 0, %B348.endif.endif ]
|
|
1903
|
+
tail call void @NRT_decref(i8* nonnull %.7.i.i.i.i)
|
|
1904
|
+
%.993 = sitofp i64 %factorial_sum.3.0.lcssa to double
|
|
1905
|
+
%retptr.repack131 = bitcast { double, double, double, i64, i64 }* %retptr to double*
|
|
1906
|
+
store double %total_sum.6.0.lcssa, double* %retptr.repack131, align 8
|
|
1907
|
+
%retptr.repack54 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 1
|
|
1908
|
+
store double %max_value.5.0.lcssa, double* %retptr.repack54, align 8
|
|
1909
|
+
%retptr.repack56 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 2
|
|
1910
|
+
store double %.993, double* %retptr.repack56, align 8
|
|
1911
|
+
%retptr.repack58 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 3
|
|
1912
|
+
store i64 %count_total.3.0.lcssa, i64* %retptr.repack58, align 8
|
|
1913
|
+
%retptr.repack60 = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %retptr, i64 0, i32 4
|
|
1914
|
+
store i64 %c.2.0.lcssa.i, i64* %retptr.repack60, align 8
|
|
1915
|
+
br label %common.ret
|
|
1916
|
+
}
|
|
1917
|
+
|
|
1918
|
+
define i8* @_ZN7cpython8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i8* nocapture readnone %py_closure, i8* %py_args, i8* nocapture readnone %py_kws) local_unnamed_addr {
|
|
1919
|
+
entry:
|
|
1920
|
+
%.5 = alloca i8*, align 8
|
|
1921
|
+
%.6 = call i32 (i8*, i8*, i64, i64, ...) @PyArg_UnpackTuple(i8* %py_args, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.const.func4, i64 0, i64 0), i64 1, i64 1, i8** nonnull %.5)
|
|
1922
|
+
%.7 = icmp eq i32 %.6, 0
|
|
1923
|
+
%.36 = alloca { double, double, double, i64, i64 }, align 8
|
|
1924
|
+
%excinfo = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
1925
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1926
|
+
br i1 %.7, label %common.ret, label %entry.endif, !prof !0
|
|
1927
|
+
|
|
1928
|
+
common.ret: ; preds = %entry.endif.endif.endif.endif.endif.if.endif, %entry.endif.endif.endif.endif.endif.if.endif.if, %entry.endif.endif.endif.endif.endif.endif.endif.endif, %entry.endif.endif.endif, %entry, %entry.endif.endif.endif.endif.endif.if.if.if, %entry.endif.endif.endif.endif.if.endif, %entry.endif.if
|
|
1929
|
+
%common.ret.op = phi i8* [ null, %entry.endif.if ], [ %.60, %entry.endif.endif.endif.endif.if.endif ], [ null, %entry.endif.endif.endif.endif.endif.if.if.if ], [ null, %entry ], [ null, %entry.endif.endif.endif ], [ null, %entry.endif.endif.endif.endif.endif.endif.endif.endif ], [ null, %entry.endif.endif.endif.endif.endif.if.endif.if ], [ null, %entry.endif.endif.endif.endif.endif.if.endif ]
|
|
1930
|
+
ret i8* %common.ret.op
|
|
1931
|
+
|
|
1932
|
+
entry.endif: ; preds = %entry
|
|
1933
|
+
%.11 = load i8*, i8** @_ZN08NumbaEnv8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx, align 8
|
|
1934
|
+
%.16 = icmp eq i8* %.11, null
|
|
1935
|
+
br i1 %.16, label %entry.endif.if, label %entry.endif.endif, !prof !0
|
|
1936
|
+
|
|
1937
|
+
entry.endif.if: ; preds = %entry.endif
|
|
1938
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_RuntimeError, i8* getelementptr inbounds ([98 x i8], [98 x i8]* @".const.missing Environment: _ZN08NumbaEnv8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx", i64 0, i64 0))
|
|
1939
|
+
br label %common.ret
|
|
1940
|
+
|
|
1941
|
+
entry.endif.endif: ; preds = %entry.endif
|
|
1942
|
+
%.20 = load i8*, i8** %.5, align 8
|
|
1943
|
+
%.23 = call i8* @PyNumber_Long(i8* %.20)
|
|
1944
|
+
%.24.not = icmp eq i8* %.23, null
|
|
1945
|
+
br i1 %.24.not, label %entry.endif.endif.endif, label %entry.endif.endif.if, !prof !0
|
|
1946
|
+
|
|
1947
|
+
entry.endif.endif.if: ; preds = %entry.endif.endif
|
|
1948
|
+
%.26 = call i64 @PyLong_AsLongLong(i8* nonnull %.23)
|
|
1949
|
+
call void @Py_DecRef(i8* nonnull %.23)
|
|
1950
|
+
br label %entry.endif.endif.endif
|
|
1951
|
+
|
|
1952
|
+
entry.endif.endif.endif: ; preds = %entry.endif.endif.if, %entry.endif.endif
|
|
1953
|
+
%.21.0 = phi i64 [ %.26, %entry.endif.endif.if ], [ 0, %entry.endif.endif ]
|
|
1954
|
+
%.31 = call i8* @PyErr_Occurred()
|
|
1955
|
+
%.32.not = icmp eq i8* %.31, null
|
|
1956
|
+
br i1 %.32.not, label %entry.endif.endif.endif.endif, label %common.ret, !prof !30
|
|
1957
|
+
|
|
1958
|
+
entry.endif.endif.endif.endif: ; preds = %entry.endif.endif.endif
|
|
1959
|
+
%0 = bitcast { double, double, double, i64, i64 }* %.36 to i8*
|
|
1960
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %0, i8 0, i64 40, i1 false)
|
|
1961
|
+
%.40 = call i32 @_ZN8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.36, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo, i64 %.21.0) #2
|
|
1962
|
+
%.41 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
1963
|
+
%.48 = icmp sgt i32 %.40, 0
|
|
1964
|
+
%.49 = select i1 %.48, { i8*, i32, i8*, i8*, i32 }* %.41, { i8*, i32, i8*, i8*, i32 }* undef
|
|
1965
|
+
switch i32 %.40, label %entry.endif.endif.endif.endif.endif [
|
|
1966
|
+
i32 -2, label %entry.endif.endif.endif.endif.if.endif
|
|
1967
|
+
i32 0, label %entry.endif.endif.endif.endif.if.endif
|
|
1968
|
+
]
|
|
1969
|
+
|
|
1970
|
+
entry.endif.endif.endif.endif.endif: ; preds = %entry.endif.endif.endif.endif
|
|
1971
|
+
%1 = icmp sgt i32 %.40, 0
|
|
1972
|
+
br i1 %1, label %entry.endif.endif.endif.endif.endif.if, label %entry.endif.endif.endif.endif.endif.endif.endif.endif
|
|
1973
|
+
|
|
1974
|
+
entry.endif.endif.endif.endif.if.endif: ; preds = %entry.endif.endif.endif.endif, %entry.endif.endif.endif.endif
|
|
1975
|
+
%2 = bitcast { double, double, double, i64, i64 }* %.36 to double*
|
|
1976
|
+
%3 = bitcast { double, double, double, i64, i64 }* %.36 to i8*
|
|
1977
|
+
%sunkaddr = getelementptr inbounds i8, i8* %3, i64 32
|
|
1978
|
+
%4 = bitcast i8* %sunkaddr to i64*
|
|
1979
|
+
%.50.fca.4.load = load i64, i64* %4, align 8
|
|
1980
|
+
%5 = bitcast { double, double, double, i64, i64 }* %.36 to i8*
|
|
1981
|
+
%sunkaddr2 = getelementptr inbounds i8, i8* %5, i64 24
|
|
1982
|
+
%6 = bitcast i8* %sunkaddr2 to i64*
|
|
1983
|
+
%.50.fca.3.load = load i64, i64* %6, align 8
|
|
1984
|
+
%7 = bitcast { double, double, double, i64, i64 }* %.36 to i8*
|
|
1985
|
+
%sunkaddr3 = getelementptr inbounds i8, i8* %7, i64 16
|
|
1986
|
+
%8 = bitcast i8* %sunkaddr3 to double*
|
|
1987
|
+
%.50.fca.2.load = load double, double* %8, align 8
|
|
1988
|
+
%9 = bitcast { double, double, double, i64, i64 }* %.36 to i8*
|
|
1989
|
+
%sunkaddr4 = getelementptr inbounds i8, i8* %9, i64 8
|
|
1990
|
+
%10 = bitcast i8* %sunkaddr4 to double*
|
|
1991
|
+
%.50.fca.1.load = load double, double* %10, align 8
|
|
1992
|
+
%.50.fca.0.load = load double, double* %2, align 8
|
|
1993
|
+
%.60 = call i8* @PyTuple_New(i64 5)
|
|
1994
|
+
%.62 = call i8* @PyFloat_FromDouble(double %.50.fca.0.load)
|
|
1995
|
+
%.63 = call i32 @PyTuple_SetItem(i8* %.60, i64 0, i8* %.62)
|
|
1996
|
+
%.65 = call i8* @PyFloat_FromDouble(double %.50.fca.1.load)
|
|
1997
|
+
%.66 = call i32 @PyTuple_SetItem(i8* %.60, i64 1, i8* %.65)
|
|
1998
|
+
%.68 = call i8* @PyFloat_FromDouble(double %.50.fca.2.load)
|
|
1999
|
+
%.69 = call i32 @PyTuple_SetItem(i8* %.60, i64 2, i8* %.68)
|
|
2000
|
+
%.73 = call i8* @PyLong_FromLongLong(i64 %.50.fca.3.load)
|
|
2001
|
+
%.76 = call i32 @PyTuple_SetItem(i8* %.60, i64 3, i8* %.73)
|
|
2002
|
+
%.80 = call i8* @PyLong_FromLongLong(i64 %.50.fca.4.load)
|
|
2003
|
+
%.83 = call i32 @PyTuple_SetItem(i8* %.60, i64 4, i8* %.80)
|
|
2004
|
+
br label %common.ret
|
|
2005
|
+
|
|
2006
|
+
entry.endif.endif.endif.endif.endif.if: ; preds = %entry.endif.endif.endif.endif.endif
|
|
2007
|
+
call void @PyErr_Clear()
|
|
2008
|
+
%.88 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.49, align 8
|
|
2009
|
+
%.89 = extractvalue { i8*, i32, i8*, i8*, i32 } %.88, 4
|
|
2010
|
+
%.90 = icmp sgt i32 %.89, 0
|
|
2011
|
+
%.93 = extractvalue { i8*, i32, i8*, i8*, i32 } %.88, 0
|
|
2012
|
+
%.95 = extractvalue { i8*, i32, i8*, i8*, i32 } %.88, 1
|
|
2013
|
+
br i1 %.90, label %entry.endif.endif.endif.endif.endif.if.if, label %entry.endif.endif.endif.endif.endif.if.else
|
|
2014
|
+
|
|
2015
|
+
entry.endif.endif.endif.endif.endif.if.if: ; preds = %entry.endif.endif.endif.endif.endif.if
|
|
2016
|
+
%.96 = sext i32 %.95 to i64
|
|
2017
|
+
%.97 = call i8* @PyBytes_FromStringAndSize(i8* %.93, i64 %.96)
|
|
2018
|
+
%.98 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.49, align 8
|
|
2019
|
+
%.99 = extractvalue { i8*, i32, i8*, i8*, i32 } %.98, 2
|
|
2020
|
+
%.101 = extractvalue { i8*, i32, i8*, i8*, i32 } %.98, 3
|
|
2021
|
+
%.102 = bitcast i8* %.101 to i8* (i8*)*
|
|
2022
|
+
%.103 = call i8* %.102(i8* %.99)
|
|
2023
|
+
%.104 = icmp eq i8* %.103, null
|
|
2024
|
+
br i1 %.104, label %entry.endif.endif.endif.endif.endif.if.if.if, label %entry.endif.endif.endif.endif.endif.if.if.endif, !prof !0
|
|
2025
|
+
|
|
2026
|
+
entry.endif.endif.endif.endif.endif.if.else: ; preds = %entry.endif.endif.endif.endif.endif.if
|
|
2027
|
+
%.117 = extractvalue { i8*, i32, i8*, i8*, i32 } %.88, 2
|
|
2028
|
+
%.118 = call i8* @numba_unpickle(i8* %.93, i32 %.95, i8* %.117)
|
|
2029
|
+
br label %entry.endif.endif.endif.endif.endif.if.endif
|
|
2030
|
+
|
|
2031
|
+
entry.endif.endif.endif.endif.endif.if.endif: ; preds = %entry.endif.endif.endif.endif.endif.if.if.endif, %entry.endif.endif.endif.endif.endif.if.else
|
|
2032
|
+
%.120 = phi i8* [ %.108, %entry.endif.endif.endif.endif.endif.if.if.endif ], [ %.118, %entry.endif.endif.endif.endif.endif.if.else ]
|
|
2033
|
+
%.121.not = icmp eq i8* %.120, null
|
|
2034
|
+
br i1 %.121.not, label %common.ret, label %entry.endif.endif.endif.endif.endif.if.endif.if, !prof !0
|
|
2035
|
+
|
|
2036
|
+
entry.endif.endif.endif.endif.endif.if.if.if: ; preds = %entry.endif.endif.endif.endif.endif.if.if
|
|
2037
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_RuntimeError, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @".const.Error creating Python tuple from runtime exception arguments", i64 0, i64 0))
|
|
2038
|
+
br label %common.ret
|
|
2039
|
+
|
|
2040
|
+
entry.endif.endif.endif.endif.endif.if.if.endif: ; preds = %entry.endif.endif.endif.endif.endif.if.if
|
|
2041
|
+
%.108 = call i8* @numba_runtime_build_excinfo_struct(i8* %.97, i8* nonnull %.103)
|
|
2042
|
+
%.109 = bitcast { i8*, i32, i8*, i8*, i32 }* %.49 to i8*
|
|
2043
|
+
call void @NRT_Free(i8* nonnull %.109)
|
|
2044
|
+
br label %entry.endif.endif.endif.endif.endif.if.endif
|
|
2045
|
+
|
|
2046
|
+
entry.endif.endif.endif.endif.endif.if.endif.if: ; preds = %entry.endif.endif.endif.endif.endif.if.endif
|
|
2047
|
+
call void @numba_do_raise(i8* nonnull %.120)
|
|
2048
|
+
br label %common.ret
|
|
2049
|
+
|
|
2050
|
+
entry.endif.endif.endif.endif.endif.endif.endif.endif: ; preds = %entry.endif.endif.endif.endif.endif
|
|
2051
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_SystemError, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @".const.unknown error when calling native function", i64 0, i64 0))
|
|
2052
|
+
br label %common.ret
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
declare i32 @PyArg_UnpackTuple(i8*, i8*, i64, i64, ...) local_unnamed_addr
|
|
2056
|
+
|
|
2057
|
+
declare void @PyErr_SetString(i8*, i8*) local_unnamed_addr
|
|
2058
|
+
|
|
2059
|
+
declare i8* @PyNumber_Long(i8*) local_unnamed_addr
|
|
2060
|
+
|
|
2061
|
+
declare i64 @PyLong_AsLongLong(i8*) local_unnamed_addr
|
|
2062
|
+
|
|
2063
|
+
declare void @Py_DecRef(i8*) local_unnamed_addr
|
|
2064
|
+
|
|
2065
|
+
declare i8* @PyErr_Occurred() local_unnamed_addr
|
|
2066
|
+
|
|
2067
|
+
declare i8* @PyTuple_New(i64) local_unnamed_addr
|
|
2068
|
+
|
|
2069
|
+
declare i8* @PyFloat_FromDouble(double) local_unnamed_addr
|
|
2070
|
+
|
|
2071
|
+
declare i32 @PyTuple_SetItem(i8*, i64, i8*) local_unnamed_addr
|
|
2072
|
+
|
|
2073
|
+
declare i8* @PyLong_FromLongLong(i64) local_unnamed_addr
|
|
2074
|
+
|
|
2075
|
+
declare void @PyErr_Clear() local_unnamed_addr
|
|
2076
|
+
|
|
2077
|
+
declare i8* @PyBytes_FromStringAndSize(i8*, i64) local_unnamed_addr
|
|
2078
|
+
|
|
2079
|
+
declare i8* @numba_unpickle(i8*, i32, i8*) local_unnamed_addr
|
|
2080
|
+
|
|
2081
|
+
declare i8* @numba_runtime_build_excinfo_struct(i8*, i8*) local_unnamed_addr
|
|
2082
|
+
|
|
2083
|
+
declare void @NRT_Free(i8*) local_unnamed_addr
|
|
2084
|
+
|
|
2085
|
+
declare void @numba_do_raise(i8*) local_unnamed_addr
|
|
2086
|
+
|
|
2087
|
+
define { double, double, double, i64, i64 } @cfunc._ZN8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64 %.1) local_unnamed_addr {
|
|
2088
|
+
entry:
|
|
2089
|
+
%.3 = alloca { double, double, double, i64, i64 }, align 8
|
|
2090
|
+
%.fca.0.gep1 = bitcast { double, double, double, i64, i64 }* %.3 to double*
|
|
2091
|
+
%.fca.1.gep = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %.3, i64 0, i32 1
|
|
2092
|
+
%.fca.2.gep = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %.3, i64 0, i32 2
|
|
2093
|
+
%.fca.3.gep = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %.3, i64 0, i32 3
|
|
2094
|
+
%.fca.4.gep = getelementptr inbounds { double, double, double, i64, i64 }, { double, double, double, i64, i64 }* %.3, i64 0, i32 4
|
|
2095
|
+
%excinfo = alloca { i8*, i32, i8*, i8*, i32 }*, align 8
|
|
2096
|
+
%0 = bitcast { double, double, double, i64, i64 }* %.3 to i8*
|
|
2097
|
+
call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(40) %0, i8 0, i64 40, i1 false)
|
|
2098
|
+
store { i8*, i32, i8*, i8*, i32 }* null, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
2099
|
+
%.7 = call i32 @_ZN8__main__5func4B3v17B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx({ double, double, double, i64, i64 }* nonnull %.3, { i8*, i32, i8*, i8*, i32 }** nonnull %excinfo, i64 %.1) #2
|
|
2100
|
+
%.8 = load { i8*, i32, i8*, i8*, i32 }*, { i8*, i32, i8*, i8*, i32 }** %excinfo, align 8
|
|
2101
|
+
%.9.not = icmp eq i32 %.7, 0
|
|
2102
|
+
%.15 = icmp sgt i32 %.7, 0
|
|
2103
|
+
%.16 = select i1 %.15, { i8*, i32, i8*, i8*, i32 }* %.8, { i8*, i32, i8*, i8*, i32 }* undef
|
|
2104
|
+
%.17.fca.0.load = load double, double* %.fca.0.gep1, align 8
|
|
2105
|
+
%.17.fca.1.load = load double, double* %.fca.1.gep, align 8
|
|
2106
|
+
%.17.fca.2.load = load double, double* %.fca.2.gep, align 8
|
|
2107
|
+
%.17.fca.3.load = load i64, i64* %.fca.3.gep, align 8
|
|
2108
|
+
%.17.fca.4.load = load i64, i64* %.fca.4.gep, align 8
|
|
2109
|
+
%inserted.f0 = insertvalue { double, double, double, i64, i64 } undef, double %.17.fca.0.load, 0
|
|
2110
|
+
%inserted.f1 = insertvalue { double, double, double, i64, i64 } %inserted.f0, double %.17.fca.1.load, 1
|
|
2111
|
+
%inserted.f2 = insertvalue { double, double, double, i64, i64 } %inserted.f1, double %.17.fca.2.load, 2
|
|
2112
|
+
%inserted.f3 = insertvalue { double, double, double, i64, i64 } %inserted.f2, i64 %.17.fca.3.load, 3
|
|
2113
|
+
%inserted.f4 = insertvalue { double, double, double, i64, i64 } %inserted.f3, i64 %.17.fca.4.load, 4
|
|
2114
|
+
%.24 = alloca i32, align 4
|
|
2115
|
+
store i32 0, i32* %.24, align 4
|
|
2116
|
+
br i1 %.9.not, label %common.ret, label %entry.if, !prof !30
|
|
2117
|
+
|
|
2118
|
+
entry.if: ; preds = %entry
|
|
2119
|
+
%1 = icmp sgt i32 %.7, 0
|
|
2120
|
+
call void @numba_gil_ensure(i32* nonnull %.24)
|
|
2121
|
+
br i1 %1, label %entry.if.if, label %entry.if.endif.endif.endif
|
|
2122
|
+
|
|
2123
|
+
common.ret: ; preds = %entry, %.27, %entry.if.if.if.if
|
|
2124
|
+
%common.ret.op = phi { double, double, double, i64, i64 } [ zeroinitializer, %entry.if.if.if.if ], [ %inserted.f4, %.27 ], [ %inserted.f4, %entry ]
|
|
2125
|
+
ret { double, double, double, i64, i64 } %common.ret.op
|
|
2126
|
+
|
|
2127
|
+
.27: ; preds = %entry.if.if.endif, %entry.if.if.endif.if, %entry.if.endif.endif.endif
|
|
2128
|
+
%.75 = call i8* @PyUnicode_FromString(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @".const.<numba.core.cpu.CPUContext object at 0x1089cca10>", i64 0, i64 0))
|
|
2129
|
+
call void @PyErr_WriteUnraisable(i8* %.75)
|
|
2130
|
+
call void @Py_DecRef(i8* %.75)
|
|
2131
|
+
call void @numba_gil_release(i32* nonnull %.24)
|
|
2132
|
+
br label %common.ret
|
|
2133
|
+
|
|
2134
|
+
entry.if.if: ; preds = %entry.if
|
|
2135
|
+
call void @PyErr_Clear()
|
|
2136
|
+
%.30 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.16, align 8
|
|
2137
|
+
%.31 = extractvalue { i8*, i32, i8*, i8*, i32 } %.30, 4
|
|
2138
|
+
%.32 = icmp sgt i32 %.31, 0
|
|
2139
|
+
%.35 = extractvalue { i8*, i32, i8*, i8*, i32 } %.30, 0
|
|
2140
|
+
%.37 = extractvalue { i8*, i32, i8*, i8*, i32 } %.30, 1
|
|
2141
|
+
br i1 %.32, label %entry.if.if.if, label %entry.if.if.else
|
|
2142
|
+
|
|
2143
|
+
entry.if.if.if: ; preds = %entry.if.if
|
|
2144
|
+
%.38 = sext i32 %.37 to i64
|
|
2145
|
+
%.39 = call i8* @PyBytes_FromStringAndSize(i8* %.35, i64 %.38)
|
|
2146
|
+
%.40 = load { i8*, i32, i8*, i8*, i32 }, { i8*, i32, i8*, i8*, i32 }* %.16, align 8
|
|
2147
|
+
%.41 = extractvalue { i8*, i32, i8*, i8*, i32 } %.40, 2
|
|
2148
|
+
%.43 = extractvalue { i8*, i32, i8*, i8*, i32 } %.40, 3
|
|
2149
|
+
%.44 = bitcast i8* %.43 to i8* (i8*)*
|
|
2150
|
+
%.45 = call i8* %.44(i8* %.41)
|
|
2151
|
+
%.46 = icmp eq i8* %.45, null
|
|
2152
|
+
br i1 %.46, label %entry.if.if.if.if, label %entry.if.if.if.endif, !prof !0
|
|
2153
|
+
|
|
2154
|
+
entry.if.if.else: ; preds = %entry.if.if
|
|
2155
|
+
%.59 = extractvalue { i8*, i32, i8*, i8*, i32 } %.30, 2
|
|
2156
|
+
%.60 = call i8* @numba_unpickle(i8* %.35, i32 %.37, i8* %.59)
|
|
2157
|
+
br label %entry.if.if.endif
|
|
2158
|
+
|
|
2159
|
+
entry.if.if.endif: ; preds = %entry.if.if.if.endif, %entry.if.if.else
|
|
2160
|
+
%.62 = phi i8* [ %.50, %entry.if.if.if.endif ], [ %.60, %entry.if.if.else ]
|
|
2161
|
+
%.63.not = icmp eq i8* %.62, null
|
|
2162
|
+
br i1 %.63.not, label %.27, label %entry.if.if.endif.if, !prof !0
|
|
2163
|
+
|
|
2164
|
+
entry.if.if.if.if: ; preds = %entry.if.if.if
|
|
2165
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_RuntimeError, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @".const.Error creating Python tuple from runtime exception arguments.1", i64 0, i64 0))
|
|
2166
|
+
br label %common.ret
|
|
2167
|
+
|
|
2168
|
+
entry.if.if.if.endif: ; preds = %entry.if.if.if
|
|
2169
|
+
%.50 = call i8* @numba_runtime_build_excinfo_struct(i8* %.39, i8* nonnull %.45)
|
|
2170
|
+
%.51 = bitcast { i8*, i32, i8*, i8*, i32 }* %.16 to i8*
|
|
2171
|
+
call void @NRT_Free(i8* nonnull %.51)
|
|
2172
|
+
br label %entry.if.if.endif
|
|
2173
|
+
|
|
2174
|
+
entry.if.if.endif.if: ; preds = %entry.if.if.endif
|
|
2175
|
+
call void @numba_do_raise(i8* nonnull %.62)
|
|
2176
|
+
br label %.27
|
|
2177
|
+
|
|
2178
|
+
entry.if.endif.endif.endif: ; preds = %entry.if
|
|
2179
|
+
call void @PyErr_SetString(i8* nonnull @PyExc_SystemError, i8* getelementptr inbounds ([43 x i8], [43 x i8]* @".const.unknown error when calling native function.2", i64 0, i64 0))
|
|
2180
|
+
br label %.27
|
|
2181
|
+
}
|
|
2182
|
+
|
|
2183
|
+
declare void @numba_gil_ensure(i32*) local_unnamed_addr
|
|
2184
|
+
|
|
2185
|
+
declare i8* @PyUnicode_FromString(i8*) local_unnamed_addr
|
|
2186
|
+
|
|
2187
|
+
declare void @PyErr_WriteUnraisable(i8*) local_unnamed_addr
|
|
2188
|
+
|
|
2189
|
+
declare void @numba_gil_release(i32*) local_unnamed_addr
|
|
2190
|
+
|
|
2191
|
+
declare { double, double, double, i64, i64 } @cfunc._ZN8__main__5func3B3v15B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64) local_unnamed_addr
|
|
2192
|
+
|
|
2193
|
+
declare { double, double, double, i64, i64 } @cfunc._ZN8__main__5func2B3v10B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64) local_unnamed_addr
|
|
2194
|
+
|
|
2195
|
+
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
2196
|
+
declare { i64, i1 } @llvm.smul.with.overflow.i64(i64, i64) #0
|
|
2197
|
+
|
|
2198
|
+
declare noalias i8* @NRT_MemInfo_alloc_aligned(i64, i32) local_unnamed_addr
|
|
2199
|
+
|
|
2200
|
+
; Function Attrs: argmemonly mustprogress nocallback nofree nounwind willreturn writeonly
|
|
2201
|
+
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #1
|
|
2202
|
+
|
|
2203
|
+
declare { double, double, double, i64, i64 } @cfunc._ZN8__main__5func1B2v3B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx(i64) local_unnamed_addr
|
|
2204
|
+
|
|
2205
|
+
; Function Attrs: noinline
|
|
2206
|
+
define linkonce_odr void @NRT_decref(i8* %.1) local_unnamed_addr #2 {
|
|
2207
|
+
.3:
|
|
2208
|
+
%.4 = icmp eq i8* %.1, null
|
|
2209
|
+
br i1 %.4, label %common.ret1, label %.3.endif, !prof !0
|
|
2210
|
+
|
|
2211
|
+
common.ret1: ; preds = %.3, %.3.endif
|
|
2212
|
+
ret void
|
|
2213
|
+
|
|
2214
|
+
.3.endif: ; preds = %.3
|
|
2215
|
+
fence release
|
|
2216
|
+
%.8 = bitcast i8* %.1 to i64*
|
|
2217
|
+
%.4.i = atomicrmw sub i64* %.8, i64 1 monotonic, align 8
|
|
2218
|
+
%.10 = icmp eq i64 %.4.i, 1
|
|
2219
|
+
br i1 %.10, label %.3.endif.if, label %common.ret1, !prof !0
|
|
2220
|
+
|
|
2221
|
+
.3.endif.if: ; preds = %.3.endif
|
|
2222
|
+
fence acquire
|
|
2223
|
+
tail call void @NRT_MemInfo_call_dtor(i8* nonnull %.1)
|
|
2224
|
+
ret void
|
|
2225
|
+
}
|
|
2226
|
+
|
|
2227
|
+
declare void @NRT_MemInfo_call_dtor(i8*) local_unnamed_addr
|
|
2228
|
+
|
|
2229
|
+
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
|
|
2230
|
+
declare i64 @llvm.smax.i64(i64, i64) #3
|
|
2231
|
+
|
|
2232
|
+
attributes #0 = { mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn }
|
|
2233
|
+
attributes #1 = { argmemonly mustprogress nocallback nofree nounwind willreturn writeonly }
|
|
2234
|
+
attributes #2 = { noinline }
|
|
2235
|
+
attributes #3 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
|
|
2236
|
+
|
|
2237
|
+
!0 = !{!"branch_weights", i32 1, i32 99}
|
|
2238
|
+
!1 = !{!2, !4, !5, !7, !8, !10, !11, !13}
|
|
2239
|
+
!2 = distinct !{!2, !3, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
2240
|
+
!3 = distinct !{!3, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
2241
|
+
!4 = distinct !{!4, !3, !"_ZN5numba2np8arrayobj18_ol_array_allocate12_3clocals_3e4implB2v7B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
2242
|
+
!5 = distinct !{!5, !6, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %retptr"}
|
|
2243
|
+
!6 = distinct !{!6, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj"}
|
|
2244
|
+
!7 = distinct !{!7, !6, !"_ZN5numba2np8arrayobj15_call_allocatorB2v6B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAEN29typeref_5b_3cclass_20_27numba4core5types8npytypes14Array_27_3e_5dExj: %excinfo"}
|
|
2245
|
+
!8 = distinct !{!8, !9, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %retptr"}
|
|
2246
|
+
!9 = distinct !{!9, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29"}
|
|
2247
|
+
!10 = distinct !{!10, !9, !"_ZN5numba2np8arrayobj11ol_np_empty12_3clocals_3e4implB2v5B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx39Function_28_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
2248
|
+
!11 = distinct !{!11, !12, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %retptr"}
|
|
2249
|
+
!12 = distinct !{!12, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29"}
|
|
2250
|
+
!13 = distinct !{!13, !12, !"_ZN5numba2np8arrayobj11ol_np_zeros12_3clocals_3e4implB2v4B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dEx48omitted_28default_3d_3cclass_20_27float_27_3e_29: %excinfo"}
|
|
2251
|
+
!14 = !{!15}
|
|
2252
|
+
!15 = distinct !{!15, !16, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
2253
|
+
!16 = distinct !{!16, !"_ZN5numba2np13old_arraymath9array_sum12_3clocals_3e14array_sum_implB3v12B42c8tJTC_2fWQA93W1AaAIYBPIqRBFCjDSZRVAJmaQIAE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
2254
|
+
!17 = !{!18}
|
|
2255
|
+
!18 = distinct !{!18, !19, !"_ZN8__main__7__func3B3v16B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx: %retptr"}
|
|
2256
|
+
!19 = distinct !{!19, !"_ZN8__main__7__func3B3v16B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx"}
|
|
2257
|
+
!20 = !{!21}
|
|
2258
|
+
!21 = distinct !{!21, !22, !"_ZN8__main__7__func2B3v14B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx: %retptr"}
|
|
2259
|
+
!22 = distinct !{!22, !"_ZN8__main__7__func2B3v14B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx"}
|
|
2260
|
+
!23 = !{!8, !10, !11, !13}
|
|
2261
|
+
!24 = !{!25, !11, !13}
|
|
2262
|
+
!25 = distinct !{!25, !26, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE: %retptr"}
|
|
2263
|
+
!26 = distinct !{!26, !"_ZN5numba2np8arrayobj18ol_array_zero_fill12_3clocals_3e4implB2v8B42c8tJTIeFIjxB2IKSgI4CrvQClcaMQ5hEEUSJJgA_3dE5ArrayIdLi1E1C7mutable7alignedE"}
|
|
2264
|
+
!27 = !{!28}
|
|
2265
|
+
!28 = distinct !{!28, !29, !"_ZN8__main__7__func1B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx: %retptr"}
|
|
2266
|
+
!29 = distinct !{!29, !"_ZN8__main__7__func1B2v9B38c8tJTIeFIjxB2IKSgI4CrvQClQZ6FczSBAA_3dEx"}
|
|
2267
|
+
!30 = !{!"branch_weights", i32 99, i32 1}
|
|
2268
|
+
|
|
2269
|
+
|
|
2270
|
+
"""
|