본문 바로가기

CNUproject/코드 동일성 검사 도구

11_LLVM IR

팀원의 C코드를 챗지피티를 통해 python코드로 변경 후 LLVM IR로 변환하기

 

1. for문

#include<stdio.h>
 
int main(void)
{
	int sum = 0;
	int i;
	for (i = 0; i < 10; i++)
	{
		sum += i;
	}
	printf("%d\n ", sum);
	return 0;
}
#!/usr/bin/env python

import numba as nb
@nb.jit(nopython=True)
def main():
    sum = 0
    for i in range(10):
        sum += i
    print(sum)

if __name__ == "__main__":
    main()

chatGPT에게 c코드를 python코드로 변환 요청

 

numba를 사용하여 llvm ir로 변환하는 명령어

numba pythonToLLVM.py --dump-llvm > pythonFor.ll

pythonToLLVM.py : 얻고자 하는 input 파이썬 코드

pythonFor.ll : 변환된 llvm ir output

 

--------------------LLVM DUMP <function descriptor 'main$1'>--------------------
; ModuleID = "main$1"
target triple = "arm64-apple-darwin22.4.0"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"

@"_ZN08NumbaEnv8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE" = common global i8* null
define i32 @"_ZN8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE"(i8** noalias nocapture %"retptr", {i8*, i32, i8*, i8*, i32}** noalias nocapture %"excinfo")
{
entry:
%"sum.2" = alloca i64
store i64 0, i64* %"sum.2"
%".7" = alloca {i64, i64, i64}
store {i64, i64, i64} zeroinitializer, {i64, i64, i64}* %".7"
%".17" = alloca {i64, i64, i64}
store {i64, i64, i64} zeroinitializer, {i64, i64, i64}* %".17"
%".21" = alloca {i64*, i64, i64, i64*}
store {i64*, i64, i64, i64*} zeroinitializer, {i64*, i64, i64, i64*}* %".21"
%".30" = alloca i64
store i64 0, i64* %".30"
%".33" = alloca i64
store i64 0, i64* %".33"
%"try_state" = alloca i64
store i64 0, i64* %"try_state"
%"$phi14.0" = alloca {i64*, i64, i64, i64*}
store {i64*, i64, i64, i64*} zeroinitializer, {i64*, i64, i64, i64*}* %"$phi14.0"
%".78" = alloca {i64, i1}
store {i64, i1} zeroinitializer, {i64, i1}* %".78"
%".81" = alloca {i64*, i64, i64, i64*}
store {i64*, i64, i64, i64*} zeroinitializer, {i64*, i64, i64, i64*}* %".81"
%".107" = alloca {i64, i1}
store {i64, i1} zeroinitializer, {i64, i1}* %".107"
%".113" = alloca {i64, i1}
store {i64, i1} zeroinitializer, {i64, i1}* %".113"
%"$phi16.1" = alloca i64
store i64 0, i64* %"$phi16.1"
%".136" = alloca i32
store i32 0, i32* %".136"
%".151" = alloca i8*
store i8* null, i8** %".151"
br label %"B0"
B0:
%".5" = load i64, i64* %"sum.2"
store i64 0, i64* %"sum.2"
store {i64, i64, i64} zeroinitializer, {i64, i64, i64}* %".7"
%".10" = getelementptr inbounds {i64, i64, i64}, {i64, i64, i64}* %".7", i32 0, i32 0
store i64 0, i64* %".10"
%".12" = getelementptr inbounds {i64, i64, i64}, {i64, i64, i64}* %".7", i32 0, i32 1
store i64 10, i64* %".12"
%".14" = getelementptr inbounds {i64, i64, i64}, {i64, i64, i64}* %".7", i32 0, i32 2
store i64 1, i64* %".14"
%".16" = load {i64, i64, i64}, {i64, i64, i64}* %".7"
store {i64, i64, i64} zeroinitializer, {i64, i64, i64}* %".17"
store {i64, i64, i64} %".16", {i64, i64, i64}* %".17"
store {i64*, i64, i64, i64*} zeroinitializer, {i64*, i64, i64, i64*}* %".21"
%".24" = getelementptr inbounds {i64, i64, i64}, {i64, i64, i64}* %".17", i32 0, i32 0
%".25" = load i64, i64* %".24"
%".26" = getelementptr inbounds {i64, i64, i64}, {i64, i64, i64}* %".17", i32 0, i32 1
%".27" = load i64, i64* %".26"
%".28" = getelementptr inbounds {i64, i64, i64}, {i64, i64, i64}* %".17", i32 0, i32 2
%".29" = load i64, i64* %".28"
store i64 %".25", i64* %".30"
%".35" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".21", i32 0, i32 0
store i64* %".30", i64** %".35"
%".37" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".21", i32 0, i32 1
store i64 %".27", i64* %".37"
%".39" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".21", i32 0, i32 2
store i64 %".29", i64* %".39"
%".41" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".21", i32 0, i32 3
store i64* %".33", i64** %".41"
%".43" = sub i64 %".27", %".25"
%".44" = icmp sgt i64 %".43", 0
%".45" = icmp sgt i64 %".29", 0
%".46" = xor i1 %".44", %".45"
%".47" = icmp eq i64 %".29", 0
br i1 %".47", label %"B0.if", label %"B0.endif", !prof !0
B14:
%".77" = load {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %"$phi14.0"
store {i64, i1} zeroinitializer, {i64, i1}* %".78"
store {i64*, i64, i64, i64*} zeroinitializer, {i64*, i64, i64, i64*}* %".81"
store {i64*, i64, i64, i64*} %".77", {i64*, i64, i64, i64*}* %".81"
%".85" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".81", i32 0, i32 3
%".86" = load i64*, i64** %".85"
%".87" = load i64, i64* %".86"
%".88" = icmp sgt i64 %".87", 0
%".89" = getelementptr inbounds {i64, i1}, {i64, i1}* %".78", i32 0, i32 1
store i1 %".88", i1* %".89"
br i1 %".88", label %"B14.if", label %"B14.endif"
B16:
%".123" = load i64, i64* %"$phi16.1"
%".124" = load i64, i64* %"$phi16.1"
store i64 0, i64* %"$phi16.1"
%".126" = load i64, i64* %"sum.2"
%".127" = add nsw i64 %".126", %".123"
%".128" = load i64, i64* %"sum.2"
store i64 %".127", i64* %"sum.2"
br label %"B14"
B28:
%".131" = load i64, i64* %"$phi16.1"
store i64 0, i64* %"$phi16.1"
%".133" = load {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %"$phi14.0"
%"extracted.iter.3" = extractvalue {i64*, i64, i64, i64*} %".133", 0
%"extracted.stop.4" = extractvalue {i64*, i64, i64, i64*} %".133", 1
%"extracted.step.4" = extractvalue {i64*, i64, i64, i64*} %".133", 2
%"extracted.count.3" = extractvalue {i64*, i64, i64, i64*} %".133", 3
store {i64*, i64, i64, i64*} zeroinitializer, {i64*, i64, i64, i64*}* %"$phi14.0"
%".135" = load i64, i64* %"sum.2"
call void @"numba_gil_ensure"(i32* %".136")
%".139" = load i8*, i8** @"_ZN08NumbaEnv8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE"
%".140" = icmp eq i8* null, %".139"
br i1 %".140", label %"B28.if", label %"B28.endif", !prof !0
B0.if:
store {i8*, i32, i8*, i8*, i32}* @".const.picklebuf.4972742784", {i8*, i32, i8*, i8*, i32}** %"excinfo", !numba_exception_output !1
store i64 0, i64* %"try_state"
%".52" = load i64, i64* %"try_state"
%".53" = icmp ugt i64 %".52", 0
%".54" = load {i8*, i32, i8*, i8*, i32}*, {i8*, i32, i8*, i8*, i32}** %"excinfo"
ret i32 1
B0.endif:
br i1 %".46", label %"B0.endif.if", label %"B0.endif.else"
B0.endif.if:
%".57" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".21", i32 0, i32 3
%".58" = load i64*, i64** %".57"
store i64 0, i64* %".58"
br label %"B0.endif.endif"
B0.endif.else:
%".61" = srem i64 %".43", %".29"
%".62" = sub i64 0, %".61"
%".63" = select i1 %".44", i64 %".61", i64 %".62"
%".64" = icmp sgt i64 %".63", 0
%".65" = sdiv i64 %".43", %".29"
%".66" = select i1 %".64", i64 1, i64 0
%".67" = add i64 %".65", %".66"
%".68" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".21", i32 0, i32 3
%".69" = load i64*, i64** %".68"
store i64 %".67", i64* %".69"
br label %"B0.endif.endif"
B0.endif.endif:
%".72" = load {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".21"
%"extracted.start" = extractvalue {i64, i64, i64} %".16", 0
%"extracted.stop" = extractvalue {i64, i64, i64} %".16", 1
%"extracted.step" = extractvalue {i64, i64, i64} %".16", 2
%"extracted.iter" = extractvalue {i64*, i64, i64, i64*} %".72", 0
%"extracted.stop.1" = extractvalue {i64*, i64, i64, i64*} %".72", 1
%"extracted.step.1" = extractvalue {i64*, i64, i64, i64*} %".72", 2
%"extracted.count" = extractvalue {i64*, i64, i64, i64*} %".72", 3
%".74" = load {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %"$phi14.0"
%"extracted.iter.1" = extractvalue {i64*, i64, i64, i64*} %".74", 0
%"extracted.stop.2" = extractvalue {i64*, i64, i64, i64*} %".74", 1
%"extracted.step.2" = extractvalue {i64*, i64, i64, i64*} %".74", 2
%"extracted.count.1" = extractvalue {i64*, i64, i64, i64*} %".74", 3
store {i64*, i64, i64, i64*} %".72", {i64*, i64, i64, i64*}* %"$phi14.0"
%"extracted.iter.2" = extractvalue {i64*, i64, i64, i64*} %".72", 0
%"extracted.stop.3" = extractvalue {i64*, i64, i64, i64*} %".72", 1
%"extracted.step.3" = extractvalue {i64*, i64, i64, i64*} %".72", 2
%"extracted.count.2" = extractvalue {i64*, i64, i64, i64*} %".72", 3
br label %"B14"
B14.if:
%".92" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".81", i32 0, i32 0
%".93" = load i64*, i64** %".92"
%".94" = load i64, i64* %".93"
%".95" = getelementptr inbounds {i64, i1}, {i64, i1}* %".78", i32 0, i32 0
store i64 %".94", i64* %".95"
%".97" = sub nsw i64 %".87", 1
store i64 %".97", i64* %".86"
%".99" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".81", i32 0, i32 2
%".100" = load i64, i64* %".99"
%".101" = add i64 %".94", %".100"
%".102" = getelementptr inbounds {i64*, i64, i64, i64*}, {i64*, i64, i64, i64*}* %".81", i32 0, i32 0
%".103" = load i64*, i64** %".102"
store i64 %".101", i64* %".103"
br label %"B14.endif"
B14.endif:
%".106" = load {i64, i1}, {i64, i1}* %".78"
%"extracted.first" = extractvalue {i64, i1} %".106", 0
%"extracted.second" = extractvalue {i64, i1} %".106", 1
store {i64, i1} zeroinitializer, {i64, i1}* %".107"
store {i64, i1} %".106", {i64, i1}* %".107"
%".111" = getelementptr inbounds {i64, i1}, {i64, i1}* %".107", i32 0, i32 0
%".112" = load i64, i64* %".111"
store {i64, i1} zeroinitializer, {i64, i1}* %".113"
store {i64, i1} %".106", {i64, i1}* %".113"
%".117" = getelementptr inbounds {i64, i1}, {i64, i1}* %".113", i32 0, i32 1
%".118" = load i1, i1* %".117"
%"extracted.first.1" = extractvalue {i64, i1} %".106", 0
%"extracted.second.1" = extractvalue {i64, i1} %".106", 1
%".120" = load i64, i64* %"$phi16.1"
store i64 %".112", i64* %"$phi16.1"
br i1 %".118", label %"B16", label %"B28"
B28.if:
store {i8*, i32, i8*, i8*, i32}* @".const.picklebuf.4972743424", {i8*, i32, i8*, i8*, i32}** %"excinfo", !numba_exception_output !1
%".143" = load i64, i64* %"try_state"
%".144" = icmp ugt i64 %".143", 0
%".145" = load {i8*, i32, i8*, i8*, i32}*, {i8*, i32, i8*, i8*, i32}** %"excinfo"
ret i32 1
B28.endif:
%".147" = ptrtoint i8* %".139" to i64
%".148" = add i64 %".147", 16
%".149" = inttoptr i64 %".148" to i8*
%".150" = bitcast i8* %".149" to {i8*, i8*}*
%".153" = call i8* @"PyLong_FromLongLong"(i64 %".135")
store i8* %".153", i8** %".151"
%".155" = load i8*, i8** %".151"
%".156" = icmp ne i8* null, %".155"
br i1 %".156", label %"B28.endif.if", label %"B28.endif.else", !prof !2
B28.endif.if:
%".158" = call i8* @"PyObject_Str"(i8* %".155")
%".159" = call i8* @"PyUnicode_AsUTF8"(i8* %".158")
call void (i8*, ...) @"PySys_FormatStdout"(i8* bitcast ([3 x i8]* @".const.%s" to i8*), i8* %".159")
call void @"Py_DecRef"(i8* %".158")
call void @"Py_DecRef"(i8* %".155")
br label %"B28.endif.endif"
B28.endif.else:
%".164" = call i8* @"PyUnicode_FromString"(i8* bitcast ([21 x i8]* @".const.the print() function" to i8*))
call void @"PyErr_WriteUnraisable"(i8* %".164")
call void @"Py_DecRef"(i8* %".164")
br label %"B28.endif.endif"
B28.endif.endif:
call void (i8*, ...) @"PySys_FormatStdout"(i8* bitcast ([2 x i8]* @".const.
" to i8*))
call void @"numba_gil_release"(i32* %".136")
%".170" = load i64, i64* %"sum.2"
store i64 0, i64* %"sum.2"
store i8* null, i8** %"retptr"
ret i32 0
}

@".const.pickledata.4972742784" = internal constant [76 x i8] c"\80\04\95A\00\00\00\00\00\00\00\8c\08builtins\94\8c\0aValueError\94\93\94\8c\1erange() arg 3 must not be zero\94\85\94N\87\94."
@".const.pickledata.4972742784.sha1" = internal constant [20 x i8] c"\ca\8e\fb:r\d6\14\fe\87 2\cc\e3\ac2`\07\a3\07'"
@".const.picklebuf.4972742784" = internal constant {i8*, i32, i8*, i8*, i32} {i8* bitcast ([76 x i8]* @".const.pickledata.4972742784" to i8*), i32 76, i8* bitcast ([20 x i8]* @".const.pickledata.4972742784.sha1" to i8*), i8* null, i32 0}
declare void @"numba_gil_ensure"(i32* %".1")

@".const.pickledata.4972743424" = internal constant [142 x i8] c"\80\04\95\83\00\00\00\00\00\00\00\8c\08builtins\94\8c\0cRuntimeError\94\93\94\8c^missing Environment: _ZN08NumbaEnv8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE\94\85\94N\87\94."
@".const.pickledata.4972743424.sha1" = internal constant [20 x i8] c"\b3\0d\0b\c9<^\b6\f9~\ed\13\fe\16\d7@\e6\95\a0\ce\1e"
@".const.picklebuf.4972743424" = internal constant {i8*, i32, i8*, i8*, i32} {i8* bitcast ([142 x i8]* @".const.pickledata.4972743424" to i8*), i32 142, i8* bitcast ([20 x i8]* @".const.pickledata.4972743424.sha1" to i8*), i8* null, i32 0}
declare i8* @"PyLong_FromLongLong"(i64 %".1")

declare i8* @"PyObject_Str"(i8* %".1")

declare i8* @"PyUnicode_AsUTF8"(i8* %".1")

@".const.%s" = internal constant [3 x i8] c"%s\00"
declare void @"PySys_FormatStdout"(i8* %".1", ...)

declare void @"Py_DecRef"(i8* %".1")

@".const.the print() function" = internal constant [21 x i8] c"the print() function\00"
declare i8* @"PyUnicode_FromString"(i8* %".1")

declare void @"PyErr_WriteUnraisable"(i8* %".1")

@".const.
" = internal constant [2 x i8] c"\0a\00"
declare void @"numba_gil_release"(i32* %".1")

!0 = !{ !"branch_weights", i32 1, i32 99 }
!1 = !{ i1 1 }
!2 = !{ !"branch_weights", i32 99, i32 1 }
================================================================================
45

 

2. 배열

#include <stdio.h>

int main() {
    int numbers[5] = { 31, 63, 62, 87, 14 };
    int i;
    int sum = 0;

    for (i = 0; i < 5; i++) {
    sum += numbers[i];
					    }
    printf("sum: %d\n", sum);
    return 0;
}
#!/usr/bin/env python

import numba as nb

@nb.jit(nopython=True)
def main():
    numbers = [31, 63, 62, 87, 14]
    sum = 0

    for number in numbers:
        sum += number

    print("sum:", sum)

if __name__ == "__main__":
    main()

chatGPT에게 c코드를 python코드로 변환 요청
numba를 사용하여 llvm ir로 변환하는 명령어

 

--------------------LLVM DUMP <function descriptor 'main$1'>--------------------
; ModuleID = "main$1"
target triple = "arm64-apple-darwin22.4.0"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"

@"_ZN08NumbaEnv8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE" = common global i8* null
define i32 @"_ZN8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE"(i8** noalias nocapture %"retptr", {i8*, i32, i8*, i8*, i32}** noalias nocapture %"excinfo")
{
entry:
%".9" = alloca i1
store i1 0, i1* %".9"
%".12" = alloca {i8*, i8*}
store {i8*, i8*} zeroinitializer, {i8*, i8*}* %".12"
%"try_state" = alloca i64
store i64 0, i64* %"try_state"
%"sum.2" = alloca i64
store i64 0, i64* %"sum.2"
%".171" = alloca {i8*, i8*}
store {i8*, i8*} zeroinitializer, {i8*, i8*}* %".171"
%".175" = alloca {i8*, i64*}
store {i8*, i64*} zeroinitializer, {i8*, i64*}* %".175"
%".178" = alloca i64
store i64 0, i64* %".178"
%"$phi18.0" = alloca {i8*, i64*}
store {i8*, i64*} zeroinitializer, {i8*, i64*}* %"$phi18.0"
%".198" = alloca {i64, i1}
store {i64, i1} zeroinitializer, {i64, i1}* %".198"
%".201" = alloca {i8*, i64*}
store {i8*, i64*} zeroinitializer, {i8*, i64*}* %".201"
%".233" = alloca {i64, i1}
store {i64, i1} zeroinitializer, {i64, i1}* %".233"
%".239" = alloca {i64, i1}
store {i64, i1} zeroinitializer, {i64, i1}* %".239"
%"$phi20.1" = alloca i64
store i64 0, i64* %"$phi20.1"
%".262" = alloca {i8*, i64, i32, i32, i64, i8*, i8*}
store {i8*, i64, i32, i32, i64, i8*, i8*} zeroinitializer, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262"
%".285" = alloca i32
store i32 0, i32* %".285"
%".313" = alloca i8*
store i8* null, i8** %".313"
br label %"B0"
B0:
%".4" = insertvalue {i64, i64, i64, i64, i64} undef, i64 31, 0
%".5" = insertvalue {i64, i64, i64, i64, i64} %".4", i64 63, 1
%".6" = insertvalue {i64, i64, i64, i64, i64} %".5", i64 62, 2
%".7" = insertvalue {i64, i64, i64, i64, i64} %".6", i64 87, 3
%".8" = insertvalue {i64, i64, i64, i64, i64} %".7", i64 14, 4
%"extracted.f0" = extractvalue {i64, i64, i64, i64, i64} %".8", 0
%"extracted.f1" = extractvalue {i64, i64, i64, i64, i64} %".8", 1
%"extracted.f2" = extractvalue {i64, i64, i64, i64, i64} %".8", 2
%"extracted.f3" = extractvalue {i64, i64, i64, i64, i64} %".8", 3
%"extracted.f4" = extractvalue {i64, i64, i64, i64, i64} %".8", 4
%"extracted.f0.1" = extractvalue {i64, i64, i64, i64, i64} %".8", 0
%"extracted.f1.1" = extractvalue {i64, i64, i64, i64, i64} %".8", 1
%"extracted.f2.1" = extractvalue {i64, i64, i64, i64, i64} %".8", 2
%"extracted.f3.1" = extractvalue {i64, i64, i64, i64, i64} %".8", 3
%"extracted.f4.1" = extractvalue {i64, i64, i64, i64, i64} %".8", 4
store i1 1, i1* %".9"
store {i8*, i8*} zeroinitializer, {i8*, i8*}* %".12"
%".15" = call {i64, i1} @"llvm.smul.with.overflow.i64"(i64 5, i64 8)
%".16" = extractvalue {i64, i1} %".15", 0
%".17" = extractvalue {i64, i1} %".15", 1
%".18" = call {i64, i1} @"llvm.sadd.with.overflow.i64"(i64 %".16", i64 24)
%".19" = extractvalue {i64, i1} %".18", 0
%".20" = extractvalue {i64, i1} %".18", 1
%".21" = or i1 %".17", %".20"
br i1 %".21", label %"B0.if", label %"B0.endif", !prof !0
B18:
%".197" = load {i8*, i64*}, {i8*, i64*}* %"$phi18.0"
store {i64, i1} zeroinitializer, {i64, i1}* %".198"
store {i8*, i64*} zeroinitializer, {i8*, i64*}* %".201"
store {i8*, i64*} %".197", {i8*, i64*}* %".201"
%".205" = getelementptr inbounds {i8*, i64*}, {i8*, i64*}* %".201", i32 0, i32 1
%".206" = load i64*, i64** %".205"
%".207" = load i64, i64* %".206"
%".208" = getelementptr inbounds {i8*, i64*}, {i8*, i64*}* %".201", i32 0, i32 0
%".209" = load i8*, i8** %".208"
%".210" = call i8* @"NRT_MemInfo_data_fast"(i8* %".209")
%".211" = bitcast i8* %".210" to {i64, i64, i8, i64}*
%".212" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".211", i32 0, i32 0
%".213" = load i64, i64* %".212"
%".214" = icmp slt i64 %".207", %".213"
%".215" = getelementptr inbounds {i64, i1}, {i64, i1}* %".198", i32 0, i32 1
store i1 %".214", i1* %".215"
br i1 %".214", label %"B18.if", label %"B18.endif"
B20:
%".249" = load i64, i64* %"$phi20.1"
%".250" = load i64, i64* %"$phi20.1"
store i64 0, i64* %"$phi20.1"
%".252" = load i64, i64* %"sum.2"
%".253" = add nsw i64 %".252", %".249"
%".254" = load i64, i64* %"sum.2"
store i64 %".253", i64* %"sum.2"
br label %"B18"
B32:
%".257" = load i64, i64* %"$phi20.1"
store i64 0, i64* %"$phi20.1"
%".259" = load {i8*, i64*}, {i8*, i64*}* %"$phi18.0"
%"extracted.meminfo.5" = extractvalue {i8*, i64*} %".259", 0
%"extracted.index.4" = extractvalue {i8*, i64*} %".259", 1
call void @"NRT_decref"(i8* %"extracted.meminfo.5")
store {i8*, i64*} zeroinitializer, {i8*, i64*}* %"$phi18.0"
store {i8*, i64, i32, i32, i64, i8*, i8*} zeroinitializer, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262"
%".265" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 0
store i8* bitcast ([5 x i8]* @".bytes.2085767820510582054" to i8*), i8** %".265"
%".267" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 1
%".268" = load i64, i64* %".267"
%".269" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 1
store i64 4, i64* %".269"
%".271" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 2
%".272" = load i32, i32* %".271"
%".273" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 2
store i32 1, i32* %".273"
%".275" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 3
%".276" = load i32, i32* %".275"
%".277" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 3
store i32 1, i32* %".277"
%".279" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 4
%".280" = load i64, i64* %".279"
%".281" = getelementptr inbounds {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262", i32 0, i32 4
store i64 -1, i64* %".281"
%".283" = load {i8*, i64, i32, i32, i64, i8*, i8*}, {i8*, i64, i32, i32, i64, i8*, i8*}* %".262"
%".284" = load i64, i64* %"sum.2"
call void @"numba_gil_ensure"(i32* %".285")
%".288" = load {i8*, i32, i8*, i8*, i32}, {i8*, i32, i8*, i8*, i32}* @".const.picklebuf.4367235248"
%".289" = extractvalue {i8*, i32, i8*, i8*, i32} %".288", 0
%".290" = load {i8*, i32, i8*, i8*, i32}, {i8*, i32, i8*, i8*, i32}* @".const.picklebuf.4367235248"
%".291" = extractvalue {i8*, i32, i8*, i8*, i32} %".290", 1
%".292" = load {i8*, i32, i8*, i8*, i32}, {i8*, i32, i8*, i8*, i32}* @".const.picklebuf.4367235248"
%".293" = extractvalue {i8*, i32, i8*, i8*, i32} %".292", 2
%".294" = call i8* @"numba_unpickle"(i8* %".289", i32 %".291", i8* %".293")
%".295" = call i8* @"PyObject_Str"(i8* %".294")
%".296" = call i8* @"PyUnicode_AsUTF8"(i8* %".295")
call void (i8*, ...) @"PySys_FormatStdout"(i8* bitcast ([3 x i8]* @".const.%s" to i8*), i8* %".296")
call void @"Py_DecRef"(i8* %".295")
call void @"Py_DecRef"(i8* %".294")
call void (i8*, ...) @"PySys_FormatStdout"(i8* bitcast ([2 x i8]* @".const. " to i8*))
%".301" = load i8*, i8** @"_ZN08NumbaEnv8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE"
%".302" = icmp eq i8* null, %".301"
br i1 %".302", label %"B32.if", label %"B32.endif", !prof !0
B0.if:
store i1 0, i1* %".9"
br label %"B0.endif"
B0.endif:
%".25" = load i1, i1* %".9"
br i1 %".25", label %"B0.endif.if", label %"B0.endif.endif", !prof !1
B0.endif.if:
%".27" = bitcast void (i8*)* @".dtor.list.int64" to i8*
%".28" = call i8* @"NRT_MemInfo_new_varsize_dtor"(i64 %".19", i8* %".27")
%".29" = icmp eq i8* null, %".28"
br i1 %".29", label %"B0.endif.if.if", label %"B0.endif.if.else", !prof !0
B0.endif.endif:
%".81" = load i1, i1* %".9"
%".82" = xor i1 %".81", -1
br i1 %".82", label %"B0.endif.endif.if", label %"B0.endif.endif.endif", !prof !0
B0.endif.if.if:
store i1 0, i1* %".9"
br label %"B0.endif.if.endif"
B0.endif.if.else:
%".33" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
store i8* %".28", i8** %".33"
%".35" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 1
store i8* null, i8** %".35"
%".37" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".38" = load i8*, i8** %".37"
%".39" = call i8* @"NRT_MemInfo_data_fast"(i8* %".38")
%".40" = bitcast i8* %".39" to {i64, i64, i8, i64}*
%".41" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".40", i32 0, i32 1
store i64 5, i64* %".41"
%".43" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".44" = load i8*, i8** %".43"
%".45" = call i8* @"NRT_MemInfo_data_fast"(i8* %".44")
%".46" = bitcast i8* %".45" to {i64, i64, i8, i64}*
%".47" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".46", i32 0, i32 0
store i64 0, i64* %".47"
%".49" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".50" = load i8*, i8** %".49"
%".51" = call i8* @"NRT_MemInfo_data_fast"(i8* %".50")
%".52" = bitcast i8* %".51" to {i64, i64, i8, i64}*
%".53" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".52", i32 0, i32 2
%".54" = zext i1 0 to i8
store i8 %".54", i8* %".53"
%".56" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".57" = load i8*, i8** %".56"
%".58" = call i8* @"NRT_MemInfo_data_fast"(i8* %".57")
%".59" = bitcast i8* %".58" to {i64, i64, i8, i64}*
%".60" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".59", i32 0, i32 0
%".61" = load i64, i64* %".60"
%".62" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".63" = load i8*, i8** %".62"
%".64" = call i8* @"NRT_MemInfo_data_fast"(i8* %".63")
%".65" = bitcast i8* %".64" to {i64, i64, i8, i64}*
%".66" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".65", i32 0, i32 3
%".67" = getelementptr i64, i64* %".66", i64 0
%".68" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".69" = load i8*, i8** %".68"
%".70" = call i8* @"NRT_MemInfo_data_fast"(i8* %".69")
%".71" = bitcast i8* %".70" to {i64, i64, i8, i64}*
%".72" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".71", i32 0, i32 3
%".73" = getelementptr i64, i64* %".72", i64 5
%".74" = ptrtoint i64* %".73" to i64
%".75" = ptrtoint i64* %".67" to i64
%".76" = sub i64 %".74", %".75"
%".77" = bitcast i64* %".67" to i8*
call void @"llvm.memset.p0i8.i64"(i8* %".77", i8 0, i64 %".76", i1 0)
br label %"B0.endif.if.endif"
B0.endif.if.endif:
br label %"B0.endif.endif"
B0.endif.endif.if:
store {i8*, i32, i8*, i8*, i32}* @".const.picklebuf.4827639232", {i8*, i32, i8*, i8*, i32}** %"excinfo", !numba_exception_output !2
store i64 0, i64* %"try_state"
%".87" = load i64, i64* %"try_state"
%".88" = icmp ugt i64 %".87", 0
%".89" = load {i8*, i32, i8*, i8*, i32}*, {i8*, i32, i8*, i8*, i32}** %"excinfo"
ret i32 1
B0.endif.endif.endif:
%".91" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".92" = load i8*, i8** %".91"
%".93" = call i8* @"NRT_MemInfo_data_fast"(i8* %".92")
%".94" = bitcast i8* %".93" to {i64, i64, i8, i64}*
%".95" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".94", i32 0, i32 0
store i64 5, i64* %".95"
%".97" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".98" = load i8*, i8** %".97"
%".99" = call i8* @"NRT_MemInfo_data_fast"(i8* %".98")
%".100" = bitcast i8* %".99" to {i64, i64, i8, i64}*
%".101" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".100", i32 0, i32 3
%".102" = getelementptr i64, i64* %".101", i64 0
%".103" = load i64, i64* %".102"
%".104" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".105" = load i8*, i8** %".104"
%".106" = call i8* @"NRT_MemInfo_data_fast"(i8* %".105")
%".107" = bitcast i8* %".106" to {i64, i64, i8, i64}*
%".108" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".107", i32 0, i32 3
%".109" = getelementptr i64, i64* %".108", i64 0
store i64 31, i64* %".109"
%".111" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".112" = load i8*, i8** %".111"
%".113" = call i8* @"NRT_MemInfo_data_fast"(i8* %".112")
%".114" = bitcast i8* %".113" to {i64, i64, i8, i64}*
%".115" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".114", i32 0, i32 3
%".116" = getelementptr i64, i64* %".115", i64 1
%".117" = load i64, i64* %".116"
%".118" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".119" = load i8*, i8** %".118"
%".120" = call i8* @"NRT_MemInfo_data_fast"(i8* %".119")
%".121" = bitcast i8* %".120" to {i64, i64, i8, i64}*
%".122" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".121", i32 0, i32 3
%".123" = getelementptr i64, i64* %".122", i64 1
store i64 63, i64* %".123"
%".125" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".126" = load i8*, i8** %".125"
%".127" = call i8* @"NRT_MemInfo_data_fast"(i8* %".126")
%".128" = bitcast i8* %".127" to {i64, i64, i8, i64}*
%".129" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".128", i32 0, i32 3
%".130" = getelementptr i64, i64* %".129", i64 2
%".131" = load i64, i64* %".130"
%".132" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".133" = load i8*, i8** %".132"
%".134" = call i8* @"NRT_MemInfo_data_fast"(i8* %".133")
%".135" = bitcast i8* %".134" to {i64, i64, i8, i64}*
%".136" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".135", i32 0, i32 3
%".137" = getelementptr i64, i64* %".136", i64 2
store i64 62, i64* %".137"
%".139" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".140" = load i8*, i8** %".139"
%".141" = call i8* @"NRT_MemInfo_data_fast"(i8* %".140")
%".142" = bitcast i8* %".141" to {i64, i64, i8, i64}*
%".143" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".142", i32 0, i32 3
%".144" = getelementptr i64, i64* %".143", i64 3
%".145" = load i64, i64* %".144"
%".146" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".147" = load i8*, i8** %".146"
%".148" = call i8* @"NRT_MemInfo_data_fast"(i8* %".147")
%".149" = bitcast i8* %".148" to {i64, i64, i8, i64}*
%".150" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".149", i32 0, i32 3
%".151" = getelementptr i64, i64* %".150", i64 3
store i64 87, i64* %".151"
%".153" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".154" = load i8*, i8** %".153"
%".155" = call i8* @"NRT_MemInfo_data_fast"(i8* %".154")
%".156" = bitcast i8* %".155" to {i64, i64, i8, i64}*
%".157" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".156", i32 0, i32 3
%".158" = getelementptr i64, i64* %".157", i64 4
%".159" = load i64, i64* %".158"
%".160" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".12", i32 0, i32 0
%".161" = load i8*, i8** %".160"
%".162" = call i8* @"NRT_MemInfo_data_fast"(i8* %".161")
%".163" = bitcast i8* %".162" to {i64, i64, i8, i64}*
%".164" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".163", i32 0, i32 3
%".165" = getelementptr i64, i64* %".164", i64 4
store i64 14, i64* %".165"
%".167" = load {i8*, i8*}, {i8*, i8*}* %".12"
%".169" = load i64, i64* %"sum.2"
store i64 0, i64* %"sum.2"
store {i8*, i8*} zeroinitializer, {i8*, i8*}* %".171"
store {i8*, i8*} %".167", {i8*, i8*}* %".171"
store {i8*, i64*} zeroinitializer, {i8*, i64*}* %".175"
store i64 0, i64* %".178"
%".181" = getelementptr inbounds {i8*, i64*}, {i8*, i64*}* %".175", i32 0, i32 1
store i64* %".178", i64** %".181"
%".183" = getelementptr inbounds {i8*, i8*}, {i8*, i8*}* %".171", i32 0, i32 0
%".184" = load i8*, i8** %".183"
%".185" = getelementptr inbounds {i8*, i64*}, {i8*, i64*}* %".175", i32 0, i32 0
store i8* %".184", i8** %".185"
%".187" = load {i8*, i64*}, {i8*, i64*}* %".175"
%"extracted.meminfo" = extractvalue {i8*, i64*} %".187", 0
%"extracted.index" = extractvalue {i8*, i64*} %".187", 1
call void @"NRT_incref"(i8* %"extracted.meminfo")
%"extracted.meminfo.1" = extractvalue {i8*, i8*} %".167", 0
%"extracted.parent" = extractvalue {i8*, i8*} %".167", 1
call void @"NRT_decref"(i8* %"extracted.meminfo.1")
%"extracted.meminfo.2" = extractvalue {i8*, i64*} %".187", 0
%"extracted.index.1" = extractvalue {i8*, i64*} %".187", 1
call void @"NRT_incref"(i8* %"extracted.meminfo.2")
%".192" = load {i8*, i64*}, {i8*, i64*}* %"$phi18.0"
%"extracted.meminfo.3" = extractvalue {i8*, i64*} %".192", 0
%"extracted.index.2" = extractvalue {i8*, i64*} %".192", 1
call void @"NRT_decref"(i8* %"extracted.meminfo.3")
store {i8*, i64*} %".187", {i8*, i64*}* %"$phi18.0"
%"extracted.meminfo.4" = extractvalue {i8*, i64*} %".187", 0
%"extracted.index.3" = extractvalue {i8*, i64*} %".187", 1
call void @"NRT_decref"(i8* %"extracted.meminfo.4")
br label %"B18"
B18.if:
%".218" = getelementptr inbounds {i8*, i64*}, {i8*, i64*}* %".201", i32 0, i32 0
%".219" = load i8*, i8** %".218"
%".220" = call i8* @"NRT_MemInfo_data_fast"(i8* %".219")
%".221" = bitcast i8* %".220" to {i64, i64, i8, i64}*
%".222" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".221", i32 0, i32 3
%".223" = getelementptr i64, i64* %".222", i64 %".207"
%".224" = load i64, i64* %".223"
%".225" = getelementptr inbounds {i64, i1}, {i64, i1}* %".198", i32 0, i32 0
store i64 %".224", i64* %".225"
%".227" = add i64 %".207", 1
%".228" = getelementptr inbounds {i8*, i64*}, {i8*, i64*}* %".201", i32 0, i32 1
%".229" = load i64*, i64** %".228"
store i64 %".227", i64* %".229"
br label %"B18.endif"
B18.endif:
%".232" = load {i64, i1}, {i64, i1}* %".198"
%"extracted.first" = extractvalue {i64, i1} %".232", 0
%"extracted.second" = extractvalue {i64, i1} %".232", 1
store {i64, i1} zeroinitializer, {i64, i1}* %".233"
store {i64, i1} %".232", {i64, i1}* %".233"
%".237" = getelementptr inbounds {i64, i1}, {i64, i1}* %".233", i32 0, i32 0
%".238" = load i64, i64* %".237"
store {i64, i1} zeroinitializer, {i64, i1}* %".239"
store {i64, i1} %".232", {i64, i1}* %".239"
%".243" = getelementptr inbounds {i64, i1}, {i64, i1}* %".239", i32 0, i32 1
%".244" = load i1, i1* %".243"
%"extracted.first.1" = extractvalue {i64, i1} %".232", 0
%"extracted.second.1" = extractvalue {i64, i1} %".232", 1
%".246" = load i64, i64* %"$phi20.1"
store i64 %".238", i64* %"$phi20.1"
br i1 %".244", label %"B20", label %"B32"
B32.if:
store {i8*, i32, i8*, i8*, i32}* @".const.picklebuf.4829221440", {i8*, i32, i8*, i8*, i32}** %"excinfo", !numba_exception_output !2
%".305" = load i64, i64* %"try_state"
%".306" = icmp ugt i64 %".305", 0
%".307" = load {i8*, i32, i8*, i8*, i32}*, {i8*, i32, i8*, i8*, i32}** %"excinfo"
ret i32 1
B32.endif:
%".309" = ptrtoint i8* %".301" to i64
%".310" = add i64 %".309", 16
%".311" = inttoptr i64 %".310" to i8*
%".312" = bitcast i8* %".311" to {i8*, i8*}*
%".315" = call i8* @"PyLong_FromLongLong"(i64 %".284")
store i8* %".315", i8** %".313"
%".317" = load i8*, i8** %".313"
%".318" = icmp ne i8* null, %".317"
br i1 %".318", label %"B32.endif.if", label %"B32.endif.else", !prof !1
B32.endif.if:
%".320" = call i8* @"PyObject_Str"(i8* %".317")
%".321" = call i8* @"PyUnicode_AsUTF8"(i8* %".320")
call void (i8*, ...) @"PySys_FormatStdout"(i8* bitcast ([3 x i8]* @".const.%s" to i8*), i8* %".321")
call void @"Py_DecRef"(i8* %".320")
call void @"Py_DecRef"(i8* %".317")
br label %"B32.endif.endif"
B32.endif.else:
%".326" = call i8* @"PyUnicode_FromString"(i8* bitcast ([21 x i8]* @".const.the print() function" to i8*))
call void @"PyErr_WriteUnraisable"(i8* %".326")
call void @"Py_DecRef"(i8* %".326")
br label %"B32.endif.endif"
B32.endif.endif:
call void (i8*, ...) @"PySys_FormatStdout"(i8* bitcast ([2 x i8]* @".const.
" to i8*))
call void @"numba_gil_release"(i32* %".285")
%".332" = load i64, i64* %"sum.2"
store i64 0, i64* %"sum.2"
store i8* null, i8** %"retptr"
ret i32 0
}

declare {i64, i1} @"llvm.smul.with.overflow.i64"(i64 %".1", i64 %".2")

declare {i64, i1} @"llvm.sadd.with.overflow.i64"(i64 %".1", i64 %".2")

define linkonce_odr void @".dtor.list.int64"(i8* %".1")
{
.3:
%".4" = bitcast i8* %".1" to {i64, i64, i8, i64}*
%".5" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".4", i32 0, i32 0
%".6" = load i64, i64* %".5"
%".7" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".4", i32 0, i32 0
%".8" = load i64, i64* %".7"
br label %"for.cond"
for.cond:
%"loop.index" = phi i64 [0, %".3"], [%".15", %"for.body"]
%"loop.count" = phi i64 [0, %".3"], [%".16", %"for.body"]
%".10" = icmp slt i64 %"loop.index", %".8"
br i1 %".10", label %"for.body", label %"for.end"
for.body:
%".12" = getelementptr inbounds {i64, i64, i8, i64}, {i64, i64, i8, i64}* %".4", i32 0, i32 3
%".13" = getelementptr i64, i64* %".12", i64 %"loop.index"
%".14" = load i64, i64* %".13"
%".15" = add i64 %"loop.index", 1
%".16" = add nsw i64 %"loop.count", 1
br label %"for.cond"
for.end:
ret void
}

declare i8* @"NRT_MemInfo_new_varsize_dtor"(i64 %".1", i8* %".2")

declare i8* @"NRT_MemInfo_data_fast"(i8* %".1")

declare void @"llvm.memset.p0i8.i64"(i8* %".1", i8 %".2", i64 %".3", i1 %".4")

@".const.pickledata.4827639232" = internal constant [67 x i8] c"\80\04\958\00\00\00\00\00\00\00\8c\08builtins\94\8c\0bMemoryError\94\93\94\8c\14cannot allocate list\94\85\94N\87\94."
@".const.pickledata.4827639232.sha1" = internal constant [20 x i8] c"+\98\f4\13f\88\dd\d3\c0)\127\06\86\f1\a0\011(\0c"
@".const.picklebuf.4827639232" = internal constant {i8*, i32, i8*, i8*, i32} {i8* bitcast ([67 x i8]* @".const.pickledata.4827639232" to i8*), i32 67, i8* bitcast ([20 x i8]* @".const.pickledata.4827639232.sha1" to i8*), i8* null, i32 0}
declare void @"NRT_incref"(i8* noalias nocapture %".1")

declare void @"NRT_decref"(i8* noalias nocapture %".1")

@".bytes.2085767820510582054" = internal constant [5 x i8] c"sum:\00"
declare void @"numba_gil_ensure"(i32* %".1")

@".const.pickledata.4367235248" = internal constant [19 x i8] c"\80\04\95\08\00\00\00\00\00\00\00\8c\04sum:\94."
@".const.pickledata.4367235248.sha1" = internal constant [20 x i8] c"6\f9wt\b3]\b1l<\1c29\9e13\85\80x\fc\d4"
@".const.picklebuf.4367235248" = internal constant {i8*, i32, i8*, i8*, i32} {i8* bitcast ([19 x i8]* @".const.pickledata.4367235248" to i8*), i32 19, i8* bitcast ([20 x i8]* @".const.pickledata.4367235248.sha1" to i8*), i8* null, i32 0}
declare i8* @"numba_unpickle"(i8* %".1", i32 %".2", i8* %".3")

declare i8* @"PyObject_Str"(i8* %".1")

declare i8* @"PyUnicode_AsUTF8"(i8* %".1")

@".const.%s" = internal constant [3 x i8] c"%s\00"
declare void @"PySys_FormatStdout"(i8* %".1", ...)

declare void @"Py_DecRef"(i8* %".1")

@".const. " = internal constant [2 x i8] c" \00"
@".const.pickledata.4829221440" = internal constant [142 x i8] c"\80\04\95\83\00\00\00\00\00\00\00\8c\08builtins\94\8c\0cRuntimeError\94\93\94\8c^missing Environment: _ZN08NumbaEnv8__main__4mainB2v1B38c8tJTIcFKzyF2ILShI4CrgQElQb6HczSBAA_3dE\94\85\94N\87\94."
@".const.pickledata.4829221440.sha1" = internal constant [20 x i8] c"\b3\0d\0b\c9<^\b6\f9~\ed\13\fe\16\d7@\e6\95\a0\ce\1e"
@".const.picklebuf.4829221440" = internal constant {i8*, i32, i8*, i8*, i32} {i8* bitcast ([142 x i8]* @".const.pickledata.4829221440" to i8*), i32 142, i8* bitcast ([20 x i8]* @".const.pickledata.4829221440.sha1" to i8*), i8* null, i32 0}
declare i8* @"PyLong_FromLongLong"(i64 %".1")

@".const.the print() function" = internal constant [21 x i8] c"the print() function\00"
declare i8* @"PyUnicode_FromString"(i8* %".1")

declare void @"PyErr_WriteUnraisable"(i8* %".1")

@".const.
" = internal constant [2 x i8] c"\0a\00"
declare void @"numba_gil_release"(i32* %".1")

!0 = !{ !"branch_weights", i32 1, i32 99 }
!1 = !{ !"branch_weights", i32 99, i32 1 }
!2 = !{ i1 1 }
================================================================================
sum: 257

'CNUproject > 코드 동일성 검사 도구' 카테고리의 다른 글

13_LLVM IR 최적화하기  (0) 2023.08.11
12_LLVM IR : python_array  (0) 2023.07.28
10_Python to C  (0) 2023.07.14
9_ChatGPT API 사용해보기 (Python)  (0) 2023.07.06
8_창의 축전 대회 후기  (0) 2023.07.06