diff --git a/front/callgrind-front/callgrind-front/README.md b/front/callgrind-front/callgrind-front/README.md new file mode 100644 index 0000000..94fc8c9 --- /dev/null +++ b/front/callgrind-front/callgrind-front/README.md @@ -0,0 +1,7 @@ +### Frontend for getting data from callgrind profiles. + +Responsible persons: + +Arman Yeghiazaryan, DCAM MIPT student: implementation + +Nikolay Efanov, supervisor: review and advices on methodology diff --git a/front/callgrind-front/callgrind-front/callgrind-front.sh b/front/callgrind-front/callgrind-front/callgrind-front.sh new file mode 100644 index 0000000..1b3eb5f --- /dev/null +++ b/front/callgrind-front/callgrind-front/callgrind-front.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# usual pipeline example for gprof: +# gprof ./main | gprof2dot -s | dot -Tpng -o output.png +# this script usage example: +# ./callgrind-front.sh tests/callgrind.out.2322 result.dot +# produces result.dot and result.dot.png in current working directory + +# whole pipeline: ./callgrind-front.sh +pwd +#produces dotfile +python3 ../../third-party/gprof2dot/gprof2dot.py ${1} --format=callgrind -c print -o ${2} +#parse dotfile and compose input for core algorithm (${3} is the path to your grammar file) +python3 graph_utils/dotparse.py ${2} ${4} +cat ${3} ${4} > ${5} +#run core +../../core/build/core < ${5} +#produces image file +dot ${2} -Tpng -o ${2}.png diff --git a/front/callgrind-front/callgrind-front/graph_utils/dotparse.py b/front/callgrind-front/callgrind-front/graph_utils/dotparse.py new file mode 100644 index 0000000..0af3d98 --- /dev/null +++ b/front/callgrind-front/callgrind-front/graph_utils/dotparse.py @@ -0,0 +1,79 @@ +import pydot +import sys + +#fmt: + + +def labels_encode(edges, labels=[]): # this is a hash-function for edge labeling, rewrite it as you need + d = dict() + for idx,l in enumerate(edges): + if l.__get_attribute__('label') in labels: + d[l.__get_attribute__('label')] = chr(ord('a')+idx)#l.get_source() + l.get_destination() + + return d + + +def node_names_encode(labels=[]): + d = dict() + for idx,l in enumerate(labels): + d[l] = idx + + return d + + +def verbose_print_edge(idx, e,lmap): + print("edge #", idx) + print("from: ", e.get_source()) + print("to: ", e.get_destination()) + print("old label: ", e.__get_attribute__('label')) + print("set label: ", lmap[e.__get_attribute__('label')] if e.__get_attribute__('label') in lmap.keys() else "") + return + + +def dotparse(inp, outp=None, labels=None, verbose=True, nodes_remap=True, edges_remap=True): + graph = pydot.graph_from_dot_file(inp) + node_list = graph[0].get_node_list() + if not labels: + labels = [el.__get_attribute__('label') for el in graph[0].get_edges()] + node_labels_map = node_names_encode([nl.get_name() for nl in node_list]) + lmap = labels_encode(graph[0].get_edges(), labels) + + if outp: + f = open(outp, "w") + nodes_amount = len(node_list) + edges_amount = len(graph[0].get_edges()) + f.write(str(nodes_amount)+" "+str(edges_amount)+"\n") + for idx, e in enumerate(graph[0].get_edges()): + attr_orig = e.__get_attribute__('label') # NB: you also can populate labels with this info! + if verbose: + verbose_print_edge(idx, e, lmap) + # Triple of sets <$src$ \in $V$, $dst$ \in $E$, $current_label$ \in $L$> is all we need + src = e.get_source() + dst = e.get_destination() + current_label = lmap[attr_orig] if attr_orig in labels else "n" # "" means "not interested in this label" + if outp: + f.write(str(node_labels_map[src]) + " " + str(node_labels_map[dst]) + " " + current_label+"\n") + if outp: + f.close() + f=open(outp+".labels_remap","w") + f.write(str(edges_amount)+"\n") + for k,v in lmap.items(): + f.write(k+" "+str(v)+"\n") + f.write(str(nodes_amount) + "\n") + for k,v in node_labels_map.items(): + f.write(k+" "+str(v)+"\n") + + return + + +if __name__ == "__main__": + if sys.argv[1] == 'test' or len(sys.argv) < 2: + dotparse("/Users/nefanov/PycharmProjects/pathfinder/front/callgrind-front/tests/callgrind.out.2322.dot", + labels=[], + verbose=False, + outp="labeled_edges_list.txt") + else: + dotparse(sys.argv[1], + verbose=False, + outp=sys.argv[2]) + diff --git a/front/callgrind-front/callgrind-front/run.sh b/front/callgrind-front/callgrind-front/run.sh new file mode 100644 index 0000000..86ae002 --- /dev/null +++ b/front/callgrind-front/callgrind-front/run.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +#test run example: 0 1 2 3 4 5 +# whole pipeline: ./callgrind-front.sh + +./callgrind-front.sh tests/callgrind.out.1972 res.list tests/test.grammar res.inp core.inp \ No newline at end of file diff --git a/front/callgrind-front/callgrind-front/tests/callgrind.out.1972 b/front/callgrind-front/callgrind-front/tests/callgrind.out.1972 new file mode 100644 index 0000000..00215f8 --- /dev/null +++ b/front/callgrind-front/callgrind-front/tests/callgrind.out.1972 @@ -0,0 +1,5769 @@ +# callgrind format +version: 1 +creator: callgrind-3.13.0 +pid: 1972 +cmd: ./a.out +part: 1 + + +desc: I1 cache: +desc: D1 cache: +desc: LL cache: + +desc: Timerange: Basic block 0 - 1077250 +desc: Trigger: Program termination + +positions: line +events: Ir +summary: 10611254 + + +ob=(3) /lib/x86_64-linux-gnu/libc-2.27.so +fl=(88) /build/glibc-S9d2JN/glibc-2.27/misc/init-misc.c +fn=(320) __init_misc +31 2 +-1 3 ++1 4 ++2 3 +cfi=(89) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strrchr-avx2.S +cfn=(324) __strrchr_avx2 +calls=1 +10 +* 27 +* 1 ++4 5 ++1 3 ++2 4 + +fl=(95) /build/glibc-S9d2JN/glibc-2.27/csu/../csu/libc-start.c +fn=(342) (below main) +137 8 ++4 1 +-4 2 ++4 2 ++98 1 +-98 1 ++98 1 ++1 4 +cfi=(96) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_atexit.c +cfn=(344) __cxa_atexit +calls=1 65 +* 65 ++22 4 ++3 2 ++1 5 +cob=(5) /home/osboxes/a.out +cfi=(94) ??? +cfn=(348) __libc_csu_init +calls=1 0 +* 57 ++4 4 ++15 2 ++12 2 +cfi=(97) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/bsd-_setjmp.S +cfn=(360) _setjmp +calls=1 30 +* 29 ++1 2 ++5 2 ++1 2 ++3 2 ++3 6 +cob=(5) +cfi=(100) /home/osboxes/1.c +cfn=(366) main +calls=1 1 +* 10492945 ++34 2 +cfi=(101) /build/glibc-S9d2JN/glibc-2.27/stdlib/exit.c +cfn=(368) exit +calls=1 139 +* 1054 + +fl=(91) /build/glibc-S9d2JN/glibc-2.27/libio/vtables.c +fn=(328) check_stdfiles_vtables +84 4 ++1 3 ++1 3 ++2 1 + +fl=(66) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/ifunc-avx2.h +fn=(268) wcslen +32 1 +-2 1 ++2 2 +-2 3 +fi=(109) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcslen.c +-1 1 +fe=(66) + +fn=(234) wcschr +32 2 +-2 2 ++2 4 +-2 6 +fi=(110) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcschr.c ++1 2 +fe=(66) + +fn=(220) wmemchr +32 2 +-2 2 ++2 4 +-2 6 +fi=(111) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wmemchr.c ++1 2 +fe=(66) + +fl=(69) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncmp.c +fn=(228) strncmp +38 4 ++1 3 ++9 1 + +fl=(106) /build/glibc-S9d2JN/glibc-2.27/libio/genops.c +fn=(418) _IO_flush_all_lockp +749 11 ++5 4 ++1 11 ++3 1 +-8 1 ++5 1 ++3 1 +-3 1 ++3 1 +fi=(107) /build/glibc-S9d2JN/glibc-2.27/libio/libioP.h +870 2 +fe=(106) +762 1 +fi=(107) +870 2 +fe=(106) +-98 6 +-14 3 ++16 3 +-16 6 ++3 3 +-1 3 ++1 3 ++3 22 ++14 9 ++1 3 ++4 12 +-29 4 + +fn=(416) _IO_cleanup +926 2 ++3 1 +-3 8 ++3 1 +cfn=(418) +calls=1 749 +* 114 +-80 1 ++80 1 +-80 2 ++1 11 ++3 1 +-3 1 ++3 1 +-3 1 ++3 1 +fi=(107) ++17 5 +fe=(106) ++31 3 +-48 9 ++9 9 ++2 6 ++30 1 ++11 9 ++1 2 ++35 12 +-92 4 + +fl=(72) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-sse4_2.h +fn=(270) strspn +30 5 +fi=(112) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strspn.c +-1 1 +fe=(72) + +fn=(238) strcspn +30 5 +fi=(113) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcspn.c +-1 1 +fe=(72) + +fn=(254) strpbrk +30 5 +fi=(114) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strpbrk.c +-1 1 +fe=(72) + +fl=(96) +fn=(344) +65 7 +-26 2 ++26 1 +-26 5 ++1 2 +cfn=(346) __new_exitfn +calls=1 +44 +* 29 ++2 2 ++7 2 ++3 1 +-1 1 ++2 1 ++1 1 ++1 4 ++1 1 ++11 6 + +fn=(346) +84 2 +-6 2 ++1 2 +-1 1 ++11 5 ++2 3 +-2 1 ++10 2 +-10 2 ++45 1 ++1 1 ++4 4 +-19 1 ++1 2 + +fl=(70) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcmp.c +fn=(230) strcmp +38 4 ++9 1 + +fl=(59) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-strcasecmp.h +fn=(282) strncasecmp_l +32 5 +fi=(81) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncase_l.c +-1 1 +fe=(59) + +fn=(262) strcasecmp_l +32 5 +fi=(78) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcasecmp_l.c +-1 1 +fe=(59) + +fn=(202) strcasecmp +32 5 +fi=(60) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcasecmp.c +-1 1 +fe=(59) + +fn=(240) strncasecmp +32 5 +fi=(73) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncase.c +-1 1 +fe=(59) + +fl=(102) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_thread_atexit_impl.c +fn=(372) __call_tls_dtors +145 3 ++1 4 ++18 4 + +fl=(77) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strchr.c +fn=(256) index +40 2 +-2 1 ++2 2 +-2 2 ++11 1 + +fl=(108) /build/glibc-S9d2JN/glibc-2.27/posix/../sysdeps/unix/sysv/linux/_exit.c +fn=(424) _Exit +27 2 ++4 1 ++2 2 + +fl=(105) /build/glibc-S9d2JN/glibc-2.27/nptl/unregister-atfork.c +fn=(386) __unregister_atfork +28 8 ++8 2 +-8 6 ++11 4 ++82 12 + +fl=(76) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/ifunc-wmemset.h +fn=(252) wmemset +32 4 +-2 2 ++2 4 +-2 4 ++5 2 +-1 8 +fi=(115) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wmemset.c +-3 2 +fe=(76) + +fl=(92) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86/cacheinfo.c +fn=(330) init_cacheinfo +488 7 ++14 6 +758 2 ++2 1 ++1 1 ++2 1 +-3 1 ++5 1 +-5 1 ++4 3 ++4 2 ++3 2 ++2 1 ++1 1 ++2 1 +-3 1 ++5 1 +-5 1 ++4 3 ++9 1 ++2 8 +-2 1 ++3 8 +500 1 ++4 1 +-4 1 ++4 1 +cfn=(332) handle_intel.constprop.1 +calls=1 259 +* 469 ++2 1 +-2 1 ++2 1 +cfn=(332) +calls=1 259 +* 515 ++5 1 +-5 1 ++5 1 +cfn=(332) +calls=1 259 +* 542 ++8 1 +-8 1 ++8 1 ++11 1 +-20 1 ++25 3 ++4 2 ++8 6 ++3 2 ++9 6 ++14 2 ++4 1 ++3 1 ++1 1 +-4 1 ++3 1 +-3 1 ++3 1 ++6 8 +-39 3 ++3 9 ++6 6 +-6 3 ++6 2 ++3 20 ++5 2 ++4 1 ++1 1 +-1 3 +691 4 ++1 5 ++4 2 ++59 2 +592 2 ++8 1 ++2 1 +-2 6 ++2 4 +-2 1 ++4 1 ++23 2 +-25 2 ++2 6 ++2 6 ++3 2 ++1 8 ++2 4 ++3 2 ++5 1 ++2 2 ++1 1 +-1 1 ++2 1 +-2 1 ++1 2 ++27 2 ++1 1 ++1 2 ++2 1 +-1 1 ++1 1 +-24 3 ++4 2 ++3 1 ++2 4 ++1 1 ++5 2 + +fn=(334) intel_check_word.isra.0 +132 12 ++6 6 +-10 18 ++10 6 +-10 6 ++10 6 +-10 6 ++10 12 +-10 6 ++10 6 ++2 6 +-2 6 ++2 18 +250 12 +140 24 ++2 15 ++2 30 ++8 30 ++51 24 ++22 12 +fi=(93) /build/glibc-S9d2JN/glibc-2.27/string/../bits/stdlib-bsearch.h +28 12 +-1 24 ++4 24 ++1 12 +fe=(92) ++87 24 +fi=(93) +-88 138 ++1 69 +fe=(92) ++87 138 ++3 81 +fi=(93) +-93 252 ++8 15 +-8 36 +fe=(92) +134 3 +255 36 +-91 9 ++3 9 +-6 13 ++3 4 ++9 4 ++5 14 ++1 10 ++17 5 +-32 15 ++3 15 ++4 14 ++2 28 ++2 14 ++2 8 ++4 3 ++2 6 ++2 3 ++2 3 +-2 3 ++2 6 +-2 3 ++3 9 +-2 12 ++2 6 +-24 2 ++7 2 ++2 4 + +fn=(332) +259 21 ++2 3 +-2 9 ++5 9 ++8 3 ++1 3 +-3 3 ++5 12 ++6 6 ++5 3 +-5 9 ++5 3 ++2 3 ++1 3 +-1 3 ++5 18 +cfn=(334) +calls=3 132 +* 1035 ++2 6 ++3 21 +cfn=(334) +calls=3 132 +* 314 ++2 6 ++19 33 + +fl=(99) /build/glibc-S9d2JN/glibc-2.27/setjmp/sigjmp.c +fn=(364) __sigjmp_save +29 1 +-1 2 ++1 2 ++5 3 + +fl=(85) /build/glibc-S9d2JN/glibc-2.27/csu/../csu/init-first.c +fn=(314) _init +52 8 ++3 3 ++14 1 +fi=(86) /build/glibc-S9d2JN/glibc-2.27/csu/../sysdeps/generic/dl-hash.h +-25 1 +fe=(85) ++23 1 ++1 1 +fi=(86) +-23 1 +fe=(85) ++24 1 +fi=(87) /build/glibc-S9d2JN/glibc-2.27/csu/../sysdeps/unix/sysv/linux/x86_64/init-first.c +-33 4 +fi=(86) ++7 1 ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fi=(87) +-31 2 ++2 2 +-2 1 ++2 2 +cfi=(65) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-vdso.c +cfn=(216) _dl_vdso_vsym +calls=1 -13 +* 17 ++2 1 ++4 1 +-4 1 ++4 1 +-4 1 ++1 2 ++1 1 ++2 1 +cfi=(65) +cfn=(216) +calls=1 -19 +* 17 +fe=(85) ++37 3 +fi=(87) +-36 2 ++1 1 +fe=(85) ++35 1 +cfi=(88) +cfn=(320) +calls=1 -50 +* 52 ++3 1 +cfi=(90) /build/glibc-S9d2JN/glibc-2.27/ctype/ctype-info.c +cfn=(326) __ctype_init +calls=1 -53 +* 16 ++5 6 +-27 1 +-7 1 ++7 4 + +fl=(101) +fn=(370) __run_exit_handlers +40 9 ++5 1 +-5 1 ++5 2 ++11 14 ++3 2 ++2 5 ++16 2 ++35 6 ++2 2 +-44 6 ++2 1 ++1 1 +-1 1 ++4 4 ++1 6 ++29 1 +-3 1 ++5 1 +-2 2 ++2 2 +cob=(1) /lib/x86_64-linux-gnu/ld-2.27.so +cfi=(103) /build/glibc-S9d2JN/glibc-2.27/elf/dl-fini.c +cfn=(374) _dl_fini +calls=1 -78 +* 722 ++1 1 ++11 1 ++1 1 +-1 1 ++1 1 ++5 4 +-73 1 ++12 1 ++1 4 ++63 2 ++1 11 +cfi=(106) +cfn=(416) +calls=1 926 +* 206 +* 3 ++2 2 +cfi=(108) +cfn=(424) +calls=1 27 +* 5 +-86 1 +cfi=(102) +cfn=(372) +calls=1 +99 +* 11 +* 1 + +fn=(368) +139 1 +-1 1 ++1 3 +cfn=(370) +calls=1 -99 +* 1049 + +fl=(97) +fn=(360) +30 1 ++2 1 +cfi=(98) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/setjmp.S +cfn=(362) __sigsetjmp +calls=1 -6 +* 27 + +fl=(98) +fn=(362) +26 1 ++9 1 ++1 2 ++1 1 ++4 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++2 1 ++1 1 ++1 1 ++2 2 ++2 1 ++8 1 +cfi=(99) +cfn=(364) +calls=1 -34 +* 8 + +fl=(56) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memmove.h +fn=(196) memmove +44 10 ++4 4 +-1 4 ++12 4 ++2 10 + +fn=(222) mempcpy +44 5 ++4 2 +-1 2 ++12 2 ++2 5 + +fn=(248) memcpy@@GLIBC_2.14 +44 5 ++4 2 +-1 2 ++12 2 ++2 5 + +fl=(75) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcsnlen.c +fn=(250) wcsnlen +40 1 +-2 1 ++2 2 +-2 2 ++11 1 + +fl=(82) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/unix/sysv/linux/x86/gettimeofday.c +fn=(286) gettimeofday +42 2 +fi=(64) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/generic/dl-hash.h ++2 1 ++1 1 +fe=(82) +-3 3 +fi=(64) ++1 1 ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fe=(82) +-25 6 +cfi=(65) +cfn=(216) +calls=1 -17 +* 17 +* 5 + +fl=(62) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-avx2.h +fn=(236) strnlen +32 2 +-2 2 ++2 4 +-2 6 +fi=(116) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strnlen.c ++1 2 +fe=(62) + +fn=(260) memrchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(117) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memrchr.c +-1 1 +fe=(62) + +fn=(258) strlen +32 1 +-2 1 ++2 2 +-2 3 +fi=(118) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strlen.c +-1 1 +fe=(62) + +fn=(280) strchrnul +32 1 +-2 1 ++2 2 +-2 3 +fi=(119) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strchrnul.c ++1 1 +fe=(62) + +fn=(210) rindex +32 1 +-2 1 ++2 2 +-2 3 +fi=(120) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strrchr.c +-2 1 +fe=(62) + +fn=(266) memchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(121) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memchr.c +-1 1 +fe=(62) + +fn=(218) rawmemchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(122) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/rawmemchr.c ++1 1 +fe=(62) + +fl=(104) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_finalize.c +fn=(384) __cxa_finalize +30 4 ++3 2 +-3 10 ++3 2 +-3 2 ++3 10 ++3 6 ++4 14 +-4 6 ++58 10 ++4 12 +-4 6 ++12 4 ++1 4 +cfi=(105) +cfn=(386) +calls=2 -79 +* 32 ++2 8 ++1 16 + +fl=(71) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memset.h +fn=(232) memset +42 5 ++4 2 +-1 4 ++12 2 ++2 5 + +fl=(65) +fn=(216) +25 20 ++1 8 ++4 8 ++18 24 +-21 4 ++20 4 + +fl=(89) +fn=(324) +43 1 ++1 1 ++2 1 ++1 1 ++3 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++12 1 ++1 1 +216 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 + +fl=(57) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-unaligned-ssse3.h +fn=(272) stpncpy +33 4 +fi=(79) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/stpncpy.c +-2 1 +fe=(57) + +fn=(276) stpcpy +33 4 +fi=(80) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/stpcpy.c +* 1 +fe=(57) + +fn=(244) strcpy +33 4 +fi=(74) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcpy.c +-4 1 +fe=(57) + +fn=(198) strncpy +33 4 +fi=(58) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncpy.c +-4 1 +fe=(57) + +fn=(206) strcat +33 4 +fi=(61) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcat.c +-4 1 +fe=(57) + +fl=(63) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/unix/sysv/linux/x86/time.c +fn=(212) time +43 2 +fi=(64) ++1 1 ++1 1 +fe=(63) +-2 4 +fi=(64) ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fe=(63) +-24 6 +cfi=(65) +cfn=(216) +calls=1 -18 +* 17 +* 5 + +fl=(67) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memcmp.h +fn=(224) bcmp +33 5 +-1 2 ++2 2 ++1 3 +fi=(68) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memcmp.c +-6 1 +fe=(67) + +fl=(90) +fn=(326) +31 5 ++2 1 ++2 1 +-4 1 ++4 1 +-4 1 ++2 3 ++2 2 ++1 1 + +ob=(5) +fl=(94) +fn=(354) 0x0000000000000660 +0 17 + +fn=(340) _start +0 11 +cob=(3) +cfi=(95) +cfn=(342) +calls=1 137 +0 10494205 + +fn=(348) +0 15 +cob=(2) ??? +cfi=(18) ??? +cfn=(350) 0x0000000000108510 +calls=1 0 +0 6 +0 8 +cfn=(354) +calls=1 0 +0 17 +0 11 + +fn=(390) 0x0000000000000590 +0 8 + +fn=(376) 0x0000000000000620 +0 8 +cob=(2) +cfi=(18) +cfn=(382) 0x0000000000108550 +calls=1 0 +0 75 +0 1 +cfn=(390) +calls=1 0 +0 8 +0 3 + +fl=(100) +fn=(366) +1 6 ++1 1 ++2 2 ++1 2048 ++1 7340032 +-1 3147776 +-1 3074 ++3 1 ++1 5 + +ob=(2) +fl=(18) +fn=(88) 0x0000000004000f00 +0 3 +cob=(1) +cfi=(19) /build/glibc-S9d2JN/glibc-2.27/elf/dl-minimal.c +cfn=(90) free +calls=3 111 +0 12 + +fn=(404) 0x0000000004a2c560 +0 1 +cob=(3) +cfi=(104) +cfn=(384) +calls=1 30 +0 74 + +fn=(414) 0x0000000004a2c7a8 +0 3 + +fn=(350) +0 6 + +fn=(304) 0x0000000004a2c520 +0 6 + +fn=(382) +0 1 +cob=(3) +cfi=(104) +cfn=(384) +calls=1 30 +0 74 + +fn=(396) 0x0000000000108784 +0 3 + +ob=(4) /usr/lib/valgrind/vgpreload_core-amd64-linux.so +fl=(84) ??? +fn=(398) 0x0000000000000600 +0 8 +cob=(2) +cfi=(18) +cfn=(404) +calls=1 0 +0 75 +0 1 +cfn=(408) 0x0000000000000570 +calls=1 0 +0 8 +0 3 + +fn=(408) +0 8 + +fn=(308) 0x0000000000000640 +0 17 + +ob=(1) +fl=(14) /build/glibc-S9d2JN/glibc-2.27/elf/../misc/sbrk.c +fn=(30) sbrk +32 4 ++8 6 ++4 2 ++16 5 + +fl=(35) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/setjmp.S +fn=(110) __sigsetjmp +26 3 ++9 3 ++1 6 ++1 3 ++4 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 6 ++2 3 ++1 3 ++1 3 ++2 6 ++2 3 ++4 3 ++1 3 + +fl=(83) /build/glibc-S9d2JN/glibc-2.27/elf/dl-init.c +fn=(302) _dl_init +79 11 ++5 1 +-4 1 ++1 1 ++3 2 ++8 2 ++25 2 ++1 12 ++1 12 +-89 12 ++9 3 +-3 6 ++3 9 ++5 6 ++5 2 ++9 6 +cob=(3) +cfi=(85) +cfn=(314) +calls=1 -6 +* 201 +* 1 ++4 2 ++6 2 ++2 2 +-2 1 ++3 1 +-1 1 ++1 5 ++1 4 +cob=(3) +cfi=(91) +cfn=(328) +calls=1 +12 +* 11 +* 4 +cob=(3) +cfi=(92) +cfn=(330) +calls=1 488 +* 1773 +* 2 +-1 4 ++47 3 ++7 8 +-80 3 +-5 3 +-10 3 ++57 2 +-48 1 +-3 2 ++3 3 ++5 3 ++5 2 ++9 7 +cob=(2) +cfi=(18) +cfn=(304) +calls=1 -58 +* 6 +* 1 ++3 1 ++1 2 ++6 1 ++2 2 +-2 2 ++3 8 ++1 4 +cob=(4) +cfi=(84) +cfn=(308) +calls=1 -72 +* 17 +-1 5 + +fl=(28) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S +fn=(76) memset +109 65 ++6 13 ++1 13 ++1 6 ++1 6 ++2 4 ++1 4 ++2 4 ++59 2 ++1 2 ++10 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++2 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 2 ++15 7 ++1 7 ++1 7 ++1 6 ++1 6 ++1 2 ++1 2 ++24 1 ++1 1 ++2 1 ++3 4 ++1 4 ++2 4 ++3 2 ++1 2 ++2 2 + +fl=(37) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c +fn=(120) open +39 11 +fi=(38) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/open64.c +-3 11 ++3 66 ++8 77 ++2 3 +-2 24 ++2 8 +fe=(37) + +fl=(39) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/read.c +fn=(124) read +27 8 ++1 2 + +fl=(8) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/cpu-features.c +fn=(24) get_common_indeces.constprop.1 +48 2 ++4 4 ++3 3 ++4 1 +-4 1 ++4 1 +-4 1 ++3 1 ++1 2 ++1 4 ++1 4 ++1 3 ++1 2 ++7 2 ++1 7 ++7 3 ++4 2 ++2 4 ++40 2 ++4 4 ++1 2 ++3 1 ++7 1 +-8 1 ++4 1 ++2 1 +-2 1 ++4 2 ++3 2 ++50 3 +88 2 ++3 3 ++3 1 +-3 1 ++3 1 ++2 3 ++2 2 ++7 3 +-5 3 + +fl=(41) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/fxstat.c +fn=(130) _fxstat +34 3 +-1 3 ++1 3 ++1 18 ++4 3 + +fl=(24) /build/glibc-S9d2JN/glibc-2.27/elf/dl-load.c +fn=(114) _dl_map_object +2151 21 ++8 3 +-8 6 ++8 3 ++1 12 ++3 42 ++5 49 ++2 21 +cfi=(36) /build/glibc-S9d2JN/glibc-2.27/elf/dl-misc.c +cfn=(116) _dl_name_match_p +calls=7 282 +* 777 +* 14 ++4 12 ++1 18 ++3 2 ++1 2 ++1 2 +-1 2 ++1 2 +cfi=(21) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/strcmp.S +cfn=(56) strcmp +calls=2 144 +* 48 +* 4 +2462 27 +2196 6 ++10 6 +-53 2 ++89 4 +-2 2 ++2 2 +cfi=(29) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/../strchr.S +cfn=(84) index +calls=2 24 +* 46 +* 4 +2393 5 +cfn=(82) expand_dynamic_string_token +calls=1 375 +* 158 +* 1 +-2 1 ++3 5 ++4 9 +cfn=(118) open_verify.constprop.7 +calls=1 1653 +* 223 ++3 2 +-3 1 ++3 3 ++12 3 ++46 1 ++1 3 +-1 1 ++1 9 +cfn=(126) _dl_map_object_from_fd +calls=1 863 +* 1353 +-1 1 ++1 3 +-1 1 ++1 9 +cfn=(126) +calls=1 863 +* 1702 +* 6 +2242 1 ++4 2 +cfi=(13) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/../strlen.S +cfn=(28) strlen +calls=1 79 +* 16 +* 1 ++2 1 +-2 1 ++2 1 ++7 4 ++36 12 +cfn=(152) open_path +calls=1 2003 +* 1339 ++6 2 +-6 1 ++6 3 +656 3 +2385 2 ++28 4 ++2 2 +-95 1 +-14 1 ++14 1 ++2 3 ++4 2 +cfi=(50) /build/glibc-S9d2JN/glibc-2.27/elf/dl-cache.c +cfn=(156) _dl_load_cache_lookup +calls=1 187 +* 1344 ++2 1 +-2 1 ++2 1 ++4 2 ++8 3 ++23 10 +cfn=(118) +calls=1 1653 +* 235 ++4 2 +-4 1 ++4 3 ++1 2 +-88 7 +656 3 +2290 2 ++1 2 +-32 1 ++1 2 +-1 3 ++8 7 +-3 3 +656 3 ++9 3 +2279 3 + +fn=(152) +2003 8 ++1 1 ++6 1 +-6 1 ++6 1 ++5 11 +-7 1 +-1 1 ++8 7 ++3 3 ++9 4 ++7 3 ++1 1 +-13 3 ++12 1 +cfi=(20) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S +cfn=(74) mempcpy +calls=1 116 +* 12 +* 1 ++55 2 +-22 6 +-32 2 ++32 24 +-32 16 ++3 16 ++4 48 +cfi=(20) +cfn=(74) +calls=8 116 +* 101 +* 32 +cfi=(20) +cfn=(74) +calls=8 116 +* 96 ++3 16 ++3 24 ++3 72 +cfn=(118) +calls=8 1653 +* 432 +* 8 ++2 40 ++2 16 ++89 9 +-24 7 ++7 1 +-2 1 ++2 3 ++3 3 +-13 2 +-57 16 ++1 64 ++6 16 ++2 16 +-2 16 ++2 16 +cfi=(49) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/xstat.c +cfn=(154) _xstat +calls=8 34 +* 101 +* 8 ++3 8 +-3 8 ++1 1 ++2 1 +-2 1 ++2 7 +-37 2 ++37 7 +-37 14 + +fn=(118) +1653 120 ++39 10 +-39 20 ++39 38 ++31 30 +cfi=(37) +cfn=(120) +calls=10 39 +* 184 ++2 10 +-2 10 ++2 12 ++11 2 ++6 2 +-5 6 ++5 12 +cfi=(39) +cfn=(124) +calls=2 27 +* 10 ++2 4 ++2 2 ++2 2 +-2 2 ++2 2 ++6 4 ++16 18 +1985 4 +cob=(2) +cfi=(18) +cfn=(88) +calls=2 0 +* 10 +* 2 +1770 14 ++74 4 ++5 4 ++2 8 ++6 4 ++11 4 ++6 2 ++1 2 +-1 6 ++1 6 ++1 4 ++20 8 +1730 8 +1896 72 ++2 38 ++13 6 ++3 8 ++28 12 +-3 18 ++15 2 ++6 3 +-3 1 ++1 1 ++3 1 +-3 2 ++1 1 +-1 1 +-1 1 ++4 2 +1705 8 +1989 90 +1770 2 +1942 12 ++3 2 +-4 2 ++4 4 ++5 1 ++1 4 +-36 6 + +fn=(78) fillin_rpath +444 7 ++2 1 +-2 9 ++4 3 +cfi=(19) +cfn=(80) strsep +calls=1 265 +* 238 +* 3 +cfi=(19) +cfn=(80) +calls=1 265 +* 6 +* 6 ++7 2 ++2 3 +cfn=(82) +calls=1 -82 +* 108 ++4 1 +-4 1 ++4 1 ++5 2 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 ++1 2 ++7 6 ++9 17 ++1 8 ++57 2 +cob=(2) +cfi=(18) +cfn=(88) +calls=1 0 +* 5 +* 1 +-39 2 ++4 7 +-1 1 +cfi=(19) +cfn=(46) malloc +calls=1 50 +* 18 +* 1 ++3 3 ++5 1 ++1 2 +-2 2 ++2 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 12 ++3 1 +-2 1 +-1 1 ++1 1 ++2 1 ++6 4 ++1 17 ++1 1 +-1 3 ++1 1 +-1 14 ++1 8 +-1 1 ++1 1 +-1 3 ++1 1 +-1 2 ++4 1 +-1 1 ++1 1 +-1 1 ++1 1 ++8 1 +-1 1 ++4 3 +-37 2 +-28 1 ++5 4 ++66 1 ++3 9 +-15 2 + +fn=(82) +375 16 +233 4 +375 2 +233 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 70 ++3 4 +400 2 +-11 2 ++11 12 +-11 2 +cfi=(30) /build/glibc-S9d2JN/glibc-2.27/string/strdup.c +cfn=(86) strdup +calls=2 40 +* 150 + +fn=(148) _dl_dst_count +230 4 ++3 2 +-3 4 ++7 2 +-7 6 ++3 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 70 ++3 4 ++20 18 + +fn=(66) _dl_init_paths +678 1 ++13 2 +-13 8 ++13 3 +cfi=(25) /build/glibc-S9d2JN/glibc-2.27/elf/dl-hwcaps.c +cfn=(68) _dl_important_hwcaps +calls=1 42 +* 711 ++5 1 +-5 1 ++5 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-2 1 ++2 2 ++8 1 +-1 1 ++1 4 +-1 3 ++4 4 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++2 1 +-2 2 ++2 1 ++7 1 ++10 1 +-11 1 ++12 1 ++3 1 ++1 1 +-5 1 ++3 1 ++1 1 +-1 1 ++9 1 +-20 1 ++17 1 ++3 1 +-3 17 +cfi=(28) +cfn=(76) +calls=4 109 +* 48 ++3 27 +-12 3 +-2 3 ++10 3 +-7 3 +-1 3 ++4 3 +-1 3 ++1 3 ++1 3 ++3 3 ++1 3 +-4 3 ++4 3 ++14 1 +-11 1 ++6 1 ++1 1 ++5 2 ++2 4 ++2 3 ++38 5 +-19 1 +-2 2 ++2 2 ++21 3 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 +* 8 +cfi=(20) +cfn=(48) memcpy +calls=1 129 +* 10 +* 1 ++5 4 +-1 2 ++2 56 +-1 57 ++5 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-2 1 ++2 1 ++6 7 +cfn=(78) +calls=1 444 +* 588 ++3 3 ++6 1 ++4 8 +-37 2 + +fn=(126) +863 22 ++10 2 +-10 2 ++10 2 +-10 6 ++10 2 +cfi=(31) /build/glibc-S9d2JN/glibc-2.27/elf/dl-debug.c +cfn=(92) _dl_debug_initialize +calls=2 49 +* 16 +fi=(40) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/posix/dl-fileid.h +37 6 +fe=(24) +873 2 +fi=(40) +37 2 +cfi=(41) +cfn=(130) +calls=2 -3 +* 20 +* 4 ++4 2 +fe=(24) +889 2 +fi=(40) +40 2 ++1 2 +fe=(24) +889 27 ++1 10 +fi=(40) +49 13 +fe=(24) +1401 18 +907 4 ++24 8 ++10 4 ++22 8 ++32 4 +874 2 +998 14 +cfi=(17) /build/glibc-S9d2JN/glibc-2.27/elf/dl-object.c +cfn=(38) _dl_new_object +calls=2 59 +* 758 ++1 2 +-1 2 ++1 2 ++11 4 ++5 2 +-5 2 ++1 2 ++5 2 +-5 2 ++1 2 ++2 2 +-2 2 ++2 4 ++1 6 ++20 2 +-2 2 ++2 18 ++8 10 ++97 2 +1031 2 +1140 2 +1037 2 +-1 2 +-5 4 +1140 6 +-96 32 +-1 102 ++1 95 ++6 4 ++5 4 ++1 8 ++11 20 ++5 32 ++9 12 +-1 12 ++1 4 ++1 8 ++2 4 +-2 4 ++1 4 +-1 4 ++3 4 ++4 4 +-7 4 ++3 4 +-1 4 ++5 4 ++1 12 ++5 2 +-1 2 ++1 2 +-15 2 ++14 2 ++1 10 ++10 2 +-10 2 +-1 2 ++1 2 +-15 2 ++14 2 ++1 10 ++10 2 +-44 2 ++1 1 ++46 3 ++4 1 ++1 1 ++2 1 +-1 1 +-1 2 ++1 1 ++3 3 ++1 1 ++3 1 +-3 1 ++7 4 ++6 1 +cfi=(32) /build/glibc-S9d2JN/glibc-2.27/elf/../elf/dl-tls.c +cfn=(164) _dl_next_tls_modid +calls=1 51 +* 6 +* 2 ++1 1 ++19 4 ++1 4 ++1 2 +-6 4 ++1 2 ++8 8 +1011 2 +1165 2 +1011 2 +1165 2 ++10 4 +fi=(43) /build/glibc-S9d2JN/glibc-2.27/elf/./dl-map-segments.h +50 2 ++6 2 +fe=(24) +1175 8 +fi=(43) +56 6 +fe=(24) +1175 2 +fi=(43) +50 2 +fe=(24) +1175 4 +fi=(43) +56 4 +cfi=(42) /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/sysv/linux/mmap64.c +cfn=(132) mmap +calls=2 -5 +* 74 ++4 2 +-4 2 ++4 4 ++3 4 ++1 2 ++2 2 +-2 2 +-1 2 ++3 2 ++14 4 +fi=(45) /build/glibc-S9d2JN/glibc-2.27/elf/./dl-load.h ++10 8 ++1 6 ++2 8 +fi=(43) ++11 16 ++45 4 +-59 20 ++2 12 ++2 18 +cfi=(42) +cfn=(132) +calls=2 -43 +* 66 +* 6 ++16 2 ++2 2 +-2 2 ++1 2 ++2 2 +-1 2 ++1 2 +-1 6 ++8 6 ++3 4 ++8 14 +cfi=(28) +cfn=(76) +calls=2 -22 +* 249 +* 6 ++6 4 ++4 9 +cfi=(42) +cfn=(132) +calls=1 -90 +* 33 ++3 3 +-71 20 +cfi=(44) /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/syscall-template.S +cfn=(136) mprotect +calls=2 +5 +* 10 +* 6 +fi=(45) ++21 5 ++2 1 +-1 3 ++1 1 +-1 1 ++1 2 +-1 2 ++3 4 +fe=(24) +1187 8 ++9 4 +fi=(3) /build/glibc-S9d2JN/glibc-2.27/elf/get-dynamic-info.h +42 2 +fe=(24) +1196 2 +fi=(3) +42 2 ++6 2 +-2 2 ++2 4 ++15 2 ++5 2 ++3 2 +-1 2 +-3 2 +-3 36 ++10 8 +-26 24 ++16 35 ++10 35 +-26 105 ++26 2 +-26 6 ++2 90 ++13 40 ++2 8 ++16 4 ++20 7 ++1 8 ++1 8 ++1 8 ++2 8 ++5 8 ++1 7 ++1 8 ++6 6 ++5 4 ++7 4 ++1 6 ++18 6 ++5 1 ++2 1 +-2 1 ++2 1 ++2 2 ++2 2 ++3 6 ++10 1 +-8 4 ++8 1 ++5 2 ++3 4 +fe=(24) +1203 4 ++15 6 ++19 4 ++2 10 ++54 6 ++1 2 ++3 2 +cfi=(46) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/close.c +cfn=(142) close +calls=1 27 +* 5 +* 2 +cfi=(46) +cfn=(142) +calls=1 27 +* 5 +* 4 ++9 4 ++2 6 ++2 2 +-2 2 ++2 2 ++16 4 +cfi=(6) /build/glibc-S9d2JN/glibc-2.27/elf/dl-lookup.c +cfn=(10) _dl_setup_hash +calls=2 939 +* 46 ++4 4 ++1 4 ++17 4 ++1 1 ++8 1 +-5 3 ++5 2 +-5 3 ++5 1 ++10 4 ++10 6 +cfi=(17) +cfn=(50) _dl_add_to_namespace_list +calls=2 31 +* 82 ++4 6 +fi=(3) +68 8 ++3 8 ++1 2 ++1 8 +fe=(24) +424 2 + +fl=(34) /build/glibc-S9d2JN/glibc-2.27/elf/dl-error-skeleton.c +fn=(108) _dl_catch_exception +175 6 ++15 3 +-3 6 ++4 3 +-3 3 +-13 3 ++19 3 +-3 3 ++3 3 +-19 3 ++13 3 ++2 3 ++4 3 +cfi=(35) +cfn=(110) +calls=3 26 +* 60 +* 9 ++2 9 +cfi=(48) /build/glibc-S9d2JN/glibc-2.27/elf/dl-deps.c +cfn=(150) openaux +calls=2 60 +* 5582 +cfi=(2) /build/glibc-S9d2JN/glibc-2.27/elf/rtld.c +cfn=(112) map_doit +calls=1 588 +* 2152 ++2 3 +-1 3 ++1 6 +-1 3 ++1 3 ++9 12 + +fn=(168) _dl_receive_error +226 3 ++1 1 ++1 1 ++3 1 ++1 1 ++2 2 +cfi=(2) +cfn=(170) version_check_doit +calls=1 621 +* 2608 ++2 1 ++1 1 ++1 4 + +fn=(104) _dl_catch_error +213 6 ++2 2 +-2 1 ++2 2 +cfn=(108) +calls=1 -40 +* 2203 +* 1 ++1 2 ++1 1 ++1 1 +-1 1 ++1 1 ++2 5 + +fl=(6) +fn=(190) _dl_lookup_symbol_x +790 880 +555 88 +790 352 +555 264 +-1 176 ++2 88 +-1 88 ++1 264 +-1 264 ++1 1185 +-1 1185 ++1 3555 +-1 3643 +793 88 +-1 88 ++4 88 ++4 88 +-8 88 ++1 88 ++7 334 ++5 264 ++6 264 +-7 968 ++15 32 +-8 48 ++2 1144 +cfn=(192) do_lookup_x +calls=88 338 +* 30286 ++3 424 ++25 176 ++24 560 ++31 80 ++9 320 ++14 240 ++3 320 ++5 80 ++2 808 +-86 48 ++17 8 ++1 16 ++59 2 + +fn=(192) +338 616 ++1 88 +-1 528 ++6 176 ++12 88 ++30 88 +-41 88 ++41 88 ++35 176 +-65 440 ++14 831 ++8 554 ++1 831 ++3 277 ++1 554 ++4 554 ++3 554 +-5 277 ++5 831 ++3 1939 +-99 197 +540 1372 ++1 54 +cfi=(36) +cfn=(116) +calls=18 282 +* 1350 +* 72 ++3 591 +349 554 ++3 554 ++4 554 ++4 554 ++4 554 +fi=(55) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/generic/ldsodefs.h +102 240 +fe=(6) +503 160 ++3 604 +-60 10 ++64 27 ++12 480 ++2 80 ++24 704 +-1 16 +397 255 +-1 170 ++2 170 ++2 85 +90 255 +375 85 +90 85 +374 85 +90 85 +400 170 +90 170 +413 285 +-10 875 ++2 320 ++2 160 +-1 240 +78 560 ++12 400 ++3 240 +cfi=(21) +cfn=(56) +calls=16 +51 +* 805 +* 48 ++5 80 +-1 80 ++1 80 ++2 158 ++19 79 ++1 711 +452 800 +148 2 ++2 5 ++30 35 +-59 395 +cfi=(21) +cfn=(56) +calls=79 +23 +* 3613 +* 395 + +fn=(10) +939 12 ++4 4 ++4 8 ++2 4 +-1 4 ++3 12 ++1 4 ++1 4 ++3 4 +-3 4 ++7 4 +-4 4 +-1 4 ++3 4 ++2 4 +-7 4 ++7 4 ++1 4 + +fl=(52) /build/glibc-S9d2JN/glibc-2.27/elf/dl-sort-maps.c +fn=(166) _dl_sort_maps +28 16 ++2 2 +-2 2 ++2 2 ++92 10 +-88 10 ++1 4 +-1 2 +-1 2 ++1 8 ++1 2 +cfi=(28) +cfn=(76) +calls=2 +74 +* 30 +* 32 ++4 4 ++3 2 +-3 4 ++1 6 ++2 2 +-7 4 ++4 8 ++3 4 +-3 8 ++1 12 ++2 4 ++12 36 ++2 12 ++1 8 +-1 6 ++1 6 ++2 18 ++1 12 ++58 24 +cfi=(28) +cfn=(76) +calls=4 -9 +* 64 +* 16 +-28 24 +-36 12 ++61 28 +-25 9 +-44 12 ++69 2 ++7 16 + +fl=(17) +fn=(50) +31 6 ++2 3 +-2 9 ++2 6 +cfi=(2) +cfn=(52) rtld_lock_default_lock_recursive +calls=3 784 +* 6 ++2 22 ++3 15 ++2 2 ++2 2 ++4 2 ++4 2 +-4 4 ++1 2 ++4 4 +-4 2 ++1 2 ++3 2 +-3 2 ++2 2 +cfi=(2) +cfn=(54) rtld_lock_default_unlock_recursive +calls=2 790 +* 4 +-4 1 ++4 1 +-4 2 ++1 1 ++4 2 +-4 1 ++1 1 ++3 1 +-3 1 ++2 1 +cfi=(2) +cfn=(54) +calls=1 790 +* 2 +-5 2 + +fn=(38) +59 36 ++1 3 +-1 3 ++1 6 +cfi=(13) +cfn=(28) +calls=3 +19 +* 66 ++6 3 +-6 6 ++6 3 ++7 3 +-7 3 +-6 3 ++6 9 ++2 6 ++5 9 +cfi=(19) +cfn=(42) calloc +calls=3 +19 +* 147 +* 3 ++3 3 +-3 3 ++3 3 ++4 3 ++5 3 +-6 3 ++6 3 +-5 3 ++5 3 +-5 3 ++4 3 ++1 6 +-1 3 ++1 3 +cfi=(20) +cfn=(48) +calls=3 +44 +* 41 ++10 3 +-10 3 ++10 3 +-10 3 ++10 3 +-8 3 ++8 6 ++1 3 +-1 3 ++1 9 ++3 3 +-3 3 ++3 3 ++9 3 +-7 3 ++4 3 ++3 8 ++2 2 +-2 2 ++2 30 +-2 30 ++18 6 +-6 3 ++1 3 ++5 3 +-6 3 ++6 9 ++2 2 ++3 2 +-3 4 ++3 2 ++4 6 ++4 5 ++8 1 ++3 1 ++3 2 +-3 1 ++3 1 +-3 2 ++3 4 +-3 2 ++3 2 ++2 2 ++21 2 +-21 2 +cfi=(13) +cfn=(28) +calls=2 -76 +* 68 ++4 2 +-4 4 ++17 2 +-13 6 ++64 2 ++4 27 +100 8 ++39 6 ++70 6 +cfi=(20) +cfn=(74) +calls=2 -93 +* 32 +* 42 ++6 40 +-1 40 ++1 42 +-1 2 ++1 6 ++5 4 +-96 1 ++7 4 ++32 4 +cfi=(19) +cfn=(46) +calls=2 50 +* 36 +* 2 ++1 2 +-1 4 ++1 2 + +fl=(20) +fn=(48) +129 14 ++6 14 ++1 14 ++1 8 ++1 8 ++5 5 ++1 5 ++1 5 ++1 5 ++5 5 +275 6 ++1 6 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++22 5 ++1 5 ++1 5 ++1 5 ++1 5 ++24 3 ++1 3 ++1 3 ++1 3 ++22 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 + +fn=(74) +116 26 ++1 26 ++1 26 ++17 26 ++1 26 ++1 4 ++1 4 ++5 3 ++1 3 ++1 3 ++1 3 ++5 3 +275 22 ++1 22 ++1 8 ++1 8 ++1 3 ++1 3 ++1 1 ++4 1 ++22 14 ++1 14 ++1 14 ++1 14 ++1 14 ++3 5 ++1 5 ++1 5 ++1 5 ++1 5 ++3 2 ++1 2 ++1 2 ++1 2 ++1 2 ++10 1 ++1 1 ++1 1 ++1 1 ++22 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 + +fl=(31) +fn=(92) +49 8 ++5 6 ++5 2 +-1 1 ++1 2 ++1 2 +-1 1 ++5 1 +-14 4 ++4 8 ++4 1 +-1 1 ++1 4 + +fn=(96) _dl_debug_state +74 2 + +fl=(49) +fn=(154) +34 8 +-1 8 ++1 8 ++1 48 ++4 1 +-4 28 + +fl=(7) /build/glibc-S9d2JN/glibc-2.27/elf/../elf/dl-sysdep.c +fn=(294) _dl_sysdep_start_cleanup +260 1 + +fn=(12) _dl_sysdep_start +88 8 ++25 1 +-1 1 ++1 157 ++6 1 +-3 1 ++1 1 +-4 1 ++3 1 ++3 4 ++1 2 +-1 12 +-29 1 +-1 10 ++30 2 ++1 108 ++3 1 +-4 74 ++62 1 +-62 1 ++63 1 +-1 1 +-62 3 ++34 1 +-34 2 ++35 1 +-35 2 ++46 1 +-46 1 ++47 1 +-1 1 +-46 3 ++40 1 +-40 1 ++41 1 +-1 1 +-40 3 ++37 1 +-37 2 ++38 1 +-38 3 ++13 1 +-13 2 ++14 1 +-14 2 ++10 1 +-10 2 ++11 1 +-11 2 ++7 1 +-7 4 +224 1 +cfi=(9) /build/glibc-S9d2JN/glibc-2.27/elf/dl-tunables.c +cfn=(16) __GI___tunables_init +calls=1 +65 +* 19077 +fi=(11) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-sysdep.c +35 2 +cfi=(12) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/x86_64/brk.c +cfn=(22) brk +calls=1 -4 +* 11 +fi=(8) +210 1 +-12 1 ++1 1 ++11 1 ++3 1 +-3 1 ++3 5 +381 3 ++1 1 ++3 2 ++1 1 ++6 1 ++5 2 +-3 1 ++3 1 +-4 1 ++4 1 +cfi=(9) +cfn=(26) __tunable_get_val +calls=1 -24 +* 16 ++2 4 +cfi=(9) +cfn=(26) +calls=1 -26 +* 18 +* 1 ++2 3 +-2 1 ++2 1 +cfi=(9) +cfn=(26) +calls=1 -28 +* 18 +* 1 ++2 3 +-2 1 ++2 1 +cfi=(9) +cfn=(26) +calls=1 -30 +* 18 ++12 1 +-12 1 ++11 1 +-11 1 ++12 1 +fe=(7) +236 1 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 +* 1 ++2 2 +cfi=(14) +cfn=(30) +calls=1 32 +* 17 +* 3 ++12 3 ++3 5 +cfi=(2) +cfn=(32) dl_main +calls=1 870 +* 93930 ++1 1 ++1 8 +fi=(8) +419 3 ++28 2 +-9 3 ++2 4 ++1 2 ++2 4 ++1 2 +219 6 +cfn=(24) +calls=1 48 +* 87 +37 2 ++1 2 ++1 6 +224 4 +327 4 ++7 6 +217 3 ++9 2 ++1 1 +-1 1 ++1 6 ++46 3 ++22 2 ++10 5 ++13 3 +-13 2 +fe=(7) + +fl=(53) /build/glibc-S9d2JN/glibc-2.27/elf/dl-version.c +fn=(174) _dl_check_map_versions +156 28 ++15 12 ++2 20 ++2 4 ++1 4 ++2 4 +-3 4 ++1 4 ++2 4 ++3 6 +-16 2 +-8 4 ++28 2 +-4 2 ++4 4 ++16 2 +37 4 +201 2 +37 10 ++1 5 +-1 10 ++2 21 +cfi=(36) +cfn=(116) +calls=7 282 +* 638 +* 14 +209 6 ++5 2 +-71 6 ++71 4 +-71 6 ++79 2 +-2 2 +-2 4 ++4 2 +-4 14 ++4 2 +-2 2 +-2 4 ++4 2 +-4 24 +57 6 ++8 6 +-8 6 ++8 6 ++6 12 ++16 4 ++1 8 ++2 4 ++5 24 ++14 36 ++12 42 ++4 14 +-30 28 +225 16 ++3 12 ++5 2 +-11 2 +111 4 ++3 16 +cfi=(21) +cfn=(56) +calls=4 +30 +* 202 +* 20 +237 8 ++14 6 ++3 8 ++3 12 ++3 8 ++4 2 +-7 8 ++3 6 ++4 30 +-7 120 ++3 92 ++8 9 ++89 36 +-83 12 +cfi=(19) +cfn=(42) +calls=3 92 +* 81 +* 3 ++1 3 +-2 3 ++2 3 ++13 3 ++2 3 +-5 3 ++3 3 ++2 3 +-2 3 ++2 3 ++3 8 ++4 6 ++18 2 +-15 6 ++2 6 +-2 6 ++2 6 ++2 4 ++1 4 +-1 8 ++1 4 +-1 4 ++1 4 ++1 4 +-2 4 ++2 8 ++1 12 ++3 12 ++8 6 ++10 9 ++3 8 ++4 32 ++6 32 ++1 32 ++1 32 +-1 96 ++1 32 +-1 32 ++1 32 ++1 32 ++3 96 ++4 32 +-14 68 ++10 6 +-96 2 +-86 2 +-8 2 ++94 3 + +fn=(172) _dl_check_all_versions +362 5 ++2 1 +-2 3 ++4 3 ++2 24 +cfn=(174) +calls=4 156 +* 2527 +-2 4 ++2 16 +-2 8 ++5 7 + +fl=(30) +fn=(86) +40 12 ++1 3 +cfi=(13) +cfn=(28) +calls=3 +38 +* 84 +* 3 ++1 6 +cfi=(19) +cfn=(46) +calls=3 +8 +* 54 +* 3 ++2 6 ++4 3 +-1 6 ++1 6 +-1 6 +cfi=(20) +cfn=(48) +calls=3 +82 +* 38 + +fl=(44) +fn=(136) +78 24 ++1 6 + +fn=(298) munmap +78 4 ++1 1 + +fl=(15) /build/glibc-S9d2JN/glibc-2.27/elf/dl-environ.c +fn=(34) _dl_next_ld_env_entry +29 3 ++3 10 ++13 47 +-13 141 ++2 98 ++1 14 ++5 2 +-3 2 ++3 2 ++2 2 ++7 1 + +fl=(16) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/memcmp.S +fn=(36) bcmp +28 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++3 2 ++1 2 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++1 2 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++29 2 ++1 2 ++15 2 ++1 2 + +fl=(50) +fn=(156) +187 9 ++8 2 ++3 3 ++45 1 ++6 2 ++11 1 +-2 1 +fi=(51) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/dl-procinfo.h +39 1 +fe=(50) +258 2 +fi=(51) +39 3 ++3 3 +cfi=(21) +cfn=(56) +calls=1 144 +* 24 +* 2 +fe=(50) +264 4 +cfi=(9) +cfn=(26) +calls=1 373 +* 18 +* 1 +fi=(26) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/not-errno.h +28 2 +fe=(50) +264 1 +fi=(26) +28 2 +fe=(50) +266 2 +fi=(26) +32 3 +fe=(50) +270 2 ++15 1 +-15 1 ++15 139 +cfn=(162) _dl_cache_libcmp +calls=9 141 +* 642 +* 61 +cfn=(162) +calls=1 141 +* 71 +* 3 +-15 2 ++1 3 +-1 2 ++15 3 +-84 4 +cfi=(36) +cfn=(158) _dl_sysdep_read_whole_file +calls=1 44 +* 107 ++8 1 +-8 1 ++8 4 ++1 7 ++7 1 +-3 1 ++3 3 ++3 1 ++1 2 +-1 1 ++1 1 ++1 8 ++63 3 ++16 2 ++4 2 ++8 3 +cfi=(13) +cfn=(28) +calls=1 79 +* 34 +* 2 ++1 1 +-1 4 ++1 2 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 ++1 2 +cfi=(30) +cfn=(86) +calls=1 40 +* 80 ++1 8 +-19 7 +-12 19 +fi=(51) +42 3 +fe=(50) +297 3 + +fn=(162) +141 20 ++1 22 ++2 196 ++20 96 ++2 174 ++4 39 ++1 39 +-29 78 ++32 3 +-28 2 ++6 1 ++2 1 +-1 1 +-1 2 ++1 1 +-1 1 ++2 3 ++2 3 +-3 1 ++3 1 ++2 2 ++9 27 + +fn=(296) _dl_unload_cache +326 4 +-1 1 ++3 2 +cfi=(44) +cfn=(298) +calls=1 78 +* 5 ++1 1 ++2 2 + +fl=(46) +fn=(142) +27 12 ++1 3 + +fl=(32) +fn=(180) _dl_allocate_tls_storage +332 1 ++2 1 +-2 2 ++13 1 ++1 2 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 3 ++8 2 +-69 1 ++69 2 ++1 1 ++4 297 ++19 1 +-94 2 ++1 2 +cfi=(19) +cfn=(42) +calls=1 92 +* 27 +* 1 ++1 2 ++3 1 ++6 2 ++89 5 + +fn=(290) _dl_add_to_slotinfo +887 4 ++9 1 +-3 2 ++8 7 ++41 1 ++1 1 ++1 4 + +fn=(94) _dl_count_modids +113 2 ++1 2 + +fn=(292) _dl_allocate_tls_init +437 8 ++1 1 +-1 1 ++1 1 ++4 1 ++6 2 +-6 1 ++6 1 ++12 1 +-15 1 ++39 1 +-24 1 +-16 2 ++21 9 ++6 15 ++3 1 ++1 2 ++6 3 ++3 1 +-2 1 ++6 1 +-6 1 ++2 1 ++4 1 +-4 2 ++3 1 +-3 1 ++1 1 ++2 1 ++4 2 ++1 4 ++2 2 ++1 2 ++12 1 +-3 1 ++3 2 +cfi=(20) +cfn=(74) +calls=1 116 +* 12 +* 5 +cfi=(28) +cfn=(76) +calls=1 109 +* 33 +* 7 +-42 2 ++52 1 ++4 3 ++3 8 + +fn=(178) _dl_determine_tlsoffset +141 1 +-6 5 ++6 2 ++3 2 ++36 3 ++2 4 +-2 1 +-2 1 +-40 1 +-1 1 +-1 2 ++69 2 ++3 2 +-3 5 ++2 2 ++10 1 +-37 2 ++25 1 +-25 2 ++5 1 +-1 1 ++5 2 +-4 1 +-1 2 ++3 2 ++2 3 +-9 5 ++93 1 +-53 1 ++1 1 ++52 1 +-1 1 ++1 4 + +fn=(164) +51 4 ++48 1 ++4 1 + +fl=(1) ??? +fn=(0) 0x0000000000001090 +0 2 +cfi=(2) +cfn=(2) _dl_start +calls=1 444 +0 114828 +0 14 +cfi=(83) +cfn=(302) +calls=1 79 +0 2191 +0 3 +cob=(5) +cfi=(94) +cfn=(340) +calls=1 0 +0 10494216 + +fl=(47) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/access.c +fn=(144) access +27 7 ++4 1 + +fl=(11) +fn=(62) _dl_discover_osversion +45 4 ++2 3 ++85 5 +-45 3 +cfi=(23) /build/glibc-S9d2JN/glibc-2.27/posix/../sysdeps/unix/syscall-template.S +cfn=(64) uname +calls=1 -9 +* 5 +* 1 ++15 1 +-15 1 ++20 1 +-1 1 ++3 12 ++4 3 +-2 6 ++2 10 ++2 1 ++1 2 +-3 4 ++7 3 +-1 3 ++4 3 +-2 3 ++2 10 ++5 2 + +fl=(25) +fn=(68) +42 4 ++1 1 +-1 8 ++1 4 +-1 1 ++1 1 +cfi=(9) +cfn=(26) +calls=1 373 +* 18 +* 1 ++3 3 +-3 1 ++12 6 ++1 3 ++1 1 +-2 1 ++2 1 +-2 5 ++1 3 ++1 1 +-2 1 ++2 1 +-2 5 ++10 3 +fi=(26) +-37 4 +fe=(25) +131 4 +-2 1 ++17 6 ++3 2 +329 9 +69 3 ++77 1 ++20 1 +-19 1 ++36 10 ++1 3 +-1 2 ++1 3 +fi=(27) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/dl-hwcap.h +57 6 +fe=(25) +186 1 ++1 1 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 ++1 1 +-1 1 ++1 3 +-5 1 ++5 1 +-5 1 ++5 2 +-5 5 ++8 3 ++2 1 ++1 6 ++4 1 ++4 1 +-3 1 +-1 1 ++4 2 ++3 4 ++4 3 ++1 1 +-1 5 ++1 3 ++2 3 ++2 2 +-1 1 ++1 1 +-1 1 ++2 2 ++7 2 ++6 11 ++1 4 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-1 1 ++1 3 ++29 10 ++3 6 ++17 1 +-10 1 ++10 11 +-4 2 +-3 1 ++3 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 16 +* 2 +-3 1 ++3 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 16 +* 6 ++3 7 ++1 12 ++1 4 +cfi=(20) +cfn=(74) +calls=1 116 +* 14 +-2 1 ++2 2 +-2 1 ++5 6 +cfi=(20) +cfn=(74) +calls=2 116 +* 28 ++2 2 +-2 4 ++2 5 +-7 4 ++12 1 ++1 2 +-1 9 ++1 14 +-1 18 ++5 10 ++4 3 +-4 12 ++4 33 ++1 12 +-1 12 ++1 24 +-2 12 ++1 24 +-1 39 ++4 6 ++5 1 +-2 1 ++2 1 +-1 1 +-1 2 ++2 1 +-1 1 ++1 4 ++2 6 ++1 2 ++3 2 +-6 5 ++13 8 ++1 1 +-1 2 ++3 2 +-3 3 ++1 3 +-1 6 ++3 6 ++3 3 ++2 2 +-15 2 +-6 3 +-42 2 + +fl=(9) +fn=(16) +289 8 +-9 3 +150 4 +-82 152 ++6 49 +-3 49 ++3 4410 ++4 98 ++5 49 +297 49 +83 49 +297 49 +fi=(10) /build/glibc-S9d2JN/glibc-2.27/elf/dl-tunables.h +121 98 +-1 40 ++1 16 +-1 11 ++1 44 +-1 55 +fe=(9) +330 196 +-12 5390 +fi=(10) +120 1764 ++1 1877 +-1 150 +fe=(9) +312 4361 +68 98 +364 8 + +fn=(26) +373 36 ++4 6 +-4 22 ++4 6 ++22 30 ++2 6 + +fl=(21) +fn=(56) +144 171 ++1 171 ++2 171 ++1 171 ++21 171 ++1 171 ++1 94 ++1 94 ++1 81 ++1 81 ++1 81 ++1 81 ++21 81 ++1 81 ++1 81 ++1 81 ++1 81 ++1 81 ++1 81 ++5 4 ++1 4 ++9 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 +-7 90 ++1 90 ++1 90 ++1 90 ++1 90 ++1 90 ++1 90 ++1 90 ++1 31 ++1 17 ++1 17 ++1 17 ++2 17 ++1 17 ++1 17 ++1 17 ++1 17 ++1 17 +-5 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 14 ++10 63 ++1 63 ++1 63 ++2 63 ++6 63 ++1 63 ++1 63 ++1 63 ++1 63 ++5 63 ++2 63 ++1 63 ++1 126 ++8 63 ++1 63 ++3 63 ++1 63 ++1 63 ++1 63 ++1 63 ++1 63 +696 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 +946 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 +1196 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 +1446 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++4 3 ++1 3 ++1 3 ++6 3 ++1 3 ++1 6 ++4 3 ++1 3 ++3 3 ++1 3 ++1 3 ++3 3 ++1 3 ++1 3 ++6 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 +1696 4 ++1 4 ++1 4 ++1 4 ++1 4 ++2 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++4 4 ++1 4 ++1 4 ++6 4 ++1 4 ++1 8 ++4 4 ++1 4 ++3 4 ++1 4 ++1 4 ++3 4 ++1 4 ++1 4 ++6 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++7 1 ++1 1 ++2 1 ++1 1 ++2 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++41 5 ++1 5 ++1 5 ++1 5 ++1 5 ++2 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++4 5 ++1 5 ++1 5 ++6 5 ++1 5 ++1 10 ++4 5 ++1 5 ++3 5 ++1 5 ++1 5 ++3 5 ++1 5 ++1 5 ++6 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++72 6 ++1 6 ++1 6 ++1 6 ++1 6 ++2 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 2 ++1 2 ++1 2 ++1 2 ++1 2 ++2 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 +2200 79 ++2 79 ++1 79 ++1 79 ++1 79 +-3 15 ++1 15 ++1 15 ++1 15 ++1 51 ++5 17 ++6 17 ++1 17 ++8 17 ++1 17 +-16 154 ++6 154 ++1 154 ++8 154 ++1 154 + +fl=(29) +fn=(84) +24 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 4 ++4 4 ++1 4 ++1 4 ++1 4 ++2 4 ++4 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++52 2 ++4 2 ++1 2 ++1 2 ++1 2 ++2 2 + +fl=(54) /build/glibc-S9d2JN/glibc-2.27/elf/dl-reloc.c +fn=(182) _dl_relocate_object +148 40 ++15 4 +-15 8 ++15 4 ++1 20 ++6 12 ++6 16 ++1 8 +-19 6 ++22 6 ++7 4 +-32 4 ++32 4 ++44 4 +fi=(5) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86_64/dl-machine.h +76 4 +fe=(54) +231 8 +fi=(5) +76 12 +fe=(54) +258 146 +-99 2 +fi=(5) +481 6 +fe=(54) +159 4 ++99 2 +fi=(4) /build/glibc-S9d2JN/glibc-2.27/elf/do-rel.h +48 2 +fe=(54) +258 2 +fi=(4) +47 2 ++11 2 +-11 2 ++11 2 +-11 2 ++11 2 +fe=(54) +258 2 +-99 2 +fi=(5) +481 6 +fe=(54) +159 4 ++99 2 +fi=(4) +48 2 +fe=(54) +258 2 +fi=(4) +47 2 ++11 2 +-11 2 ++11 2 +-11 2 ++11 2 +fe=(54) +258 4 +fi=(4) +48 4 +fe=(54) +258 4 +fi=(4) +47 4 ++11 4 +-11 4 ++11 4 +-11 4 ++11 4 ++26 6 ++14 12 +-15 12 ++3 24 ++12 6 ++10 8 ++10 18 ++6 5 +-3 10 ++3 5 +fi=(5) +491 3 +fi=(4) +51 3 +fi=(5) +491 3 +fi=(4) +50 6 ++77 412 ++12 206 +-3 309 +fi=(5) +276 103 +fi=(4) +139 103 +-2 103 +-1 103 ++1 103 ++1 103 +-1 206 +fi=(5) +276 103 ++21 206 ++4 206 ++7 412 +fi=(55) +102 258 +fi=(5) +308 1655 +fi=(4) +138 83 +fi=(5) +308 166 +fi=(4) +138 83 +fi=(5) +308 83 +fi=(4) +138 83 +fi=(5) +308 1162 +cfi=(6) +cfn=(190) +calls=83 790 +* 46569 +* 498 ++2 258 ++25 618 +fi=(4) +74 4 ++1 7 ++1 78 +fi=(5) +551 39 ++24 78 ++2 39 +cob=(3) +cfi=(82) +cfn=(286) +calls=1 42 +* 77 +cob=(3) +cfi=(59) +cfn=(282) +calls=1 32 +* 6 +cob=(3) +cfi=(62) +cfn=(280) +calls=1 32 +* 8 +cob=(3) +cfi=(57) +cfn=(276) +calls=1 33 +* 5 +cob=(3) +cfi=(57) +cfn=(272) +calls=1 33 +* 5 +cob=(3) +cfi=(72) +cfn=(270) +calls=1 30 +* 6 +cob=(3) +cfi=(66) +cfn=(268) +calls=1 32 +* 8 +cob=(3) +cfi=(62) +cfn=(266) +calls=1 32 +* 8 +cob=(3) +cfi=(59) +cfn=(262) +calls=1 32 +* 6 +cob=(3) +cfi=(62) +cfn=(260) +calls=1 32 +* 8 +cob=(3) +cfi=(62) +cfn=(258) +calls=1 32 +* 8 +cob=(3) +cfi=(77) +cfn=(256) +calls=1 40 +* 8 +cob=(3) +cfi=(72) +cfn=(254) +calls=1 30 +* 6 +cob=(3) +cfi=(76) +cfn=(252) +calls=2 32 +* 26 +cob=(3) +cfi=(75) +cfn=(250) +calls=1 40 +* 7 +cob=(3) +cfi=(56) +cfn=(248) +calls=1 44 +* 16 +cob=(3) +cfi=(57) +cfn=(244) +calls=1 33 +* 5 +cob=(3) +cfi=(59) +cfn=(240) +calls=1 32 +* 6 +cob=(3) +cfi=(72) +cfn=(238) +calls=1 30 +* 6 +cob=(3) +cfi=(62) +cfn=(236) +calls=2 32 +* 16 +cob=(3) +cfi=(66) +cfn=(234) +calls=2 32 +* 16 +cob=(3) +cfi=(71) +cfn=(232) +calls=1 42 +* 18 +cob=(3) +cfi=(70) +cfn=(230) +calls=1 38 +* 5 +cob=(3) +cfi=(69) +cfn=(228) +calls=1 38 +* 8 +cob=(3) +cfi=(67) +cfn=(224) +calls=1 33 +* 13 +cob=(3) +cfi=(56) +cfn=(222) +calls=1 44 +* 16 +cob=(3) +cfi=(66) +cfn=(220) +calls=2 32 +* 16 +cob=(3) +cfi=(62) +cfn=(218) +calls=1 32 +* 8 +cob=(3) +cfi=(63) +cfn=(212) +calls=1 43 +* 77 +cob=(3) +cfi=(62) +cfn=(210) +calls=1 32 +* 8 +cob=(3) +cfi=(57) +cfn=(206) +calls=1 33 +* 5 +cob=(3) +cfi=(59) +cfn=(202) +calls=1 32 +* 6 +cob=(3) +cfi=(57) +cfn=(198) +calls=1 33 +* 5 +cob=(3) +cfi=(56) +cfn=(196) +calls=2 44 +* 32 +-26 39 ++27 39 +fi=(4) +75 121 +fe=(54) +258 2 +fi=(4) +75 14 +fe=(54) +258 14 ++3 16 ++24 4 ++3 8 ++17 12 ++8 20 ++3 4 +-3 4 ++3 4 ++4 8 ++1 12 +cfi=(44) +cfn=(136) +calls=4 78 +* 20 +* 8 +-14 32 +fi=(5) +131 6 +458 344 +fi=(4) +124 309 ++19 15 +fi=(5) +430 51 ++4 68 ++5 17 ++9 17 +-9 34 ++9 34 +308 34 ++5 17 +-3 34 ++3 133 +-3 164 ++3 246 +-5 24 +fi=(4) +61 4 +-10 2 +-1 4 +fi=(5) +551 16 ++4 16 ++2 24 ++1 8 +fi=(4) +61 141 ++2 188 ++2 119 ++46 9 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +535 1244 +fi=(4) +112 2488 +fi=(5) +535 2488 ++5 2488 +fi=(4) +50 1 +160 1 +51 1 +160 4 ++2 20 ++9 10 +-1 5 ++1 5 +-1 10 +fi=(5) +276 5 +fi=(4) +170 15 +fi=(5) +276 5 ++21 10 ++4 10 ++7 20 +fi=(55) +102 15 +fi=(5) +308 170 +cfi=(6) +cfn=(190) +calls=5 790 +* 2413 +* 35 ++2 15 ++25 30 +fe=(54) +-77 10 +fi=(5) +82 4 ++4 6 ++14 2 +-8 2 ++8 4 ++20 4 ++4 8 +-2 4 +458 20 +fi=(4) +160 17 ++14 2 +fi=(5) +313 1 +-3 2 ++3 3 +-5 159 +fe=(54) +180 3 +fi=(5) +308 24 +fe=(54) + +fl=(19) +fn=(90) +111 12 + +fn=(42) +92 8 ++8 8 +-1 16 +-3 8 ++4 16 ++3 8 +cfn=(46) +calls=8 -53 +* 210 +* 8 + +fn=(46) +50 87 ++11 42 ++3 21 +-3 21 ++3 42 +-3 2 ++3 1 +-3 1 ++3 86 +-15 3 ++20 4 ++1 2 ++2 1 ++1 8 +cfi=(42) +cfn=(132) +calls=1 -22 +* 35 ++2 2 ++2 3 ++2 1 ++3 1 +-3 2 ++4 1 ++2 5 +-2 21 +-1 21 ++3 42 +-29 1 +-1 1 ++1 1 ++1 2 +-2 2 + +fn=(80) +265 4 ++2 2 ++1 4 ++4 33 ++7 84 +-2 56 ++13 1 ++4 2 +-7 14 +-15 44 + +fl=(2) +fn=(112) +588 1 ++2 1 +-2 1 ++3 2 +-1 3 ++1 3 +cfi=(24) +cfn=(114) +calls=1 2151 +* 2138 +* 1 ++2 2 + +fn=(170) +621 2 ++2 4 +cfi=(53) +cfn=(172) +calls=1 362 +* 2598 +* 2 ++4 2 + +fn=(32) +870 1 ++17 1 +-17 10 ++17 1 ++4 1 +2471 1 +870 1 ++21 1 ++1 1 +2466 1 +892 1 ++5 1 +2471 1 +897 1 +2464 2 ++7 3 +-4 1 ++4 3 ++2 2 +cfi=(15) +cfn=(34) +calls=1 29 +* 52 +* 4 +cfi=(15) +cfn=(34) +calls=2 29 +* 270 +* 9 ++4 6 +-2 2 ++2 42 ++1 19 +-1 57 ++3 4 ++6 14 ++76 3 ++1 4 +cfi=(16) +cfn=(36) +calls=1 28 +* 31 +* 2 +-56 2 ++7 4 +cfi=(16) +cfn=(36) +calls=1 28 +* 36 +* 2 ++2 3 +2635 3 ++32 3 +907 3 +1108 7 +cfi=(17) +cfn=(38) +calls=1 59 +* 230 ++2 1 +-2 1 ++2 1 ++1 1 ++1 1 ++5 2 +-5 1 ++1 2 ++4 1 +cfi=(17) +cfn=(50) +calls=1 31 +* 33 ++1 2 +879 1 +1147 1 +-3 1 +-5 1 ++1 1 ++2 1 ++5 5 ++56 2 +876 1 +1166 1 ++22 1 ++15 2 +-55 24 +-1 27 ++1 47 +1250 3 ++3 2 ++2 2 ++2 3 ++13 3 ++3 2 +-2 1 ++2 1 +-2 3 +cfi=(21) +cfn=(56) +calls=1 144 +* 50 +* 2 ++7 1 ++3 1 +-5 1 ++3 1 +-3 1 ++5 1 ++1 2 ++4 2 ++2 2 +fi=(3) +33 1 ++9 2 ++6 1 +-2 1 ++2 2 ++15 1 ++5 1 ++3 1 ++2 1 +-3 1 +-3 1 +-3 1 +-14 52 ++13 24 ++1 20 ++10 5 +-26 15 ++16 20 ++10 20 +-26 60 ++26 1 +-26 3 ++33 3 ++20 3 ++1 4 ++1 4 ++1 4 ++2 4 ++5 4 ++1 4 ++1 4 ++6 3 ++5 2 ++7 2 ++1 3 ++18 3 ++5 1 ++2 1 +-2 1 ++2 1 ++2 2 ++2 2 ++1 1 ++2 3 ++10 1 +-8 3 ++8 1 ++5 2 ++1 2 ++2 2 +fe=(2) +1293 2 +cfi=(6) +cfn=(10) +calls=1 939 +* 23 ++3 2 +fi=(22) /build/glibc-S9d2JN/glibc-2.27/elf/setup-vdso.h +24 2 +fe=(2) +1318 1 +cfi=(11) +cfn=(62) +calls=1 45 +* 87 +* 9 +-6 5 +1167 2 ++9 1 +-7 1 +-3 1 ++10 1 ++18 2 +-37 3 ++1 1 +-6 3 ++1 1 +fi=(3) +65 4 ++3 4 +fe=(2) +1203 2 +-1 2 ++1 4 +-1 2 ++2 4 ++1 1 ++3 2 ++1 2 +-1 2 ++1 2 ++1 2 ++1 6 ++1 2 ++31 2 ++1 2 ++1 1 +-6 2 ++1 1 +fi=(3) +71 4 ++1 1 ++1 3 +fe=(2) +1323 2 +cfi=(24) +cfn=(66) +calls=1 678 +* 1744 ++3 3 +cfi=(31) +cfn=(92) +calls=1 49 +* 17 ++7 1 +-7 1 ++2 1 ++5 1 ++3 3 ++1 1 ++3 1 +-3 3 ++1 2 ++3 1 ++5 1 +-7 1 ++7 1 ++1 5 ++17 2 ++1 2 ++5 1 +-3 3 ++2 1 ++1 2 ++5 2 ++1 5 +-1 2 ++3 2 ++1 2 ++5 2 ++6 4 ++1 1 +-2 1 +885 1 +1391 1 +1570 1 +cfi=(32) +cfn=(94) +calls=1 113 +* 4 +* 1 ++8 3 ++3 2 ++4 3 ++5 2 ++1 1 +cfi=(31) +cfn=(96) +calls=1 74 +* 1 ++1 1 ++4 2 ++15 3 ++4 1 +-2 1 ++2 2 ++2 3 ++1 1 +-1 2 ++1 1 +cfn=(98) handle_ld_preload +calls=1 837 +* 2531 +* 1 ++1 4 ++2 2 ++10 3 +cfi=(47) +cfn=(144) +calls=1 27 +* 8 +* 2 ++77 1 +-96 1 ++96 3 ++17 3 ++1 1 +-1 1 ++1 2 +-1 1 ++1 5 +cfi=(48) +cfn=(146) _dl_map_object_deps +calls=1 159 +* 7082 ++1 4 ++5 1 +-3 2 ++3 2 ++1 7 +-1 2 ++1 9 +-1 6 ++4 3 ++1 3 ++1 1 ++2 2 ++1 5 +-1 4 ++1 6 +-1 6 ++47 2 ++2 2 +-1 1 +-1 2 ++2 4 +cfi=(34) +cfn=(168) +calls=1 226 +* 2623 ++10 1 ++1 1 +-1 1 ++1 1 ++1 1 +cfn=(176) init_tls +calls=1 687 +* 542 +* 1 ++2 2 +799 1 +fi=(123) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-osinfo.h +64 2 +fe=(2) +801 1 +fi=(123) +77 1 +fe=(2) +810 1 ++7 1 +-5 1 +1808 2 +2038 3 +2161 3 ++7 1 ++2 3 ++1 1 +-1 2 ++2 10 ++2 4 +-2 8 ++2 4 ++5 8 ++2 8 ++6 4 ++2 8 ++1 24 +cfi=(54) +cfn=(182) +calls=3 148 +* 70957 ++4 10 ++1 2 +cfi=(32) +cfn=(290) +calls=1 887 +* 20 +* 1 +-12 1 ++1 1 +-3 2 ++29 4 ++2 1 ++7 3 +cfi=(32) +cfn=(292) +calls=1 437 +* 149 ++3 2 +-25 4 ++2 2 ++6 1 +-6 1 ++6 1 ++26 3 ++2 4 ++15 1 ++2 1 +-2 2 ++3 1 +-3 1 ++3 1 +-3 1 ++3 3 +cfi=(54) +cfn=(182) +calls=1 148 +* 6191 ++1 4 ++2 2 ++8 1 +cfi=(7) +cfn=(294) +calls=1 260 +* 1 ++4 2 ++20 3 +cfi=(31) +cfn=(92) +calls=1 49 +* 8 ++1 1 +-1 1 ++2 1 +cfi=(31) +cfn=(96) +calls=1 74 +* 1 ++1 1 ++4 1 +cfi=(50) +cfn=(296) +calls=1 326 +* 15 ++5 8 +2094 1 ++13 1 +-9 1 +-4 1 ++10 1 +-6 1 ++6 1 ++3 1 +1753 1 ++1 1 +-1 2 ++1 1 ++2 1 ++2 3 ++2 1 +-4 1 ++4 2 ++14 4 ++1 2 ++1 3 +-64 5 ++1 1 +-1 3 ++4 3 ++1 1 ++1 2 ++1 2 ++32 2 +2565 3 + +fn=(52) +784 4 ++1 4 + +fn=(98) +837 8 ++1 1 +-1 1 +-75 1 ++86 1 +-86 4 ++80 2 ++3 3 +cfi=(33) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/strcspn.S +cfn=(100) strcspn +calls=1 30 +* 218 +* 1 ++1 3 ++9 1 +121 1 +857 2 +121 2 +859 2 +-97 5 +-10 1 ++4 1 ++1 1 ++1 1 ++2 1 ++2 1 +cfi=(34) +cfn=(104) +calls=1 213 +* 2226 +* 1 ++1 3 ++8 4 ++71 2 ++21 9 +-15 4 +cfi=(20) +cfn=(48) +calls=1 129 +* 18 ++1 2 + +fn=(176) +687 1 +-6 1 ++2 2 ++4 1 ++10 4 +cfi=(19) +cfn=(42) +calls=1 92 +* 27 +* 1 ++11 1 +-15 1 ++3 1 ++6 1 ++2 1 +-11 1 ++15 1 ++2 1 +-1 1 ++1 15 ++2 8 ++4 1 ++2 1 +-2 1 +-5 8 ++9 2 ++3 1 +cfi=(32) +cfn=(178) +calls=1 141 +* 66 ++7 1 +cfi=(32) +cfn=(180) +calls=1 332 +* 375 ++1 1 +-1 1 ++1 1 ++6 1 ++3 1 +-3 1 ++3 6 ++3 1 ++2 1 ++1 3 + +fn=(2) +444 9 ++19 4 +fi=(3) +48 1 +fe=(2) +463 1 +fi=(5) +59 3 +fi=(3) +-11 1 +fe=(2) +489 1 +-3 1 +fi=(3) +48 1 ++25 2 +-3 1 +-7 1 ++5 1 ++3 1 ++2 1 +-6 1 ++3 1 +-3 2 +-3 16 ++10 4 +-26 12 ++16 13 ++10 13 +-26 39 ++26 1 +-26 3 ++2 36 ++13 20 ++2 4 ++16 2 ++20 4 ++1 4 ++1 4 ++1 4 ++2 4 ++5 4 ++1 4 ++1 4 ++6 3 ++5 2 ++7 3 ++1 3 ++8 3 ++3 3 ++4 2 ++1 2 +fe=(2) +500 2 +393 1 +507 1 +393 1 +cfi=(6) +cfn=(10) +calls=1 939 +* 23 ++1 2 ++1 2 ++1 2 ++1 2 ++8 1 ++9 1 +-9 3 ++9 1 +-6 1 +-3 1 ++9 1 +cfi=(7) +cfn=(12) +calls=1 88 +* 113796 +* 1 ++9 4 ++3 1 ++4 1 +-4 1 ++4 1 +532 9 +-27 27 +fi=(4) +84 1 ++27 1 +-28 1 ++28 2 ++1 2 +fi=(5) +540 2 +fi=(4) +112 76 +fi=(5) +540 76 ++1 39 +fi=(4) +111 39 +fi=(5) +541 39 +fi=(4) +111 39 +fi=(5) +541 39 +fi=(4) +111 39 ++5 2 ++8 1 +fi=(5) +335 1 ++87 1 +fi=(4) +124 2 ++12 1 ++3 1 +-3 1 ++3 1 +-3 1 +fi=(5) +301 1 +fi=(4) +137 1 +fi=(5) +301 1 +fi=(4) +137 1 +fi=(5) +301 1 +fi=(4) +136 8 ++3 8 +-3 8 ++3 8 +-3 8 +fi=(5) +301 8 +fi=(4) +137 8 +fi=(5) +301 8 +fi=(4) +137 8 +fi=(5) +301 8 ++9 27 ++3 9 +-3 18 ++3 27 ++22 54 +fi=(3) +68 4 +fi=(4) ++56 28 +fi=(5) +354 27 +fi=(3) +71 4 ++1 1 ++1 2 +fe=(2) + +fn=(54) +790 4 ++1 4 + +fl=(36) +fn=(158) +44 2 ++3 1 +-3 3 ++3 1 +-3 3 ++3 1 +cfi=(37) +cfn=(120) +calls=1 -8 +* 16 ++1 2 ++2 5 +cfi=(41) +cfn=(130) +calls=1 -16 +* 10 +* 2 ++2 1 ++3 1 +-3 1 ++3 1 ++13 2 +cfi=(46) +cfn=(142) +calls=1 -41 +* 5 ++3 7 +-14 6 +cfi=(42) +cfn=(132) +calls=1 -6 +* 35 +* 2 + +fn=(116) +282 160 ++1 64 +cfi=(21) +cfn=(56) +calls=32 144 +* 852 +* 32 ++1 32 +-1 32 ++3 32 ++2 64 ++6 29 ++1 145 +-3 33 +-4 66 ++1 108 +cfi=(21) +cfn=(56) +calls=36 144 +* 1026 +* 72 ++6 3 +-11 3 ++11 12 + +fl=(48) +fn=(150) +60 4 ++7 2 +-4 6 ++1 2 +-1 2 ++1 2 +-1 10 +cfi=(24) +cfn=(114) +calls=2 2151 +* 5548 +* 2 ++5 4 + +fn=(146) +159 1 +-1 1 ++1 1 +-1 4 ++1 1 +-1 2 ++1 1 +-1 2 ++1 1 +-1 2 ++1 1 +-8 1 ++8 2 +-14 1 ++6 3 ++24 1 +-16 1 +-16 1 ++1 1 ++1 1 ++6 1 ++24 2 +-28 2 +-2 1 ++31 1 +-33 3 ++2 2 +-1 1 ++1 2 ++6 3 ++24 1 +-24 1 ++24 6 ++4 1 ++19 1 ++2 2 +-14 1 +-1 1 ++13 1 +304 4 +-91 1 +-4 1 ++4 5 +-4 3 ++4 6 ++12 8 ++2 2 ++11 2 +-5 2 +-6 4 ++5 2 ++2 4 ++1 4 ++3 8 +-32 2 ++32 2 ++66 6 +-55 6 +-2 2 ++2 2 +cfi=(34) +cfn=(108) +calls=2 -74 +* 5684 +* 2 ++1 4 ++9 2 ++2 4 ++5 2 ++6 2 ++2 2 +-8 4 ++3 2 ++1 2 ++1 2 ++1 2 ++4 10 ++4 4 ++1 4 +-43 204 ++1 102 ++6 8 +cfi=(24) +cfn=(148) +calls=2 -15 +* 112 +* 10 +434 8 ++2 6 ++3 4 +-1 2 +cfi=(19) +cfn=(46) +calls=2 50 +* 36 +* 2 ++2 2 +-2 2 ++2 2 ++4 8 +-1 2 ++1 2 +cfi=(20) +cfn=(48) +calls=2 129 +* 20 ++1 12 +cfi=(20) +cfn=(48) +calls=2 129 +* 20 ++4 2 +-1 2 ++5 22 +283 147 +460 6 ++4 5 ++11 4 +-1 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++3 1 +-3 1 ++3 2 ++5 7 ++1 1 ++2 5 ++6 2 ++4 3 +-10 6 ++6 6 ++4 9 +-10 9 ++13 2 ++51 3 ++2 1 +-1 1 ++1 2 ++35 7 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 ++4 5 +cfi=(52) +cfn=(166) +calls=1 28 +* 232 ++3 1 ++2 1 ++1 1 ++1 1 +-2 1 ++2 2 ++7 3 ++3 2 ++3 8 +225 8 +-19 4 +461 2 +214 25 ++2 2 ++2 8 ++2 26 +456 9 +-1 4 ++1 9 +199 2 +573 6 + +fl=(42) +fn=(132) +51 14 ++3 7 +-6 84 ++6 7 ++5 70 ++2 49 +-7 12 + +fl=(12) +fn=(22) +31 7 ++8 1 +-6 2 ++7 1 + +fl=(33) +fn=(100) +30 1 ++7 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 33 ++3 2 ++7 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++9 3 ++12 1 ++2 1 ++1 1 ++1 1 +-4 11 ++2 11 ++1 11 ++1 11 ++2 12 ++1 12 ++1 12 ++2 12 ++1 12 ++1 12 ++2 12 ++1 12 ++1 12 ++2 1 ++1 1 ++1 1 ++2 1 ++7 1 ++4 1 + +fl=(23) +fn=(64) +78 4 ++1 1 + +fl=(103) +fn=(374) +30 8 ++20 3 +-3 6 ++3 4 ++3 2 +cfi=(2) +cfn=(52) +calls=1 784 +* 2 ++2 1 ++3 2 ++2 8 ++8 1 +-3 1 ++8 1 +-5 6 ++7 8 ++2 8 ++2 8 ++1 4 ++1 4 ++4 4 +-12 12 ++14 6 ++1 4 ++6 3 +cfi=(52) +cfn=(166) +calls=1 -66 +* 253 ++10 2 +cfi=(2) +cfn=(54) +calls=1 790 +* 2 ++5 6 ++2 1 ++2 3 +-2 3 ++2 9 ++3 8 ++3 12 ++4 4 ++11 2 ++1 2 +-1 2 ++2 2 +-2 2 ++2 2 ++1 14 ++1 2 +cob=(4) +cfi=(84) +cfn=(398) +calls=1 0 +* 95 +cob=(5) +cfi=(94) +cfn=(376) +calls=1 0 +* 95 +* 2 +-1 6 ++5 4 ++1 6 +cob=(2) +cfi=(18) +cfn=(414) +calls=1 0 +* 3 +cob=(2) +cfi=(18) +cfn=(396) +calls=1 0 +* 3 ++6 24 ++16 8 +-56 10 ++62 6 ++6 2 ++7 8 +-90 7 ++26 6 + +fl=(13) +fn=(28) +79 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 14 ++2 14 ++2 14 ++31 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 8 ++2 8 ++4 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++5 48 + +totals: 10611254 diff --git a/front/callgrind-front/callgrind-front/tests/callgrind.out.2322 b/front/callgrind-front/callgrind-front/tests/callgrind.out.2322 new file mode 100644 index 0000000..4e62ed1 --- /dev/null +++ b/front/callgrind-front/callgrind-front/tests/callgrind.out.2322 @@ -0,0 +1,5726 @@ +# callgrind format +version: 1 +creator: callgrind-3.13.0 +pid: 2322 +cmd: ./test +part: 1 + + +desc: I1 cache: +desc: D1 cache: +desc: LL cache: + +desc: Timerange: Basic block 0 - 25380 +desc: Trigger: Program termination + +positions: line +events: Ir +summary: 117143 + + +ob=(3) /lib/x86_64-linux-gnu/libc-2.27.so +fl=(97) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/bsd-_setjmp.S +fn=(360) _setjmp +30 1 ++2 1 +cfi=(98) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/setjmp.S +cfn=(362) __sigsetjmp +calls=1 -6 +* 27 + +fl=(98) +fn=(362) +26 1 ++9 1 ++1 2 ++1 1 ++4 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++2 1 ++1 1 ++1 1 ++2 2 ++2 1 ++8 1 +cfi=(99) /build/glibc-S9d2JN/glibc-2.27/setjmp/sigjmp.c +cfn=(364) __sigjmp_save +calls=1 -34 +* 8 + +fl=(66) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/ifunc-avx2.h +fn=(234) wcschr +32 2 +-2 2 ++2 4 +-2 6 +fi=(108) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcschr.c ++1 2 +fe=(66) + +fn=(220) wmemchr +32 2 +-2 2 ++2 4 +-2 6 +fi=(109) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wmemchr.c ++1 2 +fe=(66) + +fn=(268) wcslen +32 1 +-2 1 ++2 2 +-2 3 +fi=(110) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcslen.c +-1 1 +fe=(66) + +fl=(69) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncmp.c +fn=(228) strncmp +38 4 ++1 3 ++9 1 + +fl=(103) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_finalize.c +fn=(384) __cxa_finalize +30 4 ++3 2 +-3 10 ++3 2 +-3 2 ++3 10 ++3 6 ++4 14 +-4 6 ++58 10 ++4 12 +-4 6 ++12 4 ++1 4 +cfi=(104) /build/glibc-S9d2JN/glibc-2.27/nptl/unregister-atfork.c +cfn=(386) __unregister_atfork +calls=2 -79 +* 32 ++2 8 ++1 16 + +fl=(89) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strrchr-avx2.S +fn=(324) __strrchr_avx2 +43 1 ++1 1 ++2 1 ++1 1 ++3 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++12 1 ++1 1 +216 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 + +fl=(56) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memmove.h +fn=(248) memcpy@@GLIBC_2.14 +44 5 ++4 2 +-1 2 ++12 2 ++2 5 + +fn=(196) memmove +44 10 ++4 4 +-1 4 ++12 4 ++2 10 + +fn=(222) mempcpy +44 5 ++4 2 +-1 2 ++12 2 ++2 5 + +fl=(90) /build/glibc-S9d2JN/glibc-2.27/ctype/ctype-info.c +fn=(326) __ctype_init +31 5 ++2 1 ++2 1 +-4 1 ++4 1 +-4 1 ++2 3 ++2 2 ++1 1 + +fl=(88) /build/glibc-S9d2JN/glibc-2.27/misc/init-misc.c +fn=(320) __init_misc +31 2 +-1 3 ++1 4 ++2 3 +cfi=(89) +cfn=(324) +calls=1 +10 +* 27 +* 1 ++4 5 ++1 3 ++2 4 + +fl=(82) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/unix/sysv/linux/x86/gettimeofday.c +fn=(286) gettimeofday +42 2 +fi=(64) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/generic/dl-hash.h ++2 1 ++1 1 +fe=(82) +-3 3 +fi=(64) ++1 1 ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fe=(82) +-25 6 +cfi=(65) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-vdso.c +cfn=(216) _dl_vdso_vsym +calls=1 -17 +* 17 +* 5 + +fl=(59) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-strcasecmp.h +fn=(262) strcasecmp_l +32 5 +fi=(78) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcasecmp_l.c +-1 1 +fe=(59) + +fn=(282) strncasecmp_l +32 5 +fi=(81) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncase_l.c +-1 1 +fe=(59) + +fn=(202) strcasecmp +32 5 +fi=(60) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcasecmp.c +-1 1 +fe=(59) + +fn=(240) strncasecmp +32 5 +fi=(73) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncase.c +-1 1 +fe=(59) + +fl=(71) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memset.h +fn=(232) memset +42 5 ++4 2 +-1 4 ++12 2 ++2 5 + +fl=(95) /build/glibc-S9d2JN/glibc-2.27/csu/../csu/libc-start.c +fn=(342) (below main) +137 8 ++4 1 +-4 2 ++4 2 ++98 1 +-98 1 ++98 1 ++1 4 +cfi=(96) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_atexit.c +cfn=(344) __cxa_atexit +calls=1 65 +* 65 ++22 4 ++3 2 ++1 5 +cob=(5) /home/osboxes/test +cfi=(94) ??? +cfn=(348) __libc_csu_init +calls=1 0 +* 57 ++4 4 ++15 2 ++12 2 +cfi=(97) +cfn=(360) +calls=1 30 +* 29 ++1 2 ++5 2 ++1 2 ++3 2 ++3 6 +cob=(5) +cfi=(94) +cfn=(366) main +calls=1 0 +* 12 ++34 2 +cfi=(100) /build/glibc-S9d2JN/glibc-2.27/stdlib/exit.c +cfn=(368) exit +calls=1 139 +* 1054 + +fl=(91) /build/glibc-S9d2JN/glibc-2.27/libio/vtables.c +fn=(328) check_stdfiles_vtables +84 4 ++1 3 ++1 3 ++2 1 + +fl=(57) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-unaligned-ssse3.h +fn=(272) stpncpy +33 4 +fi=(79) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/stpncpy.c +-2 1 +fe=(57) + +fn=(244) strcpy +33 4 +fi=(74) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcpy.c +-4 1 +fe=(57) + +fn=(198) strncpy +33 4 +fi=(58) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncpy.c +-4 1 +fe=(57) + +fn=(276) stpcpy +33 4 +fi=(80) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/stpcpy.c +* 1 +fe=(57) + +fn=(206) strcat +33 4 +fi=(61) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcat.c +-4 1 +fe=(57) + +fl=(63) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/unix/sysv/linux/x86/time.c +fn=(212) time +43 2 +fi=(64) ++1 1 ++1 1 +fe=(63) +-2 4 +fi=(64) ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fe=(63) +-24 6 +cfi=(65) +cfn=(216) +calls=1 -18 +* 17 +* 5 + +fl=(67) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memcmp.h +fn=(224) bcmp +33 5 +-1 2 ++2 2 ++1 3 +fi=(68) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memcmp.c +-6 1 +fe=(67) + +fl=(76) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/ifunc-wmemset.h +fn=(252) wmemset +32 4 +-2 2 ++2 4 +-2 4 ++5 2 +-1 8 +fi=(111) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wmemset.c +-3 2 +fe=(76) + +fl=(105) /build/glibc-S9d2JN/glibc-2.27/libio/genops.c +fn=(418) _IO_flush_all_lockp +749 11 ++5 4 ++1 11 ++3 1 +-8 1 ++5 1 ++3 1 +-3 1 ++3 1 +fi=(106) /build/glibc-S9d2JN/glibc-2.27/libio/libioP.h +870 2 +fe=(105) +762 1 +fi=(106) +870 2 +fe=(105) +-98 6 +-14 3 ++16 3 +-16 6 ++3 3 +-1 3 ++1 3 ++3 22 ++14 9 ++1 3 ++4 12 +-29 4 + +fn=(416) _IO_cleanup +926 2 ++3 1 +-3 8 ++3 1 +cfn=(418) +calls=1 749 +* 114 +-80 1 ++80 1 +-80 2 ++1 11 ++3 1 +-3 1 ++3 1 +-3 1 ++3 1 +fi=(106) ++17 5 +fe=(105) ++31 3 +-48 9 ++9 9 ++2 6 ++30 1 ++11 9 ++1 2 ++35 12 +-92 4 + +fl=(96) +fn=(344) +65 7 +-26 2 ++26 1 +-26 5 ++1 2 +cfn=(346) __new_exitfn +calls=1 +44 +* 29 ++2 2 ++7 2 ++3 1 +-1 1 ++2 1 ++1 1 ++1 4 ++1 1 ++11 6 + +fn=(346) +84 2 +-6 2 ++1 2 +-1 1 ++11 5 ++2 3 +-2 1 ++10 2 +-10 2 ++45 1 ++1 1 ++4 4 +-19 1 ++1 2 + +fl=(101) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_thread_atexit_impl.c +fn=(372) __call_tls_dtors +145 3 ++1 4 ++18 4 + +fl=(72) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-sse4_2.h +fn=(238) strcspn +30 5 +fi=(112) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcspn.c +-1 1 +fe=(72) + +fn=(270) strspn +30 5 +fi=(113) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strspn.c +-1 1 +fe=(72) + +fn=(254) strpbrk +30 5 +fi=(114) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strpbrk.c +-1 1 +fe=(72) + +fl=(107) /build/glibc-S9d2JN/glibc-2.27/posix/../sysdeps/unix/sysv/linux/_exit.c +fn=(424) _Exit +27 2 ++4 1 ++2 2 + +fl=(104) +fn=(386) +28 8 ++8 2 +-8 6 ++11 4 ++82 12 + +fl=(70) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcmp.c +fn=(230) strcmp +38 4 ++9 1 + +fl=(92) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86/cacheinfo.c +fn=(330) init_cacheinfo +488 7 ++14 6 +758 2 ++2 1 ++1 1 ++2 1 +-3 1 ++5 1 +-5 1 ++4 3 ++4 2 ++3 2 ++2 1 ++1 1 ++2 1 +-3 1 ++5 1 +-5 1 ++4 3 ++9 1 ++2 8 +-2 1 ++3 8 +500 1 ++4 1 +-4 1 ++4 1 +cfn=(332) handle_intel.constprop.1 +calls=1 259 +* 469 ++2 1 +-2 1 ++2 1 +cfn=(332) +calls=1 259 +* 515 ++5 1 +-5 1 ++5 1 +cfn=(332) +calls=1 259 +* 542 ++8 1 +-8 1 ++8 1 ++11 1 +-20 1 ++25 3 ++4 2 ++8 6 ++3 2 ++9 6 ++14 2 ++4 1 ++3 1 ++1 1 +-4 1 ++3 1 +-3 1 ++3 1 ++6 8 +-39 3 ++3 9 ++6 6 +-6 3 ++6 2 ++3 20 ++5 2 ++4 1 ++1 1 +-1 3 +691 4 ++1 5 ++4 2 ++59 2 +592 2 ++8 1 ++2 1 +-2 6 ++2 4 +-2 1 ++4 1 ++23 2 +-25 2 ++2 6 ++2 6 ++3 2 ++1 8 ++2 4 ++3 2 ++5 1 ++2 2 ++1 1 +-1 1 ++2 1 +-2 1 ++1 2 ++27 2 ++1 1 ++1 2 ++2 1 +-1 1 ++1 1 +-24 3 ++4 2 ++3 1 ++2 4 ++1 1 ++5 2 + +fn=(334) intel_check_word.isra.0 +132 12 ++6 6 +-10 18 ++10 6 +-10 6 ++10 6 +-10 6 ++10 12 +-10 6 ++10 6 ++2 6 +-2 6 ++2 18 +250 12 +140 24 ++2 15 ++2 30 ++8 30 ++51 24 ++22 12 +fi=(93) /build/glibc-S9d2JN/glibc-2.27/string/../bits/stdlib-bsearch.h +28 12 +-1 24 ++4 24 ++1 12 +fe=(92) ++87 24 +fi=(93) +-88 138 ++1 69 +fe=(92) ++87 138 ++3 81 +fi=(93) +-93 252 ++8 15 +-8 36 +fe=(92) +134 3 +255 36 +-91 9 ++3 9 +-6 13 ++3 4 ++9 4 ++5 14 ++1 10 ++17 5 +-32 15 ++3 15 ++4 14 ++2 28 ++2 14 ++2 8 ++4 3 ++2 6 ++2 3 ++2 3 +-2 3 ++2 6 +-2 3 ++3 9 +-2 12 ++2 6 +-24 2 ++7 2 ++2 4 + +fn=(332) +259 21 ++2 3 +-2 9 ++5 9 ++8 3 ++1 3 +-3 3 ++5 12 ++6 6 ++5 3 +-5 9 ++5 3 ++2 3 ++1 3 +-1 3 ++5 18 +cfn=(334) +calls=3 132 +* 1035 ++2 6 ++3 21 +cfn=(334) +calls=3 132 +* 314 ++2 6 ++19 33 + +fl=(99) +fn=(364) +29 1 +-1 2 ++1 2 ++5 3 + +fl=(85) /build/glibc-S9d2JN/glibc-2.27/csu/../csu/init-first.c +fn=(314) _init +52 8 ++3 3 ++14 1 +fi=(86) /build/glibc-S9d2JN/glibc-2.27/csu/../sysdeps/generic/dl-hash.h +-25 1 +fe=(85) ++23 1 ++1 1 +fi=(86) +-23 1 +fe=(85) ++24 1 +fi=(87) /build/glibc-S9d2JN/glibc-2.27/csu/../sysdeps/unix/sysv/linux/x86_64/init-first.c +-33 4 +fi=(86) ++7 1 ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fi=(87) +-31 2 ++2 2 +-2 1 ++2 2 +cfi=(65) +cfn=(216) +calls=1 -13 +* 17 ++2 1 ++4 1 +-4 1 ++4 1 +-4 1 ++1 2 ++1 1 ++2 1 +cfi=(65) +cfn=(216) +calls=1 -19 +* 17 +fe=(85) ++37 3 +fi=(87) +-36 2 ++1 1 +fe=(85) ++35 1 +cfi=(88) +cfn=(320) +calls=1 -50 +* 52 ++3 1 +cfi=(90) +cfn=(326) +calls=1 -53 +* 16 ++5 6 +-27 1 +-7 1 ++7 4 + +fl=(100) +fn=(370) __run_exit_handlers +40 9 ++5 1 +-5 1 ++5 2 ++11 14 ++3 2 ++2 5 ++16 2 ++35 6 ++2 2 +-44 6 ++2 1 ++1 1 +-1 1 ++4 4 ++1 6 ++29 1 +-3 1 ++5 1 +-2 2 ++2 2 +cob=(1) /lib/x86_64-linux-gnu/ld-2.27.so +cfi=(102) /build/glibc-S9d2JN/glibc-2.27/elf/dl-fini.c +cfn=(374) _dl_fini +calls=1 -78 +* 722 ++1 1 ++11 1 ++1 1 +-1 1 ++1 1 ++5 4 +-73 1 ++12 1 ++1 4 ++63 2 ++1 11 +cfi=(105) +cfn=(416) +calls=1 926 +* 206 +* 3 ++2 2 +cfi=(107) +cfn=(424) +calls=1 27 +* 5 +-86 1 +cfi=(101) +cfn=(372) +calls=1 +99 +* 11 +* 1 + +fn=(368) +139 1 +-1 1 ++1 3 +cfn=(370) +calls=1 -99 +* 1049 + +fl=(75) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcsnlen.c +fn=(250) wcsnlen +40 1 +-2 1 ++2 2 +-2 2 ++11 1 + +fl=(77) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strchr.c +fn=(256) index +40 2 +-2 1 ++2 2 +-2 2 ++11 1 + +fl=(62) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-avx2.h +fn=(258) strlen +32 1 +-2 1 ++2 2 +-2 3 +fi=(115) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strlen.c +-1 1 +fe=(62) + +fn=(280) strchrnul +32 1 +-2 1 ++2 2 +-2 3 +fi=(116) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strchrnul.c ++1 1 +fe=(62) + +fn=(236) strnlen +32 2 +-2 2 ++2 4 +-2 6 +fi=(117) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strnlen.c ++1 2 +fe=(62) + +fn=(260) memrchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(118) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memrchr.c +-1 1 +fe=(62) + +fn=(218) rawmemchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(119) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/rawmemchr.c ++1 1 +fe=(62) + +fn=(210) rindex +32 1 +-2 1 ++2 2 +-2 3 +fi=(120) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strrchr.c +-2 1 +fe=(62) + +fn=(266) memchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(121) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memchr.c +-1 1 +fe=(62) + +fl=(65) +fn=(216) +25 20 ++1 8 ++4 8 ++18 24 +-21 4 ++20 4 + +ob=(2) ??? +fl=(18) ??? +fn=(304) 0x0000000004a2c520 +0 6 + +fn=(404) 0x0000000004a2c560 +0 1 +cob=(3) +cfi=(103) +cfn=(384) +calls=1 30 +0 74 + +fn=(414) 0x0000000004a2c7a8 +0 3 + +fn=(88) 0x0000000004000f00 +0 3 +cob=(1) +cfi=(19) /build/glibc-S9d2JN/glibc-2.27/elf/dl-minimal.c +cfn=(90) free +calls=3 111 +0 12 + +fn=(382) 0x00000000001084e0 +0 1 +cob=(3) +cfi=(103) +cfn=(384) +calls=1 30 +0 74 + +fn=(396) 0x00000000001086a4 +0 3 + +fn=(350) 0x00000000001084b8 +0 6 + +ob=(5) +fl=(94) +fn=(390) 0x0000000000000520 +0 8 + +fn=(354) 0x00000000000005f0 +0 17 + +fn=(376) 0x00000000000005b0 +0 8 +cob=(2) +cfi=(18) +cfn=(382) +calls=1 0 +0 75 +0 1 +cfn=(390) +calls=1 0 +0 8 +0 3 + +fn=(366) +0 12 + +fn=(340) _start +0 11 +cob=(3) +cfi=(95) +cfn=(342) +calls=1 137 +0 1272 + +fn=(348) +0 15 +cob=(2) +cfi=(18) +cfn=(350) +calls=1 0 +0 6 +0 8 +cfn=(354) +calls=1 0 +0 17 +0 11 + +ob=(1) +fl=(29) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/../strchr.S +fn=(84) index +24 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 4 ++4 4 ++1 4 ++1 4 ++1 4 ++2 4 ++4 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++52 2 ++4 2 ++1 2 ++1 2 ++1 2 ++2 2 + +fl=(36) /build/glibc-S9d2JN/glibc-2.27/elf/dl-misc.c +fn=(158) _dl_sysdep_read_whole_file +44 2 ++3 1 +-3 3 ++3 1 +-3 3 ++3 1 +cfi=(37) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c +cfn=(120) open +calls=1 -8 +* 16 ++1 2 ++2 5 +cfi=(41) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/fxstat.c +cfn=(130) _fxstat +calls=1 -16 +* 10 +* 2 ++2 1 ++3 1 +-3 1 ++3 1 ++13 2 +cfi=(46) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/close.c +cfn=(142) close +calls=1 -41 +* 5 ++3 7 +-14 6 +cfi=(42) /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/sysv/linux/mmap64.c +cfn=(132) mmap +calls=1 -6 +* 35 +* 2 + +fn=(116) _dl_name_match_p +282 150 ++1 60 +cfi=(21) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/strcmp.S +cfn=(56) strcmp +calls=30 144 +* 810 +* 30 ++1 30 +-1 30 ++3 30 ++2 60 ++6 27 ++1 135 +-3 31 +-4 62 ++1 102 +cfi=(21) +cfn=(56) +calls=34 144 +* 984 +* 68 ++6 3 +-11 3 ++11 12 + +fl=(48) /build/glibc-S9d2JN/glibc-2.27/elf/dl-deps.c +fn=(146) _dl_map_object_deps +159 1 +-1 1 ++1 1 +-1 4 ++1 1 +-1 2 ++1 1 +-1 2 ++1 1 +-1 2 ++1 1 +-8 1 ++8 2 +-14 1 ++6 3 ++24 1 +-16 1 +-16 1 ++1 1 ++1 1 ++6 1 ++24 2 +-28 2 +-2 1 ++31 1 +-33 3 ++2 2 +-1 1 ++1 2 ++6 3 ++24 1 +-24 1 ++24 6 ++4 1 ++19 1 ++2 2 +-14 1 +-1 1 ++13 1 +304 4 +-91 1 +-4 1 ++4 5 +-4 3 ++4 6 ++12 8 ++2 2 ++11 2 +-5 2 +-6 4 ++5 2 ++2 4 ++1 4 ++3 8 +-32 2 ++32 2 ++66 6 +-55 6 +-2 2 ++2 2 +cfi=(34) /build/glibc-S9d2JN/glibc-2.27/elf/dl-error-skeleton.c +cfn=(108) _dl_catch_exception +calls=2 -74 +* 5696 +* 2 ++1 4 ++9 2 ++2 4 ++5 2 ++6 2 ++2 2 +-8 4 ++3 2 ++1 2 ++1 2 ++1 2 ++4 10 ++4 4 ++1 4 +-43 192 ++1 96 ++6 8 +cfi=(24) /build/glibc-S9d2JN/glibc-2.27/elf/dl-load.c +cfn=(148) _dl_dst_count +calls=2 -15 +* 112 +* 10 +434 8 ++2 6 ++3 4 +-1 2 +cfi=(19) +cfn=(46) malloc +calls=2 50 +* 36 +* 2 ++2 2 +-2 2 ++2 2 ++4 8 +-1 2 ++1 2 +cfi=(20) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S +cfn=(48) memcpy +calls=2 129 +* 20 ++1 12 +cfi=(20) +cfn=(48) +calls=2 129 +* 20 ++4 2 +-1 2 ++5 22 +283 138 +460 6 ++4 5 ++11 4 +-1 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++3 1 +-3 1 ++3 2 ++5 7 ++1 1 ++2 5 ++6 2 ++4 3 +-10 6 ++6 6 ++4 9 +-10 9 ++13 2 ++51 3 ++2 1 +-1 1 ++1 2 ++35 7 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 ++4 5 +cfi=(52) /build/glibc-S9d2JN/glibc-2.27/elf/dl-sort-maps.c +cfn=(166) _dl_sort_maps +calls=1 28 +* 232 ++3 1 ++2 1 ++1 1 ++1 1 +-2 1 ++2 2 ++7 3 ++3 2 ++3 8 +225 8 +-19 4 +461 2 +214 25 ++2 2 ++2 8 ++2 26 +456 9 +-1 4 ++1 9 +199 2 +573 6 + +fn=(150) openaux +60 4 ++7 2 +-4 6 ++1 2 +-1 2 ++1 2 +-1 10 +cfi=(24) +cfn=(114) _dl_map_object +calls=2 2151 +* 5560 +* 2 ++5 4 + +fl=(7) /build/glibc-S9d2JN/glibc-2.27/elf/../elf/dl-sysdep.c +fn=(12) _dl_sysdep_start +88 8 ++25 1 +-1 1 ++1 157 ++6 1 +-3 1 ++1 1 +-4 1 ++3 1 ++3 4 ++1 2 +-1 12 +-29 1 +-1 10 ++30 2 ++1 108 ++3 1 +-4 74 ++62 1 +-62 1 ++63 1 +-1 1 +-62 3 ++34 1 +-34 2 ++35 1 +-35 2 ++46 1 +-46 1 ++47 1 +-1 1 +-46 3 ++40 1 +-40 1 ++41 1 +-1 1 +-40 3 ++37 1 +-37 2 ++38 1 +-38 3 ++13 1 +-13 2 ++14 1 +-14 2 ++10 1 +-10 2 ++11 1 +-11 2 ++7 1 +-7 4 +224 1 +cfi=(9) /build/glibc-S9d2JN/glibc-2.27/elf/dl-tunables.c +cfn=(16) __GI___tunables_init +calls=1 +65 +* 19077 +fi=(11) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-sysdep.c +35 2 +cfi=(12) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/x86_64/brk.c +cfn=(22) brk +calls=1 -4 +* 11 +fi=(8) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/cpu-features.c +210 1 +-12 1 ++1 1 ++11 1 ++3 1 +-3 1 ++3 5 +381 3 ++1 1 ++3 2 ++1 1 ++6 1 ++5 2 +-3 1 ++3 1 +-4 1 ++4 1 +cfi=(9) +cfn=(26) __tunable_get_val +calls=1 -24 +* 16 ++2 4 +cfi=(9) +cfn=(26) +calls=1 -26 +* 18 +* 1 ++2 3 +-2 1 ++2 1 +cfi=(9) +cfn=(26) +calls=1 -28 +* 18 +* 1 ++2 3 +-2 1 ++2 1 +cfi=(9) +cfn=(26) +calls=1 -30 +* 18 ++12 1 +-12 1 ++11 1 +-11 1 ++12 1 +fe=(7) +236 1 +cfi=(13) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/../strlen.S +cfn=(28) strlen +calls=1 79 +* 16 +* 1 ++2 2 +cfi=(14) /build/glibc-S9d2JN/glibc-2.27/elf/../misc/sbrk.c +cfn=(30) sbrk +calls=1 32 +* 17 +* 3 ++12 3 ++3 5 +cfi=(2) /build/glibc-S9d2JN/glibc-2.27/elf/rtld.c +cfn=(32) dl_main +calls=1 870 +* 92752 ++1 1 ++1 8 +fi=(8) +419 3 ++28 2 +-9 3 ++2 4 ++1 2 ++2 4 ++1 2 +219 6 +cfn=(24) get_common_indeces.constprop.1 +calls=1 48 +* 87 +37 2 ++1 2 ++1 6 +224 4 +327 4 ++7 6 +217 3 ++9 2 ++1 1 +-1 1 ++1 6 ++46 3 ++22 2 ++10 5 ++13 3 +-13 2 +fe=(7) + +fn=(294) _dl_sysdep_start_cleanup +260 1 + +fl=(30) /build/glibc-S9d2JN/glibc-2.27/string/strdup.c +fn=(86) strdup +40 12 ++1 3 +cfi=(13) +cfn=(28) +calls=3 +38 +* 84 +* 3 ++1 6 +cfi=(19) +cfn=(46) +calls=3 +8 +* 54 +* 3 ++2 6 ++4 3 +-1 6 ++1 6 +-1 6 +cfi=(20) +cfn=(48) +calls=3 +82 +* 38 + +fl=(52) +fn=(166) +28 16 ++2 2 +-2 2 ++2 2 ++92 10 +-88 10 ++1 4 +-1 2 +-1 2 ++1 8 ++1 2 +cfi=(28) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S +cfn=(76) memset +calls=2 +74 +* 30 +* 32 ++4 4 ++3 2 +-3 4 ++1 6 ++2 2 +-7 4 ++4 8 ++3 4 +-3 8 ++1 12 ++2 4 ++12 36 ++2 12 ++1 8 +-1 6 ++1 6 ++2 18 ++1 12 ++58 24 +cfi=(28) +cfn=(76) +calls=4 -9 +* 64 +* 16 +-28 24 +-36 12 ++61 28 +-25 9 +-44 12 ++69 2 ++7 16 + +fl=(32) /build/glibc-S9d2JN/glibc-2.27/elf/../elf/dl-tls.c +fn=(94) _dl_count_modids +113 2 ++1 2 + +fn=(164) _dl_next_tls_modid +51 4 ++48 1 ++4 1 + +fn=(178) _dl_determine_tlsoffset +141 1 +-6 5 ++6 2 ++3 2 ++36 3 ++2 4 +-2 1 +-2 1 +-40 1 +-1 1 +-1 2 ++69 2 ++3 2 +-3 5 ++2 2 ++10 1 +-37 2 ++25 1 +-25 2 ++5 1 +-1 1 ++5 2 +-4 1 +-1 2 ++3 2 ++2 3 +-9 5 ++93 1 +-53 1 ++1 1 ++52 1 +-1 1 ++1 4 + +fn=(292) _dl_allocate_tls_init +437 8 ++1 1 +-1 1 ++1 1 ++4 1 ++6 2 +-6 1 ++6 1 ++12 1 +-15 1 ++39 1 +-24 1 +-16 2 ++21 9 ++6 15 ++3 1 ++1 2 ++6 3 ++3 1 +-2 1 ++6 1 +-6 1 ++2 1 ++4 1 +-4 2 ++3 1 +-3 1 ++1 1 ++2 1 ++4 2 ++1 4 ++2 2 ++1 2 ++12 1 +-3 1 ++3 2 +cfi=(20) +cfn=(74) mempcpy +calls=1 116 +* 12 +* 5 +cfi=(28) +cfn=(76) +calls=1 109 +* 33 +* 7 +-42 2 ++52 1 ++4 3 ++3 8 + +fn=(290) _dl_add_to_slotinfo +887 4 ++9 1 +-3 2 ++8 7 ++41 1 ++1 1 ++1 4 + +fn=(180) _dl_allocate_tls_storage +332 1 ++2 1 +-2 2 ++13 1 ++1 2 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 3 ++8 2 +-69 1 ++69 2 ++1 1 ++4 297 ++19 1 +-94 2 ++1 2 +cfi=(19) +cfn=(42) calloc +calls=1 92 +* 27 +* 1 ++1 2 ++3 1 ++6 2 ++89 5 + +fl=(15) /build/glibc-S9d2JN/glibc-2.27/elf/dl-environ.c +fn=(34) _dl_next_ld_env_entry +29 3 ++3 10 ++13 47 +-13 141 ++2 98 ++1 14 ++5 2 +-3 2 ++3 2 ++2 2 ++7 1 + +fl=(16) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/memcmp.S +fn=(36) bcmp +28 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++3 2 ++1 2 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++1 2 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++29 2 ++1 2 ++15 2 ++1 2 + +fl=(1) ??? +fn=(0) 0x0000000000001090 +0 2 +cfi=(2) +cfn=(2) _dl_start +calls=1 444 +0 113650 +0 14 +cfi=(83) /build/glibc-S9d2JN/glibc-2.27/elf/dl-init.c +cfn=(302) _dl_init +calls=1 79 +0 2191 +0 3 +cob=(5) +cfi=(94) +cfn=(340) +calls=1 0 +0 1283 + +fl=(37) +fn=(120) +39 11 +fi=(38) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/open64.c +-3 11 ++3 66 ++8 77 ++2 3 +-2 24 ++2 8 +fe=(37) + +fl=(39) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/read.c +fn=(124) read +27 8 ++1 2 + +fl=(11) +fn=(62) _dl_discover_osversion +45 4 ++2 3 ++85 5 +-45 3 +cfi=(23) /build/glibc-S9d2JN/glibc-2.27/posix/../sysdeps/unix/syscall-template.S +cfn=(64) uname +calls=1 -9 +* 5 +* 1 ++15 1 +-15 1 ++20 1 +-1 1 ++3 12 ++4 3 +-2 6 ++2 10 ++2 1 ++1 2 +-3 4 ++7 3 +-1 3 ++4 3 +-2 3 ++2 10 ++5 2 + +fl=(9) +fn=(16) +289 8 +-9 3 +150 4 +-82 152 ++6 49 +-3 49 ++3 4410 ++4 98 ++5 49 +297 49 +83 49 +297 49 +fi=(10) /build/glibc-S9d2JN/glibc-2.27/elf/dl-tunables.h +121 98 +-1 40 ++1 16 +-1 11 ++1 44 +-1 55 +fe=(9) +330 196 +-12 5390 +fi=(10) +120 1764 ++1 1877 +-1 150 +fe=(9) +312 4361 +68 98 +364 8 + +fn=(26) +373 36 ++4 6 +-4 22 ++4 6 ++22 30 ++2 6 + +fl=(42) +fn=(132) +51 14 ++3 7 +-6 84 ++6 7 ++5 70 ++2 49 +-7 12 + +fl=(102) +fn=(374) +30 8 ++20 3 +-3 6 ++3 4 ++3 2 +cfi=(2) +cfn=(52) rtld_lock_default_lock_recursive +calls=1 784 +* 2 ++2 1 ++3 2 ++2 8 ++8 1 +-3 1 ++8 1 +-5 6 ++7 8 ++2 8 ++2 8 ++1 4 ++1 4 ++4 4 +-12 12 ++14 6 ++1 4 ++6 3 +cfi=(52) +cfn=(166) +calls=1 -66 +* 253 ++10 2 +cfi=(2) +cfn=(54) rtld_lock_default_unlock_recursive +calls=1 790 +* 2 ++5 6 ++2 1 ++2 3 +-2 3 ++2 9 ++3 8 ++3 12 ++4 4 ++11 2 ++1 2 +-1 2 ++2 2 +-2 2 ++2 2 ++1 14 ++1 2 +cob=(4) /usr/lib/valgrind/vgpreload_core-amd64-linux.so +cfi=(84) ??? +cfn=(398) 0x0000000000000600 +calls=1 0 +* 95 +cob=(5) +cfi=(94) +cfn=(376) +calls=1 0 +* 95 +* 2 +-1 6 ++5 4 ++1 6 +cob=(2) +cfi=(18) +cfn=(414) +calls=1 0 +* 3 +cob=(2) +cfi=(18) +cfn=(396) +calls=1 0 +* 3 ++6 24 ++16 8 +-56 10 ++62 6 ++6 2 ++7 8 +-90 7 ++26 6 + +fl=(21) +fn=(56) +144 164 ++1 164 ++2 164 ++1 164 ++21 164 ++1 164 ++1 87 ++1 87 ++1 77 ++1 77 ++1 77 ++1 77 ++21 77 ++1 77 ++1 77 ++1 77 ++1 77 ++1 77 ++1 77 ++5 3 ++1 3 ++9 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 +-7 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 27 ++1 19 ++1 19 ++1 19 ++2 19 ++1 19 ++1 19 ++1 19 ++1 19 ++1 19 +-5 8 ++1 8 ++1 8 ++1 8 ++1 8 ++1 8 ++10 63 ++1 63 ++1 63 ++2 63 ++6 63 ++1 63 ++1 63 ++1 63 ++1 63 ++5 63 ++2 63 ++1 63 ++1 126 ++8 63 ++1 63 ++3 63 ++1 63 ++1 63 ++1 63 ++1 63 ++1 63 +946 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 +1196 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 +1571 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++4 3 ++1 3 ++1 3 ++6 3 ++1 3 ++1 6 ++4 3 ++1 3 ++3 3 ++1 3 ++1 3 ++3 3 ++1 3 ++1 3 ++6 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++72 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++7 1 ++1 1 ++2 1 ++1 1 ++2 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++41 6 ++1 6 ++1 6 ++1 6 ++1 6 ++2 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++4 6 ++1 6 ++1 6 ++6 6 ++1 6 ++1 12 ++4 6 ++1 6 ++3 6 ++1 6 ++1 6 ++3 6 ++1 6 ++1 6 ++6 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++72 5 ++1 5 ++1 5 ++1 5 ++1 5 ++2 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 4 ++1 4 ++1 4 ++1 4 ++1 4 ++2 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 +2200 76 ++2 76 ++1 76 ++1 76 ++1 76 +-3 14 ++1 14 ++1 14 ++1 14 ++1 57 ++5 19 ++6 19 ++1 19 ++8 19 ++1 19 +-16 145 ++6 145 ++1 145 ++8 145 ++1 145 + +fl=(50) /build/glibc-S9d2JN/glibc-2.27/elf/dl-cache.c +fn=(296) _dl_unload_cache +326 4 +-1 1 ++3 2 +cfi=(44) /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/syscall-template.S +cfn=(298) munmap +calls=1 78 +* 5 ++1 1 ++2 2 + +fn=(156) _dl_load_cache_lookup +187 9 ++8 2 ++3 3 ++45 1 ++6 2 ++11 1 +-2 1 +fi=(51) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/dl-procinfo.h +39 1 +fe=(50) +258 2 +fi=(51) +39 3 ++3 3 +cfi=(21) +cfn=(56) +calls=1 144 +* 24 +* 2 +fe=(50) +264 4 +cfi=(9) +cfn=(26) +calls=1 373 +* 18 +* 1 +fi=(26) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/not-errno.h +28 2 +fe=(50) +264 1 +fi=(26) +28 2 +fe=(50) +266 2 +fi=(26) +32 3 +fe=(50) +270 2 ++15 1 +-15 1 ++15 139 +cfn=(162) _dl_cache_libcmp +calls=9 141 +* 642 +* 61 +cfn=(162) +calls=1 141 +* 71 +* 3 +-15 2 ++1 3 +-1 2 ++15 3 +-84 4 +cfi=(36) +cfn=(158) +calls=1 44 +* 107 ++8 1 +-8 1 ++8 4 ++1 7 ++7 1 +-3 1 ++3 3 ++3 1 ++1 2 +-1 1 ++1 1 ++1 8 ++63 3 ++16 2 ++4 2 ++8 3 +cfi=(13) +cfn=(28) +calls=1 79 +* 34 +* 2 ++1 1 +-1 4 ++1 2 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 ++1 2 +cfi=(30) +cfn=(86) +calls=1 40 +* 80 ++1 8 +-19 7 +-12 19 +fi=(51) +42 3 +fe=(50) +297 3 + +fn=(162) +141 20 ++1 22 ++2 196 ++20 96 ++2 174 ++4 39 ++1 39 +-29 78 ++32 3 +-28 2 ++6 1 ++2 1 +-1 1 +-1 2 ++1 1 +-1 1 ++2 3 ++2 3 +-3 1 ++3 1 ++2 2 ++9 27 + +fl=(54) /build/glibc-S9d2JN/glibc-2.27/elf/dl-reloc.c +fn=(182) _dl_relocate_object +148 40 ++15 4 +-15 8 ++15 4 ++1 20 ++6 12 ++6 16 ++1 8 +-19 6 ++22 6 ++7 4 +-32 4 ++32 4 ++44 4 +fi=(5) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86_64/dl-machine.h +76 4 +fe=(54) +231 8 +fi=(5) +76 10 +fe=(54) +258 137 +-99 2 +fi=(5) +481 6 +fe=(54) +159 4 ++99 2 +fi=(4) /build/glibc-S9d2JN/glibc-2.27/elf/do-rel.h +48 2 +fe=(54) +258 2 +fi=(4) +47 2 ++11 2 +-11 2 ++11 2 +-11 2 ++11 2 +fe=(54) +258 2 +-99 2 +fi=(5) +481 6 +fe=(54) +159 4 ++99 2 +fi=(4) +48 2 +fe=(54) +258 2 +fi=(4) +47 2 ++11 2 +-11 2 ++11 2 +-11 2 ++11 2 +fe=(54) +258 4 +fi=(4) +48 4 +fe=(54) +258 4 +fi=(4) +47 4 ++11 4 +-11 4 ++11 4 +-11 4 ++11 4 ++26 6 ++14 12 +-15 12 ++3 24 ++12 6 ++10 8 ++10 18 ++6 5 +-3 10 ++3 5 +fi=(5) +491 3 +fi=(4) +51 3 +fi=(5) +491 3 +fi=(4) +50 6 ++77 408 ++12 204 +-3 306 +fi=(5) +276 102 +fi=(4) +139 102 +-2 102 +-1 102 ++1 102 ++1 102 +-1 204 +fi=(5) +276 102 ++21 204 ++4 204 ++7 408 +fi=(55) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/generic/ldsodefs.h +102 255 +fi=(5) +308 1645 +fi=(4) +138 82 +fi=(5) +308 164 +fi=(4) +138 82 +fi=(5) +308 82 +fi=(4) +138 82 +fi=(5) +308 1148 +cfi=(6) /build/glibc-S9d2JN/glibc-2.27/elf/dl-lookup.c +cfn=(190) _dl_lookup_symbol_x +calls=82 790 +* 45740 +* 492 ++2 255 ++25 612 +fi=(4) +74 4 ++1 7 ++1 78 +fi=(5) +551 39 ++24 78 ++2 39 +cob=(3) +cfi=(82) +cfn=(286) +calls=1 42 +* 77 +cob=(3) +cfi=(59) +cfn=(282) +calls=1 32 +* 6 +cob=(3) +cfi=(62) +cfn=(280) +calls=1 32 +* 8 +cob=(3) +cfi=(57) +cfn=(276) +calls=1 33 +* 5 +cob=(3) +cfi=(57) +cfn=(272) +calls=1 33 +* 5 +cob=(3) +cfi=(72) +cfn=(270) +calls=1 30 +* 6 +cob=(3) +cfi=(66) +cfn=(268) +calls=1 32 +* 8 +cob=(3) +cfi=(62) +cfn=(266) +calls=1 32 +* 8 +cob=(3) +cfi=(59) +cfn=(262) +calls=1 32 +* 6 +cob=(3) +cfi=(62) +cfn=(260) +calls=1 32 +* 8 +cob=(3) +cfi=(62) +cfn=(258) +calls=1 32 +* 8 +cob=(3) +cfi=(77) +cfn=(256) +calls=1 40 +* 8 +cob=(3) +cfi=(72) +cfn=(254) +calls=1 30 +* 6 +cob=(3) +cfi=(76) +cfn=(252) +calls=2 32 +* 26 +cob=(3) +cfi=(75) +cfn=(250) +calls=1 40 +* 7 +cob=(3) +cfi=(56) +cfn=(248) +calls=1 44 +* 16 +cob=(3) +cfi=(57) +cfn=(244) +calls=1 33 +* 5 +cob=(3) +cfi=(59) +cfn=(240) +calls=1 32 +* 6 +cob=(3) +cfi=(72) +cfn=(238) +calls=1 30 +* 6 +cob=(3) +cfi=(62) +cfn=(236) +calls=2 32 +* 16 +cob=(3) +cfi=(66) +cfn=(234) +calls=2 32 +* 16 +cob=(3) +cfi=(71) +cfn=(232) +calls=1 42 +* 18 +cob=(3) +cfi=(70) +cfn=(230) +calls=1 38 +* 5 +cob=(3) +cfi=(69) +cfn=(228) +calls=1 38 +* 8 +cob=(3) +cfi=(67) +cfn=(224) +calls=1 33 +* 13 +cob=(3) +cfi=(56) +cfn=(222) +calls=1 44 +* 16 +cob=(3) +cfi=(66) +cfn=(220) +calls=2 32 +* 16 +cob=(3) +cfi=(62) +cfn=(218) +calls=1 32 +* 8 +cob=(3) +cfi=(63) +cfn=(212) +calls=1 43 +* 77 +cob=(3) +cfi=(62) +cfn=(210) +calls=1 32 +* 8 +cob=(3) +cfi=(57) +cfn=(206) +calls=1 33 +* 5 +cob=(3) +cfi=(59) +cfn=(202) +calls=1 32 +* 6 +cob=(3) +cfi=(57) +cfn=(198) +calls=1 33 +* 5 +cob=(3) +cfi=(56) +cfn=(196) +calls=2 44 +* 32 +-26 39 ++27 39 +fi=(4) +75 121 +fe=(54) +258 2 +fi=(4) +75 14 +fe=(54) +258 14 ++3 16 ++24 4 ++3 8 ++17 12 ++8 20 ++3 4 +-3 4 ++3 4 ++4 8 ++1 12 +cfi=(44) +cfn=(136) mprotect +calls=4 78 +* 20 +* 8 +-14 32 +fi=(5) +131 9 +458 340 +fi=(4) +124 306 ++19 15 +fi=(5) +430 51 ++4 68 ++5 17 ++9 17 +-9 34 ++9 34 +308 34 ++5 17 +-3 34 ++3 132 +-3 162 ++3 243 +-5 21 +fi=(4) +61 4 +-10 2 +-1 4 +fi=(5) +551 16 ++4 16 ++2 24 ++1 8 +fi=(4) +61 141 ++2 188 ++2 119 ++46 9 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +535 1244 +fi=(4) +112 2488 +fi=(5) +535 2488 ++5 2488 +fi=(4) +50 1 +160 1 +51 1 +160 4 ++2 20 ++9 10 +-1 5 ++1 5 +-1 10 +fi=(5) +276 5 +fi=(4) +170 15 +fi=(5) +276 5 ++21 10 ++4 10 ++7 20 +fi=(55) +102 15 +fi=(5) +308 170 +cfi=(6) +cfn=(190) +calls=5 790 +* 2413 +* 35 ++2 15 ++25 30 +fe=(54) +-77 5 +fi=(5) +82 4 ++4 6 ++14 2 +-8 2 ++8 4 ++20 4 ++4 8 +-2 4 +458 20 +fi=(4) +160 17 ++14 2 +fi=(5) +313 1 +-3 2 ++3 3 +-5 159 +fe=(54) +180 3 +fi=(5) +308 24 +fe=(54) + +fl=(19) +fn=(42) +92 8 ++8 8 +-1 16 +-3 8 ++4 16 ++3 8 +cfn=(46) +calls=8 -53 +* 210 +* 8 + +fn=(90) +111 12 + +fn=(46) +50 87 ++11 42 ++3 21 +-3 21 ++3 42 +-3 2 ++3 1 +-3 1 ++3 86 +-15 3 ++20 4 ++1 2 ++2 1 ++1 8 +cfi=(42) +cfn=(132) +calls=1 -22 +* 35 ++2 2 ++2 3 ++2 1 ++3 1 +-3 2 ++4 1 ++2 5 +-2 21 +-1 21 ++3 42 +-29 1 +-1 1 ++1 1 ++1 2 +-2 2 + +fn=(80) strsep +265 4 ++2 2 ++1 4 ++4 33 ++7 84 +-2 56 ++13 1 ++4 2 +-7 14 +-15 44 + +fl=(2) +fn=(98) handle_ld_preload +837 8 ++1 1 +-1 1 +-75 1 ++86 1 +-86 4 ++80 2 ++3 3 +cfi=(33) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/strcspn.S +cfn=(100) strcspn +calls=1 30 +* 218 +* 1 ++1 3 ++9 1 +121 1 +857 2 +121 2 +859 2 +-97 5 +-10 1 ++4 1 ++1 1 ++1 1 ++2 1 ++2 1 +cfi=(34) +cfn=(104) _dl_catch_error +calls=1 213 +* 2226 +* 1 ++1 3 ++8 4 ++71 2 ++21 9 +-15 4 +cfi=(20) +cfn=(48) +calls=1 129 +* 18 ++1 2 + +fn=(176) init_tls +687 1 +-6 1 ++2 2 ++4 1 ++10 4 +cfi=(19) +cfn=(42) +calls=1 92 +* 27 +* 1 ++11 1 +-15 1 ++3 1 ++6 1 ++2 1 +-11 1 ++15 1 ++2 1 +-1 1 ++1 15 ++2 8 ++4 1 ++2 1 +-2 1 +-5 8 ++9 2 ++3 1 +cfi=(32) +cfn=(178) +calls=1 141 +* 66 ++7 1 +cfi=(32) +cfn=(180) +calls=1 332 +* 375 ++1 1 +-1 1 ++1 1 ++6 1 ++3 1 +-3 1 ++3 6 ++3 1 ++2 1 ++1 3 + +fn=(32) +870 1 ++17 1 +-17 10 ++17 1 ++4 1 +2471 1 +870 1 ++21 1 ++1 1 +2466 1 +892 1 ++5 1 +2471 1 +897 1 +2464 2 ++7 3 +-4 1 ++4 3 ++2 2 +cfi=(15) +cfn=(34) +calls=1 29 +* 52 +* 4 +cfi=(15) +cfn=(34) +calls=2 29 +* 270 +* 9 ++4 6 +-2 2 ++2 42 ++1 19 +-1 57 ++3 4 ++6 14 ++76 3 ++1 4 +cfi=(16) +cfn=(36) +calls=1 28 +* 31 +* 2 +-56 2 ++7 4 +cfi=(16) +cfn=(36) +calls=1 28 +* 36 +* 2 ++2 3 +2635 3 ++32 3 +907 3 +1108 7 +cfi=(17) /build/glibc-S9d2JN/glibc-2.27/elf/dl-object.c +cfn=(38) _dl_new_object +calls=1 59 +* 230 ++2 1 +-2 1 ++2 1 ++1 1 ++1 1 ++5 2 +-5 1 ++1 2 ++4 1 +cfi=(17) +cfn=(50) _dl_add_to_namespace_list +calls=1 31 +* 33 ++1 2 +879 1 +1147 1 +-3 1 +-5 1 ++1 1 ++2 1 ++5 5 ++56 2 +876 1 +1166 1 ++22 1 ++15 2 +-55 24 +-1 27 ++1 47 +1250 3 ++3 2 ++2 2 ++2 3 ++13 3 ++3 2 +-2 1 ++2 1 +-2 3 +cfi=(21) +cfn=(56) +calls=1 144 +* 50 +* 2 ++7 1 ++3 1 +-5 1 ++3 1 +-3 1 ++5 1 ++1 2 ++4 2 ++2 2 +fi=(3) /build/glibc-S9d2JN/glibc-2.27/elf/get-dynamic-info.h +33 1 ++9 2 ++6 1 +-2 1 ++2 2 ++15 1 ++5 1 ++3 1 ++2 1 +-3 1 +-3 1 +-3 1 +-14 46 ++13 24 ++1 20 ++10 5 +-26 15 ++16 17 ++10 17 +-26 51 ++26 1 +-26 3 ++33 3 ++20 3 ++1 4 ++1 4 ++1 4 ++2 4 ++5 3 ++1 4 ++1 4 ++6 3 ++12 2 ++1 3 ++18 3 ++5 1 ++2 1 +-2 1 ++2 1 ++2 2 ++2 2 ++1 1 ++2 3 ++10 1 +-8 3 ++8 1 ++5 2 ++1 2 ++2 2 +fe=(2) +1293 2 +cfi=(6) +cfn=(10) _dl_setup_hash +calls=1 939 +* 23 ++3 2 +fi=(22) /build/glibc-S9d2JN/glibc-2.27/elf/setup-vdso.h +24 2 +fe=(2) +1318 1 +cfi=(11) +cfn=(62) +calls=1 45 +* 87 +* 9 +-6 5 +1167 2 ++9 1 +-7 1 +-3 1 ++10 1 ++18 2 +-37 3 ++1 1 +-6 3 ++1 1 +fi=(3) +65 4 ++3 4 +fe=(2) +1203 2 +-1 2 ++1 4 +-1 2 ++2 4 ++1 1 ++3 2 ++1 2 +-1 2 ++1 2 ++1 2 ++1 6 ++1 2 ++31 2 ++1 2 ++1 1 +-6 2 ++1 1 +fi=(3) +71 4 ++1 1 ++1 3 +fe=(2) +1323 2 +cfi=(24) +cfn=(66) _dl_init_paths +calls=1 678 +* 1744 ++3 3 +cfi=(31) /build/glibc-S9d2JN/glibc-2.27/elf/dl-debug.c +cfn=(92) _dl_debug_initialize +calls=1 49 +* 17 ++7 1 +-7 1 ++2 1 ++5 1 ++3 3 ++1 1 ++3 1 +-3 3 ++1 2 ++3 1 ++5 1 +-7 1 ++7 1 ++1 5 ++17 2 ++1 2 ++5 1 +-3 3 ++2 1 ++1 2 ++5 2 ++1 5 +-1 2 ++3 2 ++1 2 ++5 2 ++6 4 ++1 1 +-2 1 +885 1 +1391 1 +1570 1 +cfi=(32) +cfn=(94) +calls=1 113 +* 4 +* 1 ++8 3 ++3 2 ++4 3 ++5 2 ++1 1 +cfi=(31) +cfn=(96) _dl_debug_state +calls=1 74 +* 1 ++1 1 ++4 2 ++15 3 ++4 1 +-2 1 ++2 2 ++2 3 ++1 1 +-1 2 ++1 1 +cfn=(98) +calls=1 837 +* 2531 +* 1 ++1 4 ++2 2 ++10 3 +cfi=(47) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/access.c +cfn=(144) access +calls=1 27 +* 8 +* 2 ++77 1 +-96 1 ++96 3 ++17 3 ++1 1 +-1 1 ++1 2 +-1 1 ++1 5 +cfi=(48) +cfn=(146) +calls=1 159 +* 7067 ++1 4 ++5 1 +-3 2 ++3 2 ++1 7 +-1 2 ++1 9 +-1 6 ++4 3 ++1 3 ++1 1 ++2 2 ++1 5 +-1 4 ++1 6 +-1 6 ++47 2 ++2 2 +-1 1 +-1 2 ++2 4 +cfi=(34) +cfn=(168) _dl_receive_error +calls=1 226 +* 2416 ++10 1 ++1 1 +-1 1 ++1 1 ++1 1 +cfn=(176) +calls=1 687 +* 542 +* 1 ++2 2 +799 1 +fi=(122) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-osinfo.h +64 2 +fe=(2) +801 1 +fi=(122) +77 1 +fe=(2) +810 1 ++7 1 +-5 1 +1808 2 +2038 3 +2161 3 ++7 1 ++2 3 ++1 1 +-1 2 ++2 10 ++2 4 +-2 8 ++2 4 ++5 8 ++2 8 ++6 4 ++2 8 ++1 24 +cfi=(54) +cfn=(182) +calls=3 148 +* 70025 ++4 10 ++1 2 +cfi=(32) +cfn=(290) +calls=1 887 +* 20 +* 1 +-12 1 ++1 1 +-3 2 ++29 4 ++2 1 ++7 3 +cfi=(32) +cfn=(292) +calls=1 437 +* 149 ++3 2 +-25 4 ++2 2 ++6 1 +-6 1 ++6 1 ++26 3 ++2 4 ++15 1 ++2 1 +-2 2 ++3 1 +-3 1 ++3 1 +-3 1 ++3 3 +cfi=(54) +cfn=(182) +calls=1 148 +* 6191 ++1 4 ++2 2 ++8 1 +cfi=(7) +cfn=(294) +calls=1 260 +* 1 ++4 2 ++20 3 +cfi=(31) +cfn=(92) +calls=1 49 +* 8 ++1 1 +-1 1 ++2 1 +cfi=(31) +cfn=(96) +calls=1 74 +* 1 ++1 1 ++4 1 +cfi=(50) +cfn=(296) +calls=1 326 +* 15 ++5 8 +2094 1 ++13 1 +-9 1 +-4 1 ++10 1 +-6 1 ++6 1 ++3 1 +1753 1 ++1 1 +-1 2 ++1 1 ++2 1 ++2 3 ++2 1 +-4 1 ++4 2 ++14 4 ++1 2 ++1 3 +-64 5 ++1 1 +-1 3 ++4 3 ++1 1 ++1 2 ++1 2 ++32 2 +2565 3 + +fn=(52) +784 4 ++1 4 + +fn=(170) version_check_doit +621 2 ++2 4 +cfi=(53) /build/glibc-S9d2JN/glibc-2.27/elf/dl-version.c +cfn=(172) _dl_check_all_versions +calls=1 362 +* 2391 +* 2 ++4 2 + +fn=(112) map_doit +588 1 ++2 1 +-2 1 ++3 2 +-1 3 ++1 3 +cfi=(24) +cfn=(114) +calls=1 2151 +* 2138 +* 1 ++2 2 + +fn=(2) +444 9 ++19 4 +fi=(3) +48 1 +fe=(2) +463 1 +fi=(5) +59 3 +fi=(3) +-11 1 +fe=(2) +489 1 +-3 1 +fi=(3) +48 1 ++25 2 +-3 1 +-7 1 ++5 1 ++3 1 ++2 1 +-6 1 ++3 1 +-3 2 +-3 16 ++10 4 +-26 12 ++16 13 ++10 13 +-26 39 ++26 1 +-26 3 ++2 36 ++13 20 ++2 4 ++16 2 ++20 4 ++1 4 ++1 4 ++1 4 ++2 4 ++5 4 ++1 4 ++1 4 ++6 3 ++5 2 ++7 3 ++1 3 ++8 3 ++3 3 ++4 2 ++1 2 +fe=(2) +500 2 +393 1 +507 1 +393 1 +cfi=(6) +cfn=(10) +calls=1 939 +* 23 ++1 2 ++1 2 ++1 2 ++1 2 ++8 1 ++9 1 +-9 3 ++9 1 +-6 1 +-3 1 ++9 1 +cfi=(7) +cfn=(12) +calls=1 88 +* 112618 +* 1 ++9 4 ++3 1 ++4 1 +-4 1 ++4 1 +532 9 +-27 27 +fi=(4) +84 1 ++27 1 +-28 1 ++28 2 ++1 2 +fi=(5) +540 2 +fi=(4) +112 76 +fi=(5) +540 76 ++1 39 +fi=(4) +111 39 +fi=(5) +541 39 +fi=(4) +111 39 +fi=(5) +541 39 +fi=(4) +111 39 ++5 2 ++8 1 +fi=(5) +335 1 ++87 1 +fi=(4) +124 2 ++12 1 ++3 1 +-3 1 ++3 1 +-3 1 +fi=(5) +301 1 +fi=(4) +137 1 +fi=(5) +301 1 +fi=(4) +137 1 +fi=(5) +301 1 +fi=(4) +136 8 ++3 8 +-3 8 ++3 8 +-3 8 +fi=(5) +301 8 +fi=(4) +137 8 +fi=(5) +301 8 +fi=(4) +137 8 +fi=(5) +301 8 ++9 27 ++3 9 +-3 18 ++3 27 ++22 54 +fi=(3) +68 4 +fi=(4) ++56 28 +fi=(5) +354 27 +fi=(3) +71 4 ++1 1 ++1 2 +fe=(2) + +fn=(54) +790 4 ++1 4 + +fl=(83) +fn=(302) +79 11 ++5 1 +-4 1 ++1 1 ++3 2 ++8 2 ++25 2 ++1 12 ++1 12 +-89 12 ++9 3 +-3 6 ++3 9 ++5 6 ++5 2 ++9 6 +cob=(3) +cfi=(85) +cfn=(314) +calls=1 -6 +* 201 +* 1 ++4 2 ++6 2 ++2 2 +-2 1 ++3 1 +-1 1 ++1 5 ++1 4 +cob=(3) +cfi=(91) +cfn=(328) +calls=1 +12 +* 11 +* 4 +cob=(3) +cfi=(92) +cfn=(330) +calls=1 488 +* 1773 +* 2 +-1 4 ++47 3 ++7 8 +-80 3 +-5 3 +-10 3 ++57 2 +-48 1 +-3 2 ++3 3 ++5 3 ++5 2 ++9 7 +cob=(2) +cfi=(18) +cfn=(304) +calls=1 -58 +* 6 +* 1 ++3 1 ++1 2 ++6 1 ++2 2 +-2 2 ++3 8 ++1 4 +cob=(4) +cfi=(84) +cfn=(308) 0x0000000000000640 +calls=1 -72 +* 17 +-1 5 + +fl=(33) +fn=(100) +30 1 ++7 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 33 ++3 2 ++7 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++9 3 ++12 1 ++2 1 ++1 1 ++1 1 +-4 11 ++2 11 ++1 11 ++1 11 ++2 12 ++1 12 ++1 12 ++2 12 ++1 12 ++1 12 ++2 12 ++1 12 ++1 12 ++2 1 ++1 1 ++1 1 ++2 1 ++7 1 ++4 1 + +fl=(23) +fn=(64) +78 4 ++1 1 + +fl=(31) +fn=(92) +49 8 ++5 6 ++5 2 +-1 1 ++1 2 ++1 2 +-1 1 ++5 1 +-14 4 ++4 8 ++4 1 +-1 1 ++1 4 + +fn=(96) +74 2 + +fl=(12) +fn=(22) +31 7 ++8 1 +-6 2 ++7 1 + +fl=(35) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/setjmp.S +fn=(110) __sigsetjmp +26 3 ++9 3 ++1 6 ++1 3 ++4 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 6 ++2 3 ++1 3 ++1 3 ++2 6 ++2 3 ++4 3 ++1 3 + +fl=(28) +fn=(76) +109 65 ++6 13 ++1 13 ++1 6 ++1 6 ++2 4 ++1 4 ++2 4 ++59 2 ++1 2 ++10 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++2 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 2 ++15 7 ++1 7 ++1 7 ++1 6 ++1 6 ++1 2 ++1 2 ++24 1 ++1 1 ++2 1 ++3 4 ++1 4 ++2 4 ++3 2 ++1 2 ++2 2 + +fl=(13) +fn=(28) +79 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 14 ++2 14 ++2 14 ++31 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 8 ++2 8 ++4 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++5 48 + +fl=(41) +fn=(130) +34 3 +-1 3 ++1 3 ++1 18 ++4 3 + +fl=(14) +fn=(30) +32 4 ++8 6 ++4 2 ++16 5 + +fl=(24) +fn=(114) +2151 21 ++8 3 +-8 6 ++8 3 ++1 12 ++3 42 ++5 49 ++2 21 +cfi=(36) +cfn=(116) +calls=7 282 +* 789 +* 14 ++4 12 ++1 18 ++3 2 ++1 2 ++1 2 +-1 2 ++1 2 +cfi=(21) +cfn=(56) +calls=2 144 +* 48 +* 4 +2462 27 +2196 6 ++10 6 +-53 2 ++89 4 +-2 2 ++2 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 46 +* 4 +2393 5 +cfn=(82) expand_dynamic_string_token +calls=1 375 +* 158 +* 1 +-2 1 ++3 5 ++4 9 +cfn=(118) open_verify.constprop.7 +calls=1 1653 +* 223 ++3 2 +-3 1 ++3 3 ++12 3 ++46 1 ++1 3 +-1 1 ++1 9 +cfn=(126) _dl_map_object_from_fd +calls=1 863 +* 1353 +-1 1 ++1 3 +-1 1 ++1 9 +cfn=(126) +calls=1 863 +* 1702 +* 6 +2242 1 ++4 2 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 +* 1 ++2 1 +-2 1 ++2 1 ++7 4 ++36 12 +cfn=(152) open_path +calls=1 2003 +* 1339 ++6 2 +-6 1 ++6 3 +656 3 +2385 2 ++28 4 ++2 2 +-95 1 +-14 1 ++14 1 ++2 3 ++4 2 +cfi=(50) +cfn=(156) +calls=1 187 +* 1344 ++2 1 +-2 1 ++2 1 ++4 2 ++8 3 ++23 10 +cfn=(118) +calls=1 1653 +* 235 ++4 2 +-4 1 ++4 3 ++1 2 +-88 7 +656 3 +2290 2 ++1 2 +-32 1 ++1 2 +-1 3 ++8 7 +-3 3 +656 3 ++9 3 +2279 3 + +fn=(78) fillin_rpath +444 7 ++2 1 +-2 9 ++4 3 +cfi=(19) +cfn=(80) +calls=1 265 +* 238 +* 3 +cfi=(19) +cfn=(80) +calls=1 265 +* 6 +* 6 ++7 2 ++2 3 +cfn=(82) +calls=1 -82 +* 108 ++4 1 +-4 1 ++4 1 ++5 2 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 ++1 2 ++7 6 ++9 17 ++1 8 ++57 2 +cob=(2) +cfi=(18) +cfn=(88) +calls=1 0 +* 5 +* 1 +-39 2 ++4 7 +-1 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++3 3 ++5 1 ++1 2 +-2 2 ++2 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 12 ++3 1 +-2 1 +-1 1 ++1 1 ++2 1 ++6 4 ++1 17 ++1 1 +-1 3 ++1 1 +-1 14 ++1 8 +-1 1 ++1 1 +-1 3 ++1 1 +-1 2 ++4 1 +-1 1 ++1 1 +-1 1 ++1 1 ++8 1 +-1 1 ++4 3 +-37 2 +-28 1 ++5 4 ++66 1 ++3 9 +-15 2 + +fn=(82) +375 16 +233 4 +375 2 +233 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 70 ++3 4 +400 2 +-11 2 ++11 12 +-11 2 +cfi=(30) +cfn=(86) +calls=2 40 +* 150 + +fn=(148) +230 4 ++3 2 +-3 4 ++7 2 +-7 6 ++3 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 70 ++3 4 ++20 18 + +fn=(66) +678 1 ++13 2 +-13 8 ++13 3 +cfi=(25) /build/glibc-S9d2JN/glibc-2.27/elf/dl-hwcaps.c +cfn=(68) _dl_important_hwcaps +calls=1 42 +* 711 ++5 1 +-5 1 ++5 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-2 1 ++2 2 ++8 1 +-1 1 ++1 4 +-1 3 ++4 4 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++2 1 +-2 2 ++2 1 ++7 1 ++10 1 +-11 1 ++12 1 ++3 1 ++1 1 +-5 1 ++3 1 ++1 1 +-1 1 ++9 1 +-20 1 ++17 1 ++3 1 +-3 17 +cfi=(28) +cfn=(76) +calls=4 109 +* 48 ++3 27 +-12 3 +-2 3 ++10 3 +-7 3 +-1 3 ++4 3 +-1 3 ++1 3 ++1 3 ++3 3 ++1 3 +-4 3 ++4 3 ++14 1 +-11 1 ++6 1 ++1 1 ++5 2 ++2 4 ++2 3 ++38 5 +-19 1 +-2 2 ++2 2 ++21 3 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 +* 8 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 +* 1 ++5 4 +-1 2 ++2 56 +-1 57 ++5 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-2 1 ++2 1 ++6 7 +cfn=(78) +calls=1 444 +* 588 ++3 3 ++6 1 ++4 8 +-37 2 + +fn=(126) +863 22 ++10 2 +-10 2 ++10 2 +-10 6 ++10 2 +cfi=(31) +cfn=(92) +calls=2 49 +* 16 +fi=(40) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/posix/dl-fileid.h +37 6 +fe=(24) +873 2 +fi=(40) +37 2 +cfi=(41) +cfn=(130) +calls=2 -3 +* 20 +* 4 ++4 2 +fe=(24) +889 2 +fi=(40) +40 2 ++1 2 +fe=(24) +889 27 ++1 10 +fi=(40) +49 13 +fe=(24) +1401 18 +907 4 ++24 8 ++10 4 ++22 8 ++32 4 +874 2 +998 14 +cfi=(17) +cfn=(38) +calls=2 59 +* 758 ++1 2 +-1 2 ++1 2 ++11 4 ++5 2 +-5 2 ++1 2 ++5 2 +-5 2 ++1 2 ++2 2 +-2 2 ++2 4 ++1 6 ++20 2 +-2 2 ++2 18 ++8 10 ++97 2 +1031 2 +1140 2 +1037 2 +-1 2 +-5 4 +1140 6 +-96 32 +-1 102 ++1 95 ++6 4 ++5 4 ++1 8 ++11 20 ++5 32 ++9 12 +-1 12 ++1 4 ++1 8 ++2 4 +-2 4 ++1 4 +-1 4 ++3 4 ++4 4 +-7 4 ++3 4 +-1 4 ++5 4 ++1 12 ++5 2 +-1 2 ++1 2 +-15 2 ++14 2 ++1 10 ++10 2 +-10 2 +-1 2 ++1 2 +-15 2 ++14 2 ++1 10 ++10 2 +-44 2 ++1 1 ++46 3 ++4 1 ++1 1 ++2 1 +-1 1 +-1 2 ++1 1 ++3 3 ++1 1 ++3 1 +-3 1 ++7 4 ++6 1 +cfi=(32) +cfn=(164) +calls=1 51 +* 6 +* 2 ++1 1 ++19 4 ++1 4 ++1 2 +-6 4 ++1 2 ++8 8 +1011 2 +1165 2 +1011 2 +1165 2 ++10 4 +fi=(43) /build/glibc-S9d2JN/glibc-2.27/elf/./dl-map-segments.h +50 2 ++6 2 +fe=(24) +1175 8 +fi=(43) +56 6 +fe=(24) +1175 2 +fi=(43) +50 2 +fe=(24) +1175 4 +fi=(43) +56 4 +cfi=(42) +cfn=(132) +calls=2 -5 +* 74 ++4 2 +-4 2 ++4 4 ++3 4 ++1 2 ++2 2 +-2 2 +-1 2 ++3 2 ++14 4 +fi=(45) /build/glibc-S9d2JN/glibc-2.27/elf/./dl-load.h ++10 8 ++1 6 ++2 8 +fi=(43) ++11 16 ++45 4 +-59 20 ++2 12 ++2 18 +cfi=(42) +cfn=(132) +calls=2 -43 +* 66 +* 6 ++16 2 ++2 2 +-2 2 ++1 2 ++2 2 +-1 2 ++1 2 +-1 6 ++8 6 ++3 4 ++8 14 +cfi=(28) +cfn=(76) +calls=2 -22 +* 249 +* 6 ++6 4 ++4 9 +cfi=(42) +cfn=(132) +calls=1 -90 +* 33 ++3 3 +-71 20 +cfi=(44) +cfn=(136) +calls=2 +5 +* 10 +* 6 +fi=(45) ++21 5 ++2 1 +-1 3 ++1 1 +-1 1 ++1 2 +-1 2 ++3 4 +fe=(24) +1187 8 ++9 4 +fi=(3) +42 2 +fe=(24) +1196 2 +fi=(3) +42 2 ++6 2 +-2 2 ++2 4 ++15 2 ++5 2 ++3 2 +-1 2 +-3 2 +-3 36 ++10 8 +-26 24 ++16 35 ++10 35 +-26 105 ++26 2 +-26 6 ++2 90 ++13 40 ++2 8 ++16 4 ++20 7 ++1 8 ++1 8 ++1 8 ++2 8 ++5 8 ++1 7 ++1 8 ++6 6 ++5 4 ++7 4 ++1 6 ++18 6 ++5 1 ++2 1 +-2 1 ++2 1 ++2 2 ++2 2 ++3 6 ++10 1 +-8 4 ++8 1 ++5 2 ++3 4 +fe=(24) +1203 4 ++15 6 ++19 4 ++2 10 ++54 6 ++1 2 ++3 2 +cfi=(46) +cfn=(142) +calls=1 27 +* 5 +* 2 +cfi=(46) +cfn=(142) +calls=1 27 +* 5 +* 4 ++9 4 ++2 6 ++2 2 +-2 2 ++2 2 ++16 4 +cfi=(6) +cfn=(10) +calls=2 939 +* 46 ++4 4 ++1 4 ++17 4 ++1 1 ++8 1 +-5 3 ++5 2 +-5 3 ++5 1 ++10 4 ++10 6 +cfi=(17) +cfn=(50) +calls=2 31 +* 82 ++4 6 +fi=(3) +68 8 ++3 8 ++1 2 ++1 8 +fe=(24) +424 2 + +fn=(152) +2003 8 ++1 1 ++6 1 +-6 1 ++6 1 ++5 11 +-7 1 +-1 1 ++8 7 ++3 3 ++9 4 ++7 3 ++1 1 +-13 3 ++12 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 12 +* 1 ++55 2 +-22 6 +-32 2 ++32 24 +-32 16 ++3 16 ++4 48 +cfi=(20) +cfn=(74) +calls=8 116 +* 101 +* 32 +cfi=(20) +cfn=(74) +calls=8 116 +* 96 ++3 16 ++3 24 ++3 72 +cfn=(118) +calls=8 1653 +* 432 +* 8 ++2 40 ++2 16 ++89 9 +-24 7 ++7 1 +-2 1 ++2 3 ++3 3 +-13 2 +-57 16 ++1 64 ++6 16 ++2 16 +-2 16 ++2 16 +cfi=(49) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/xstat.c +cfn=(154) _xstat +calls=8 34 +* 101 +* 8 ++3 8 +-3 8 ++1 1 ++2 1 +-2 1 ++2 7 +-37 2 ++37 7 +-37 14 + +fn=(118) +1653 120 ++39 10 +-39 20 ++39 38 ++31 30 +cfi=(37) +cfn=(120) +calls=10 39 +* 184 ++2 10 +-2 10 ++2 12 ++11 2 ++6 2 +-5 6 ++5 12 +cfi=(39) +cfn=(124) +calls=2 27 +* 10 ++2 4 ++2 2 ++2 2 +-2 2 ++2 2 ++6 4 ++16 18 +1985 4 +cob=(2) +cfi=(18) +cfn=(88) +calls=2 0 +* 10 +* 2 +1770 14 ++74 4 ++5 4 ++2 8 ++6 4 ++11 4 ++6 2 ++1 2 +-1 6 ++1 6 ++1 4 ++20 8 +1730 8 +1896 72 ++2 38 ++13 6 ++3 8 ++28 12 +-3 18 ++15 2 ++6 3 +-3 1 ++1 1 ++3 1 +-3 2 ++1 1 +-1 1 +-1 1 ++4 2 +1705 8 +1989 90 +1770 2 +1942 12 ++3 2 +-4 2 ++4 4 ++5 1 ++1 4 +-36 6 + +fl=(8) +fn=(24) +48 2 ++4 4 ++3 3 ++4 1 +-4 1 ++4 1 +-4 1 ++3 1 ++1 2 ++1 4 ++1 4 ++1 3 ++1 2 ++7 2 ++1 7 ++7 3 ++4 2 ++2 4 ++40 2 ++4 4 ++1 2 ++3 1 ++7 1 +-8 1 ++4 1 ++2 1 +-2 1 ++4 2 ++3 2 ++50 3 +88 2 ++3 3 ++3 1 +-3 1 ++3 1 ++2 3 ++2 2 ++7 3 +-5 3 + +fl=(34) +fn=(104) +213 6 ++2 2 +-2 1 ++2 2 +cfn=(108) +calls=1 -40 +* 2203 +* 1 ++1 2 ++1 1 ++1 1 +-1 1 ++1 1 ++2 5 + +fn=(108) +175 6 ++15 3 +-3 6 ++4 3 +-3 3 +-13 3 ++19 3 +-3 3 ++3 3 +-19 3 ++13 3 ++2 3 ++4 3 +cfi=(35) +cfn=(110) +calls=3 26 +* 60 +* 9 ++2 9 +cfi=(48) +cfn=(150) +calls=2 60 +* 5594 +cfi=(2) +cfn=(112) +calls=1 588 +* 2152 ++2 3 +-1 3 ++1 6 +-1 3 ++1 3 ++9 12 + +fn=(168) +226 3 ++1 1 ++1 1 ++3 1 ++1 1 ++2 2 +cfi=(2) +cfn=(170) +calls=1 621 +* 2401 ++2 1 ++1 1 ++1 4 + +fl=(44) +fn=(298) +78 4 ++1 1 + +fn=(136) +78 24 ++1 6 + +fl=(6) +fn=(190) +790 870 +555 87 +790 348 +555 261 +-1 174 ++2 87 +-1 87 ++1 261 +-1 261 ++1 1170 +-1 1170 ++1 3510 +-1 3597 +793 87 +-1 87 ++4 87 ++4 87 +-8 87 ++1 87 ++7 330 ++5 261 ++6 261 +-7 957 ++15 32 +-8 48 ++2 1131 +cfn=(192) do_lookup_x +calls=87 338 +* 29682 ++3 419 ++25 174 ++24 553 ++31 79 ++9 316 ++14 237 ++3 316 ++5 79 ++2 799 +-86 48 ++17 8 ++1 16 ++59 2 + +fn=(192) +338 609 ++1 87 +-1 522 ++6 174 ++12 87 ++30 87 +-41 87 ++41 87 ++35 174 +-65 435 ++14 822 ++8 548 ++1 822 ++3 274 ++1 548 ++4 548 ++3 548 +-5 274 ++5 822 ++3 1918 +-99 195 +540 1356 ++1 48 +cfi=(36) +cfn=(116) +calls=16 282 +* 1200 +* 64 ++3 585 +349 548 ++3 548 ++4 548 ++4 548 ++4 548 +fi=(55) +102 237 +fe=(6) +503 158 ++3 596 +-60 10 ++64 27 ++12 474 ++2 79 ++24 696 +-1 16 +397 252 +-1 168 ++2 168 ++2 84 +90 252 +375 84 +90 84 +374 84 +90 84 +400 168 +90 168 +413 285 +-10 870 ++2 316 ++2 158 +-1 237 +78 553 ++12 395 ++3 233 +cfi=(21) +cfn=(56) +calls=15 +51 +* 707 +* 45 ++5 79 +-1 79 ++1 79 ++2 156 ++19 78 ++1 702 +452 790 +148 2 ++2 5 ++30 35 +-59 390 +cfi=(21) +cfn=(56) +calls=78 +23 +* 3548 +* 390 + +fn=(10) +939 12 ++4 4 ++4 8 ++2 4 +-1 4 ++3 12 ++1 4 ++1 4 ++3 4 +-3 4 ++7 4 +-4 4 +-1 4 ++3 4 ++2 4 +-7 4 ++7 4 ++1 4 + +fl=(46) +fn=(142) +27 12 ++1 3 + +fl=(49) +fn=(154) +34 8 +-1 8 ++1 8 ++1 48 ++4 1 +-4 28 + +fl=(47) +fn=(144) +27 7 ++4 1 + +fl=(17) +fn=(50) +31 6 ++2 3 +-2 9 ++2 6 +cfi=(2) +cfn=(52) +calls=3 784 +* 6 ++2 22 ++3 15 ++2 2 ++2 2 ++4 2 ++4 2 +-4 4 ++1 2 ++4 4 +-4 2 ++1 2 ++3 2 +-3 2 ++2 2 +cfi=(2) +cfn=(54) +calls=2 790 +* 4 +-4 1 ++4 1 +-4 2 ++1 1 ++4 2 +-4 1 ++1 1 ++3 1 +-3 1 ++2 1 +cfi=(2) +cfn=(54) +calls=1 790 +* 2 +-5 2 + +fn=(38) +59 36 ++1 3 +-1 3 ++1 6 +cfi=(13) +cfn=(28) +calls=3 +19 +* 66 ++6 3 +-6 6 ++6 3 ++7 3 +-7 3 +-6 3 ++6 9 ++2 6 ++5 9 +cfi=(19) +cfn=(42) +calls=3 +19 +* 147 +* 3 ++3 3 +-3 3 ++3 3 ++4 3 ++5 3 +-6 3 ++6 3 +-5 3 ++5 3 +-5 3 ++4 3 ++1 6 +-1 3 ++1 3 +cfi=(20) +cfn=(48) +calls=3 +44 +* 41 ++10 3 +-10 3 ++10 3 +-10 3 ++10 3 +-8 3 ++8 6 ++1 3 +-1 3 ++1 9 ++3 3 +-3 3 ++3 3 ++9 3 +-7 3 ++4 3 ++3 8 ++2 2 +-2 2 ++2 30 +-2 30 ++18 6 +-6 3 ++1 3 ++5 3 +-6 3 ++6 9 ++2 2 ++3 2 +-3 4 ++3 2 ++4 6 ++4 5 ++8 1 ++3 1 ++3 2 +-3 1 ++3 1 +-3 2 ++3 4 +-3 2 ++3 2 ++2 2 ++21 2 +-21 2 +cfi=(13) +cfn=(28) +calls=2 -76 +* 68 ++4 2 +-4 4 ++17 2 +-13 6 ++64 2 ++4 27 +100 8 ++39 6 ++70 6 +cfi=(20) +cfn=(74) +calls=2 -93 +* 32 +* 42 ++6 40 +-1 40 ++1 42 +-1 2 ++1 6 ++5 4 +-96 1 ++7 4 ++32 4 +cfi=(19) +cfn=(46) +calls=2 50 +* 36 +* 2 ++1 2 +-1 4 ++1 2 + +fl=(20) +fn=(74) +116 26 ++1 26 ++1 26 ++17 26 ++1 26 ++1 4 ++1 4 ++5 3 ++1 3 ++1 3 ++1 3 ++5 3 +275 22 ++1 22 ++1 8 ++1 8 ++1 3 ++1 3 ++1 1 ++4 1 ++22 14 ++1 14 ++1 14 ++1 14 ++1 14 ++3 5 ++1 5 ++1 5 ++1 5 ++1 5 ++3 2 ++1 2 ++1 2 ++1 2 ++1 2 ++10 1 ++1 1 ++1 1 ++1 1 ++22 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 + +fn=(48) +129 14 ++6 14 ++1 14 ++1 8 ++1 8 ++5 5 ++1 5 ++1 5 ++1 5 ++5 5 +275 6 ++1 6 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++22 5 ++1 5 ++1 5 ++1 5 ++1 5 ++24 3 ++1 3 ++1 3 ++1 3 ++22 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 + +fl=(25) +fn=(68) +42 4 ++1 1 +-1 8 ++1 4 +-1 1 ++1 1 +cfi=(9) +cfn=(26) +calls=1 373 +* 18 +* 1 ++3 3 +-3 1 ++12 6 ++1 3 ++1 1 +-2 1 ++2 1 +-2 5 ++1 3 ++1 1 +-2 1 ++2 1 +-2 5 ++10 3 +fi=(26) +-37 4 +fe=(25) +131 4 +-2 1 ++17 6 ++3 2 +329 9 +69 3 ++77 1 ++20 1 +-19 1 ++36 10 ++1 3 +-1 2 ++1 3 +fi=(27) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/dl-hwcap.h +57 6 +fe=(25) +186 1 ++1 1 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 ++1 1 +-1 1 ++1 3 +-5 1 ++5 1 +-5 1 ++5 2 +-5 5 ++8 3 ++2 1 ++1 6 ++4 1 ++4 1 +-3 1 +-1 1 ++4 2 ++3 4 ++4 3 ++1 1 +-1 5 ++1 3 ++2 3 ++2 2 +-1 1 ++1 1 +-1 1 ++2 2 ++7 2 ++6 11 ++1 4 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-1 1 ++1 3 ++29 10 ++3 6 ++17 1 +-10 1 ++10 11 +-4 2 +-3 1 ++3 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 16 +* 2 +-3 1 ++3 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 16 +* 6 ++3 7 ++1 12 ++1 4 +cfi=(20) +cfn=(74) +calls=1 116 +* 14 +-2 1 ++2 2 +-2 1 ++5 6 +cfi=(20) +cfn=(74) +calls=2 116 +* 28 ++2 2 +-2 4 ++2 5 +-7 4 ++12 1 ++1 2 +-1 9 ++1 14 +-1 18 ++5 10 ++4 3 +-4 12 ++4 33 ++1 12 +-1 12 ++1 24 +-2 12 ++1 24 +-1 39 ++4 6 ++5 1 +-2 1 ++2 1 +-1 1 +-1 2 ++2 1 +-1 1 ++1 4 ++2 6 ++1 2 ++3 2 +-6 5 ++13 8 ++1 1 +-1 2 ++3 2 +-3 3 ++1 3 +-1 6 ++3 6 ++3 3 ++2 2 +-15 2 +-6 3 +-42 2 + +fl=(53) +fn=(174) _dl_check_map_versions +156 28 ++15 12 ++2 20 ++2 4 ++1 4 ++2 4 +-3 4 ++1 4 ++2 4 ++3 6 +-16 2 +-8 4 ++28 2 +-4 2 ++4 4 ++16 2 +37 4 +201 2 +37 10 ++1 5 +-1 10 ++2 21 +cfi=(36) +cfn=(116) +calls=7 282 +* 638 +* 14 +209 6 ++5 2 +-71 6 ++71 4 +-71 6 ++79 2 +-2 2 +-2 4 ++4 2 +-4 14 ++4 1 +-2 1 +-2 2 ++4 1 +-4 12 +57 3 ++8 3 +-8 6 ++8 6 ++6 9 ++16 3 ++1 6 ++2 3 ++5 18 ++14 20 ++12 21 ++4 7 +-30 14 +225 12 ++3 9 ++5 1 +-11 1 +111 3 ++3 12 +cfi=(21) +cfn=(56) +calls=3 +30 +* 131 +* 16 +237 8 ++14 6 ++3 8 ++3 12 ++3 8 ++4 2 +-7 8 ++3 6 ++4 30 +-7 120 ++3 92 ++8 9 ++89 36 +-83 12 +cfi=(19) +cfn=(42) +calls=3 92 +* 81 +* 3 ++1 3 +-2 3 ++2 3 ++13 3 ++2 3 +-5 3 ++3 3 ++2 3 +-2 3 ++2 3 ++3 8 ++4 6 ++18 1 +-15 3 ++2 3 +-2 6 ++2 6 ++2 3 ++1 3 +-1 6 ++1 3 +-1 3 ++1 3 ++1 3 +-2 3 ++2 6 ++1 9 ++3 9 ++8 6 ++10 9 ++3 8 ++4 32 ++6 32 ++1 32 ++1 32 +-1 96 ++1 32 +-1 32 ++1 32 ++1 32 ++3 96 ++4 32 +-14 68 ++10 6 +-96 2 +-86 2 +-8 2 ++94 3 + +fn=(172) +362 5 ++2 1 +-2 3 ++4 3 ++2 24 +cfn=(174) +calls=4 156 +* 2320 +-2 4 ++2 16 +-2 8 ++5 7 + +ob=(4) +fl=(84) +fn=(398) +0 8 +cob=(2) +cfi=(18) +cfn=(404) +calls=1 0 +0 75 +0 1 +cfn=(408) 0x0000000000000570 +calls=1 0 +0 8 +0 3 + +fn=(408) +0 8 + +fn=(308) +0 17 + +totals: 117143 diff --git a/front/callgrind-front/callgrind-front/tests/callgrind.out.2322.dot b/front/callgrind-front/callgrind-front/tests/callgrind.out.2322.dot new file mode 100644 index 0000000..9733cb0 --- /dev/null +++ b/front/callgrind-front/callgrind-front/tests/callgrind.out.2322.dot @@ -0,0 +1,90 @@ +digraph { + graph [fontname=Arial, nodesep=0.125, ranksep=0.25]; + node [fontcolor=black, fontname=Arial, height=0, shape=box, style=solid, width=0]; + edge [fontname=Arial]; + "(below main)" [color="#000000", fontcolor="#000000", fontsize="18.00", label="libc-2.27.so\n(below main)\n1.09%\n(0.05%)\n1×"]; + "(below main)" -> exit [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.90%\n1×", labeldistance="0.10", penwidth="0.10"]; + "0x0000000000001090" [color="#000000", fontcolor="#000000", fontsize="30.00", label="ld-2.27.so\n0x0000000000001090\n100.00%\n(0.02%)\n0×"]; + "0x0000000000001090" -> "_dl_init" [arrowsize="0.19", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.87%\n1×", labeldistance="0.15", penwidth="0.15"]; + "0x0000000000001090" -> "_dl_start" [arrowsize="1.39", color="#000000", fontcolor="#000000", fontsize="28.24", label="97.02%\n1×", labeldistance="7.76", penwidth="7.76"]; + "0x0000000000001090" -> "_start" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.10%\n1×", labeldistance="0.10", penwidth="0.10"]; + "__GI___tunables_init" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n__GI___tunables_init\n16.29%\n(16.29%)\n1×"]; + "__run_exit_handlers" [color="#000000", fontcolor="#000000", fontsize="18.00", label="libc-2.27.so\n__run_exit_handlers\n0.90%\n(0.09%)\n1×"]; + "__run_exit_handlers" -> "_dl_fini" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.62%\n1×", labeldistance="0.10", penwidth="0.10"]; + "_dl_cache_libcmp" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_cache_libcmp\n0.61%\n(0.61%)\n10×"]; + "_dl_catch_error" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_catch_error\n1.90%\n(0.02%)\n1×"]; + "_dl_catch_error" -> "_dl_catch_exception" [arrowsize="0.19", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.88%\n1×", labeldistance="0.15", penwidth="0.15"]; + "_dl_catch_exception" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_catch_exception\n6.74%\n(0.08%)\n3×"]; + "_dl_catch_exception" -> "map_doit" [arrowsize="0.19", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.84%\n1×", labeldistance="0.15", penwidth="0.15"]; + "_dl_catch_exception" -> openaux [arrowsize="0.31", color="#000000", fontcolor="#000000", fontsize="18.00", label="4.78%\n2×", labeldistance="0.38", penwidth="0.38"]; + "_dl_check_all_versions" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_check_all_versions\n2.04%\n(0.06%)\n1×"]; + "_dl_check_all_versions" -> "_dl_check_map_versions" [arrowsize="0.20", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.98%\n4×", labeldistance="0.16", penwidth="0.16"]; + "_dl_check_map_versions" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_check_map_versions\n1.98%\n(1.25%)\n4×"]; + "_dl_check_map_versions" -> "_dl_name_match_p" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.54%\n7×", labeldistance="0.10", penwidth="0.10"]; + "_dl_check_map_versions" -> strcmp [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.11%\n3×", labeldistance="0.10", penwidth="0.10"]; + "_dl_fini" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_fini\n0.62%\n(0.23%)\n1×"]; + "_dl_important_hwcaps" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_important_hwcaps\n0.61%\n(0.50%)\n1×"]; + "_dl_init" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_init\n1.87%\n(0.16%)\n1×"]; + "_dl_init" -> "init_cacheinfo" [arrowsize="0.17", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.51%\n1×", labeldistance="0.12", penwidth="0.12"]; + "_dl_init_paths" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_init_paths\n1.49%\n(0.27%)\n1×"]; + "_dl_init_paths" -> "_dl_important_hwcaps" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.61%\n1×", labeldistance="0.10", penwidth="0.10"]; + "_dl_init_paths" -> "fillin_rpath" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.50%\n1×", labeldistance="0.10", penwidth="0.10"]; + "_dl_load_cache_lookup" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_load_cache_lookup\n1.15%\n(0.31%)\n1×"]; + "_dl_load_cache_lookup" -> "_dl_cache_libcmp" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.61%\n10×", labeldistance="0.10", penwidth="0.10"]; + "_dl_lookup_symbol_x" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_lookup_symbol_x\n41.11%\n(15.77%)\n87×"]; + "_dl_lookup_symbol_x" -> "do_lookup_x" [arrowsize="0.71", color="#000000", fontcolor="#000000", fontsize="18.00", label="25.34%\n87×", labeldistance="2.03", penwidth="2.03"]; + "_dl_map_object" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_map_object\n6.57%\n(0.38%)\n3×"]; + "_dl_map_object" -> "_dl_load_cache_lookup" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.15%\n1×", labeldistance="0.10", penwidth="0.10"]; + "_dl_map_object" -> "_dl_map_object_from_fd" [arrowsize="0.23", color="#000000", fontcolor="#000000", fontsize="18.00", label="2.61%\n2×", labeldistance="0.21", penwidth="0.21"]; + "_dl_map_object" -> "_dl_name_match_p" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.67%\n7×", labeldistance="0.10", penwidth="0.10"]; + "_dl_map_object" -> "open_path" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.14%\n1×", labeldistance="0.10", penwidth="0.10"]; + "_dl_map_object" -> "open_verify.constprop.7" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.39%\n2×", labeldistance="0.10", penwidth="0.10"]; + "_dl_map_object_deps" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_map_object_deps\n6.03%\n(0.79%)\n1×"]; + "_dl_map_object_deps" -> "_dl_catch_exception" [arrowsize="0.31", color="#000000", fontcolor="#000000", fontsize="18.00", label="4.86%\n2×", labeldistance="0.39", penwidth="0.39"]; + "_dl_map_object_from_fd" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_map_object_from_fd\n2.61%\n(1.44%)\n2×"]; + "_dl_map_object_from_fd" -> "_dl_new_object" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.65%\n2×", labeldistance="0.10", penwidth="0.10"]; + "_dl_name_match_p" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_name_match_p\n2.24%\n(0.71%)\n30×"]; + "_dl_name_match_p" -> strcmp [arrowsize="0.18", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.53%\n64×", labeldistance="0.12", penwidth="0.12"]; + "_dl_new_object" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_new_object\n0.84%\n(0.51%)\n3×"]; + "_dl_receive_error" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_receive_error\n2.06%\n(0.01%)\n1×"]; + "_dl_receive_error" -> "version_check_doit" [arrowsize="0.20", color="#000000", fontcolor="#000000", fontsize="18.00", label="2.05%\n1×", labeldistance="0.16", penwidth="0.16"]; + "_dl_relocate_object" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\n_dl_relocate_object\n65.06%\n(23.53%)\n4×"]; + "_dl_relocate_object" -> "_dl_lookup_symbol_x" [arrowsize="0.91", color="#000000", fontcolor="#000000", fontsize="18.00", label="41.11%\n87×", labeldistance="3.29", penwidth="3.29"]; + "_dl_start" [color="#000000", fontcolor="#000000", fontsize="28.24", label="ld-2.27.so\n_dl_start\n97.02%\n(0.86%)\n1×"]; + "_dl_start" -> "_dl_sysdep_start" [arrowsize="1.39", color="#000000", fontcolor="#000000", fontsize="27.73", label="96.14%\n1×", labeldistance="7.69", penwidth="7.69"]; + "_dl_sysdep_start" [color="#000000", fontcolor="#000000", fontsize="27.73", label="ld-2.27.so\n_dl_sysdep_start\n96.14%\n(0.50%)\n1×"]; + "_dl_sysdep_start" -> "__GI___tunables_init" [arrowsize="0.57", color="#000000", fontcolor="#000000", fontsize="18.00", label="16.29%\n1×", labeldistance="1.30", penwidth="1.30"]; + "_dl_sysdep_start" -> "dl_main" [arrowsize="1.26", color="#000000", fontcolor="#000000", fontsize="18.81", label="79.18%\n1×", labeldistance="6.33", penwidth="6.33"]; + "_start" [color="#000000", fontcolor="#000000", fontsize="18.00", label="test\n_start\n1.10%\n(0.01%)\n1×"]; + "_start" -> "(below main)" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.09%\n1×", labeldistance="0.10", penwidth="0.10"]; + "dl_main" [color="#000000", fontcolor="#000000", fontsize="18.81", label="ld-2.27.so\ndl_main\n79.18%\n(1.02%)\n1×"]; + "dl_main" -> "_dl_init_paths" [arrowsize="0.17", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.49%\n1×", labeldistance="0.12", penwidth="0.12"]; + "dl_main" -> "_dl_map_object_deps" [arrowsize="0.35", color="#000000", fontcolor="#000000", fontsize="18.00", label="6.03%\n1×", labeldistance="0.48", penwidth="0.48"]; + "dl_main" -> "_dl_new_object" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.20%\n1×", labeldistance="0.10", penwidth="0.10"]; + "dl_main" -> "_dl_receive_error" [arrowsize="0.20", color="#000000", fontcolor="#000000", fontsize="18.00", label="2.06%\n1×", labeldistance="0.16", penwidth="0.16"]; + "dl_main" -> "_dl_relocate_object" [arrowsize="1.14", color="#000000", fontcolor="#000000", fontsize="18.00", label="65.06%\n4×", labeldistance="5.20", penwidth="5.20"]; + "dl_main" -> "handle_ld_preload" [arrowsize="0.21", color="#000000", fontcolor="#000000", fontsize="18.00", label="2.16%\n1×", labeldistance="0.17", penwidth="0.17"]; + "do_lookup_x" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\ndo_lookup_x\n25.34%\n(20.68%)\n87×"]; + "do_lookup_x" -> "_dl_name_match_p" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.02%\n16×", labeldistance="0.10", penwidth="0.10"]; + "do_lookup_x" -> strcmp [arrowsize="0.27", color="#000000", fontcolor="#000000", fontsize="18.00", label="3.63%\n93×", labeldistance="0.29", penwidth="0.29"]; + exit [color="#000000", fontcolor="#000000", fontsize="18.00", label="libc-2.27.so\nexit\n0.90%\n(0.00%)\n1×"]; + exit -> "__run_exit_handlers" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.90%\n1×", labeldistance="0.10", penwidth="0.10"]; + "fillin_rpath" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\nfillin_rpath\n0.50%\n(0.16%)\n1×"]; + "handle_intel.constprop.1" [color="#000000", fontcolor="#000000", fontsize="18.00", label="libc-2.27.so\nhandle_intel.constprop.1\n1.30%\n(0.15%)\n3×"]; + "handle_intel.constprop.1" -> "intel_check_word.isra.0" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.15%\n6×", labeldistance="0.10", penwidth="0.10"]; + "handle_ld_preload" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\nhandle_ld_preload\n2.16%\n(0.06%)\n1×"]; + "handle_ld_preload" -> "_dl_catch_error" [arrowsize="0.19", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.90%\n1×", labeldistance="0.15", penwidth="0.15"]; + "init_cacheinfo" [color="#000000", fontcolor="#000000", fontsize="18.00", label="libc-2.27.so\ninit_cacheinfo\n1.51%\n(0.21%)\n1×"]; + "init_cacheinfo" -> "handle_intel.constprop.1" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.30%\n3×", labeldistance="0.10", penwidth="0.10"]; + "intel_check_word.isra.0" [color="#000000", fontcolor="#000000", fontsize="18.00", label="libc-2.27.so\nintel_check_word.isra.0\n1.15%\n(1.15%)\n6×"]; + "map_doit" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\nmap_doit\n1.84%\n(0.01%)\n1×"]; + "map_doit" -> "_dl_map_object" [arrowsize="0.19", color="#000000", fontcolor="#000000", fontsize="18.00", label="1.83%\n1×", labeldistance="0.15", penwidth="0.15"]; + "open_path" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\nopen_path\n1.14%\n(0.51%)\n1×"]; + "open_path" -> "open_verify.constprop.7" [arrowsize="0.16", color="#000000", fontcolor="#000000", fontsize="18.00", label="0.37%\n8×", labeldistance="0.10", penwidth="0.10"]; + "open_verify.constprop.7" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\nopen_verify.constprop.7\n0.76%\n(0.59%)\n10×"]; + openaux [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\nopenaux\n4.78%\n(0.03%)\n2×"]; + openaux -> "_dl_map_object" [arrowsize="0.31", color="#000000", fontcolor="#000000", fontsize="18.00", label="4.75%\n2×", labeldistance="0.38", penwidth="0.38"]; + strcmp [color="#000000", fontcolor="#000000", fontsize="18.00", label="libc-2.27.so\nstrcmp\n5.38%\n(5.38%)\n165×"]; + "version_check_doit" [color="#000000", fontcolor="#000000", fontsize="18.00", label="ld-2.27.so\nversion_check_doit\n2.05%\n(0.01%)\n1×"]; + "version_check_doit" -> "_dl_check_all_versions" [arrowsize="0.20", color="#000000", fontcolor="#000000", fontsize="18.00", label="2.04%\n1×", labeldistance="0.16", penwidth="0.16"]; +} diff --git a/front/callgrind-front/callgrind-front/tests/callgrind.out.2384 b/front/callgrind-front/callgrind-front/tests/callgrind.out.2384 new file mode 100644 index 0000000..a6be0f3 --- /dev/null +++ b/front/callgrind-front/callgrind-front/tests/callgrind.out.2384 @@ -0,0 +1,5726 @@ +# callgrind format +version: 1 +creator: callgrind-3.13.0 +pid: 2384 +cmd: ./test2 +part: 1 + + +desc: I1 cache: +desc: D1 cache: +desc: LL cache: + +desc: Timerange: Basic block 0 - 25389 +desc: Trigger: Program termination + +positions: line +events: Ir +summary: 117179 + + +ob=(3) /lib/x86_64-linux-gnu/libc-2.27.so +fl=(105) /build/glibc-S9d2JN/glibc-2.27/libio/genops.c +fn=(418) _IO_flush_all_lockp +749 11 ++5 4 ++1 11 ++3 1 +-8 1 ++5 1 ++3 1 +-3 1 ++3 1 +fi=(106) /build/glibc-S9d2JN/glibc-2.27/libio/libioP.h +870 2 +fe=(105) +762 1 +fi=(106) +870 2 +fe=(105) +-98 6 +-14 3 ++16 3 +-16 6 ++3 3 +-1 3 ++1 3 ++3 22 ++14 9 ++1 3 ++4 12 +-29 4 + +fn=(416) _IO_cleanup +926 2 ++3 1 +-3 8 ++3 1 +cfn=(418) +calls=1 749 +* 114 +-80 1 ++80 1 +-80 2 ++1 11 ++3 1 +-3 1 ++3 1 +-3 1 ++3 1 +fi=(106) ++17 5 +fe=(105) ++31 3 +-48 9 ++9 9 ++2 6 ++30 1 ++11 9 ++1 2 ++35 12 +-92 4 + +fl=(88) /build/glibc-S9d2JN/glibc-2.27/misc/init-misc.c +fn=(320) __init_misc +31 2 +-1 3 ++1 4 ++2 3 +cfi=(89) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strrchr-avx2.S +cfn=(324) __strrchr_avx2 +calls=1 +10 +* 27 +* 1 ++4 5 ++1 3 ++2 4 + +fl=(82) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/unix/sysv/linux/x86/gettimeofday.c +fn=(286) gettimeofday +42 2 +fi=(64) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/generic/dl-hash.h ++2 1 ++1 1 +fe=(82) +-3 3 +fi=(64) ++1 1 ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fe=(82) +-25 6 +cfi=(65) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-vdso.c +cfn=(216) _dl_vdso_vsym +calls=1 -17 +* 17 +* 5 + +fl=(59) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-strcasecmp.h +fn=(262) strcasecmp_l +32 5 +fi=(78) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcasecmp_l.c +-1 1 +fe=(59) + +fn=(282) strncasecmp_l +32 5 +fi=(81) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncase_l.c +-1 1 +fe=(59) + +fn=(202) strcasecmp +32 5 +fi=(60) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcasecmp.c +-1 1 +fe=(59) + +fn=(240) strncasecmp +32 5 +fi=(73) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncase.c +-1 1 +fe=(59) + +fl=(71) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memset.h +fn=(232) memset +42 5 ++4 2 +-1 4 ++12 2 ++2 5 + +fl=(95) /build/glibc-S9d2JN/glibc-2.27/csu/../csu/libc-start.c +fn=(342) (below main) +137 8 ++4 1 +-4 2 ++4 2 ++98 1 +-98 1 ++98 1 ++1 4 +cfi=(96) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_atexit.c +cfn=(344) __cxa_atexit +calls=1 65 +* 65 ++22 4 ++3 2 ++1 5 +cob=(5) /home/osboxes/test2 +cfi=(94) ??? +cfn=(348) __libc_csu_init +calls=1 0 +* 57 ++4 4 ++15 2 ++12 2 +cfi=(97) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/bsd-_setjmp.S +cfn=(360) _setjmp +calls=1 30 +* 29 ++1 2 ++5 2 ++1 2 ++3 2 ++3 6 +cob=(5) +cfi=(94) +cfn=(366) main +calls=1 0 +* 48 ++34 2 +cfi=(100) /build/glibc-S9d2JN/glibc-2.27/stdlib/exit.c +cfn=(368) exit +calls=1 139 +* 1054 + +fl=(91) /build/glibc-S9d2JN/glibc-2.27/libio/vtables.c +fn=(328) check_stdfiles_vtables +84 4 ++1 3 ++1 3 ++2 1 + +fl=(57) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-unaligned-ssse3.h +fn=(272) stpncpy +33 4 +fi=(79) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/stpncpy.c +-2 1 +fe=(57) + +fn=(244) strcpy +33 4 +fi=(74) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcpy.c +-4 1 +fe=(57) + +fn=(198) strncpy +33 4 +fi=(58) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncpy.c +-4 1 +fe=(57) + +fn=(276) stpcpy +33 4 +fi=(80) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/stpcpy.c +* 1 +fe=(57) + +fn=(206) strcat +33 4 +fi=(61) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcat.c +-4 1 +fe=(57) + +fl=(63) /build/glibc-S9d2JN/glibc-2.27/time/../sysdeps/unix/sysv/linux/x86/time.c +fn=(212) time +43 2 +fi=(64) ++1 1 ++1 1 +fe=(63) +-2 4 +fi=(64) ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fe=(63) +-24 6 +cfi=(65) +cfn=(216) +calls=1 -18 +* 17 +* 5 + +fl=(67) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memcmp.h +fn=(224) bcmp +33 5 +-1 2 ++2 2 ++1 3 +fi=(68) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memcmp.c +-6 1 +fe=(67) + +fl=(76) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/ifunc-wmemset.h +fn=(252) wmemset +32 4 +-2 2 ++2 4 +-2 4 ++5 2 +-1 8 +fi=(108) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wmemset.c +-3 2 +fe=(76) + +fl=(101) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_thread_atexit_impl.c +fn=(372) __call_tls_dtors +145 3 ++1 4 ++18 4 + +fl=(107) /build/glibc-S9d2JN/glibc-2.27/posix/../sysdeps/unix/sysv/linux/_exit.c +fn=(424) _Exit +27 2 ++4 1 ++2 2 + +fl=(104) /build/glibc-S9d2JN/glibc-2.27/nptl/unregister-atfork.c +fn=(386) __unregister_atfork +28 8 ++8 2 +-8 6 ++11 4 ++82 12 + +fl=(96) +fn=(344) +65 7 +-26 2 ++26 1 +-26 5 ++1 2 +cfn=(346) __new_exitfn +calls=1 +44 +* 29 ++2 2 ++7 2 ++3 1 +-1 1 ++2 1 ++1 1 ++1 4 ++1 1 ++11 6 + +fn=(346) +84 2 +-6 2 ++1 2 +-1 1 ++11 5 ++2 3 +-2 1 ++10 2 +-10 2 ++45 1 ++1 1 ++4 4 +-19 1 ++1 2 + +fl=(100) +fn=(370) __run_exit_handlers +40 9 ++5 1 +-5 1 ++5 2 ++11 14 ++3 2 ++2 5 ++16 2 ++35 6 ++2 2 +-44 6 ++2 1 ++1 1 +-1 1 ++4 4 ++1 6 ++29 1 +-3 1 ++5 1 +-2 2 ++2 2 +cob=(1) /lib/x86_64-linux-gnu/ld-2.27.so +cfi=(102) /build/glibc-S9d2JN/glibc-2.27/elf/dl-fini.c +cfn=(374) _dl_fini +calls=1 -78 +* 722 ++1 1 ++11 1 ++1 1 +-1 1 ++1 1 ++5 4 +-73 1 ++12 1 ++1 4 ++63 2 ++1 11 +cfi=(105) +cfn=(416) +calls=1 926 +* 206 +* 3 ++2 2 +cfi=(107) +cfn=(424) +calls=1 27 +* 5 +-86 1 +cfi=(101) +cfn=(372) +calls=1 +99 +* 11 +* 1 + +fn=(368) +139 1 +-1 1 ++1 3 +cfn=(370) +calls=1 -99 +* 1049 + +fl=(72) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-sse4_2.h +fn=(238) strcspn +30 5 +fi=(109) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcspn.c +-1 1 +fe=(72) + +fn=(270) strspn +30 5 +fi=(110) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strspn.c +-1 1 +fe=(72) + +fn=(254) strpbrk +30 5 +fi=(111) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strpbrk.c +-1 1 +fe=(72) + +fl=(70) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strcmp.c +fn=(230) strcmp +38 4 ++9 1 + +fl=(92) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86/cacheinfo.c +fn=(330) init_cacheinfo +488 7 ++14 6 +758 2 ++2 1 ++1 1 ++2 1 +-3 1 ++5 1 +-5 1 ++4 3 ++4 2 ++3 2 ++2 1 ++1 1 ++2 1 +-3 1 ++5 1 +-5 1 ++4 3 ++9 1 ++2 8 +-2 1 ++3 8 +500 1 ++4 1 +-4 1 ++4 1 +cfn=(332) handle_intel.constprop.1 +calls=1 259 +* 469 ++2 1 +-2 1 ++2 1 +cfn=(332) +calls=1 259 +* 515 ++5 1 +-5 1 ++5 1 +cfn=(332) +calls=1 259 +* 542 ++8 1 +-8 1 ++8 1 ++11 1 +-20 1 ++25 3 ++4 2 ++8 6 ++3 2 ++9 6 ++14 2 ++4 1 ++3 1 ++1 1 +-4 1 ++3 1 +-3 1 ++3 1 ++6 8 +-39 3 ++3 9 ++6 6 +-6 3 ++6 2 ++3 20 ++5 2 ++4 1 ++1 1 +-1 3 +691 4 ++1 5 ++4 2 ++59 2 +592 2 ++8 1 ++2 1 +-2 6 ++2 4 +-2 1 ++4 1 ++23 2 +-25 2 ++2 6 ++2 6 ++3 2 ++1 8 ++2 4 ++3 2 ++5 1 ++2 2 ++1 1 +-1 1 ++2 1 +-2 1 ++1 2 ++27 2 ++1 1 ++1 2 ++2 1 +-1 1 ++1 1 +-24 3 ++4 2 ++3 1 ++2 4 ++1 1 ++5 2 + +fn=(334) intel_check_word.isra.0 +132 12 ++6 6 +-10 18 ++10 6 +-10 6 ++10 6 +-10 6 ++10 12 +-10 6 ++10 6 ++2 6 +-2 6 ++2 18 +250 12 +140 24 ++2 15 ++2 30 ++8 30 ++51 24 ++22 12 +fi=(93) /build/glibc-S9d2JN/glibc-2.27/string/../bits/stdlib-bsearch.h +28 12 +-1 24 ++4 24 ++1 12 +fe=(92) ++87 24 +fi=(93) +-88 138 ++1 69 +fe=(92) ++87 138 ++3 81 +fi=(93) +-93 252 ++8 15 +-8 36 +fe=(92) +134 3 +255 36 +-91 9 ++3 9 +-6 13 ++3 4 ++9 4 ++5 14 ++1 10 ++17 5 +-32 15 ++3 15 ++4 14 ++2 28 ++2 14 ++2 8 ++4 3 ++2 6 ++2 3 ++2 3 +-2 3 ++2 6 +-2 3 ++3 9 +-2 12 ++2 6 +-24 2 ++7 2 ++2 4 + +fn=(332) +259 21 ++2 3 +-2 9 ++5 9 ++8 3 ++1 3 +-3 3 ++5 12 ++6 6 ++5 3 +-5 9 ++5 3 ++2 3 ++1 3 +-1 3 ++5 18 +cfn=(334) +calls=3 132 +* 1035 ++2 6 ++3 21 +cfn=(334) +calls=3 132 +* 314 ++2 6 ++19 33 + +fl=(99) /build/glibc-S9d2JN/glibc-2.27/setjmp/sigjmp.c +fn=(364) __sigjmp_save +29 1 +-1 2 ++1 2 ++5 3 + +fl=(85) /build/glibc-S9d2JN/glibc-2.27/csu/../csu/init-first.c +fn=(314) _init +52 8 ++3 3 ++14 1 +fi=(86) /build/glibc-S9d2JN/glibc-2.27/csu/../sysdeps/generic/dl-hash.h +-25 1 +fe=(85) ++23 1 ++1 1 +fi=(86) +-23 1 +fe=(85) ++24 1 +fi=(87) /build/glibc-S9d2JN/glibc-2.27/csu/../sysdeps/unix/sysv/linux/x86_64/init-first.c +-33 4 +fi=(86) ++7 1 ++5 3 ++14 4 +-17 3 ++3 9 ++14 12 +-17 9 ++22 1 +fi=(87) +-31 2 ++2 2 +-2 1 ++2 2 +cfi=(65) +cfn=(216) +calls=1 -13 +* 17 ++2 1 ++4 1 +-4 1 ++4 1 +-4 1 ++1 2 ++1 1 ++2 1 +cfi=(65) +cfn=(216) +calls=1 -19 +* 17 +fe=(85) ++37 3 +fi=(87) +-36 2 ++1 1 +fe=(85) ++35 1 +cfi=(88) +cfn=(320) +calls=1 -50 +* 52 ++3 1 +cfi=(90) /build/glibc-S9d2JN/glibc-2.27/ctype/ctype-info.c +cfn=(326) __ctype_init +calls=1 -53 +* 16 ++5 6 +-27 1 +-7 1 ++7 4 + +fl=(75) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcsnlen.c +fn=(250) wcsnlen +40 1 +-2 1 ++2 2 +-2 2 ++11 1 + +fl=(77) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strchr.c +fn=(256) index +40 2 +-2 1 ++2 2 +-2 2 ++11 1 + +fl=(62) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-avx2.h +fn=(258) strlen +32 1 +-2 1 ++2 2 +-2 3 +fi=(112) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strlen.c +-1 1 +fe=(62) + +fn=(280) strchrnul +32 1 +-2 1 ++2 2 +-2 3 +fi=(113) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strchrnul.c ++1 1 +fe=(62) + +fn=(236) strnlen +32 2 +-2 2 ++2 4 +-2 6 +fi=(114) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strnlen.c ++1 2 +fe=(62) + +fn=(260) memrchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(115) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memrchr.c +-1 1 +fe=(62) + +fn=(218) rawmemchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(116) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/rawmemchr.c ++1 1 +fe=(62) + +fn=(210) rindex +32 1 +-2 1 ++2 2 +-2 3 +fi=(117) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strrchr.c +-2 1 +fe=(62) + +fn=(266) memchr +32 1 +-2 1 ++2 2 +-2 3 +fi=(118) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memchr.c +-1 1 +fe=(62) + +fl=(65) +fn=(216) +25 20 ++1 8 ++4 8 ++18 24 +-21 4 ++20 4 + +fl=(97) +fn=(360) +30 1 ++2 1 +cfi=(98) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/setjmp.S +cfn=(362) __sigsetjmp +calls=1 -6 +* 27 + +fl=(98) +fn=(362) +26 1 ++9 1 ++1 2 ++1 1 ++4 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++2 1 ++1 1 ++1 1 ++2 2 ++2 1 ++8 1 +cfi=(99) +cfn=(364) +calls=1 -34 +* 8 + +fl=(103) /build/glibc-S9d2JN/glibc-2.27/stdlib/cxa_finalize.c +fn=(384) __cxa_finalize +30 4 ++3 2 +-3 10 ++3 2 +-3 2 ++3 10 ++3 6 ++4 14 +-4 6 ++58 10 ++4 12 +-4 6 ++12 4 ++1 4 +cfi=(104) +cfn=(386) +calls=2 -79 +* 32 ++2 8 ++1 16 + +fl=(66) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/ifunc-avx2.h +fn=(234) wcschr +32 2 +-2 2 ++2 4 +-2 6 +fi=(119) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcschr.c ++1 2 +fe=(66) + +fn=(220) wmemchr +32 2 +-2 2 ++2 4 +-2 6 +fi=(120) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wmemchr.c ++1 2 +fe=(66) + +fn=(268) wcslen +32 1 +-2 1 ++2 2 +-2 3 +fi=(121) /build/glibc-S9d2JN/glibc-2.27/wcsmbs/../sysdeps/x86_64/multiarch/wcslen.c +-1 1 +fe=(66) + +fl=(69) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/strncmp.c +fn=(228) strncmp +38 4 ++1 3 ++9 1 + +fl=(89) +fn=(324) +43 1 ++1 1 ++2 1 ++1 1 ++3 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++12 1 ++1 1 +216 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 + +fl=(56) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/ifunc-memmove.h +fn=(248) memcpy@@GLIBC_2.14 +44 5 ++4 2 +-1 2 ++12 2 ++2 5 + +fn=(196) memmove +44 10 ++4 4 +-1 4 ++12 4 ++2 10 + +fn=(222) mempcpy +44 5 ++4 2 +-1 2 ++12 2 ++2 5 + +fl=(90) +fn=(326) +31 5 ++2 1 ++2 1 +-4 1 ++4 1 +-4 1 ++2 3 ++2 2 ++1 1 + +ob=(2) ??? +fl=(18) ??? +fn=(304) 0x0000000004a2c520 +0 6 + +fn=(404) 0x0000000004a2c560 +0 1 +cob=(3) +cfi=(103) +cfn=(384) +calls=1 30 +0 74 + +fn=(414) 0x0000000004a2c7a8 +0 3 + +fn=(88) 0x0000000004000f00 +0 3 +cob=(1) +cfi=(19) /build/glibc-S9d2JN/glibc-2.27/elf/dl-minimal.c +cfn=(90) free +calls=3 111 +0 12 + +fn=(382) 0x00000000001084e0 +0 1 +cob=(3) +cfi=(103) +cfn=(384) +calls=1 30 +0 74 + +fn=(396) 0x00000000001086c4 +0 3 + +fn=(350) 0x00000000001084b8 +0 6 + +ob=(5) +fl=(94) +fn=(376) 0x00000000000005b0 +0 8 +cob=(2) +cfi=(18) +cfn=(382) +calls=1 0 +0 75 +0 1 +cfn=(390) 0x0000000000000520 +calls=1 0 +0 8 +0 3 + +fn=(354) 0x00000000000005f0 +0 17 + +fn=(340) _start +0 11 +cob=(3) +cfi=(95) +cfn=(342) +calls=1 137 +0 1308 + +fn=(348) +0 15 +cob=(2) +cfi=(18) +cfn=(350) +calls=1 0 +0 6 +0 8 +cfn=(354) +calls=1 0 +0 17 +0 11 + +fn=(366) +0 48 + +fn=(390) +0 8 + +ob=(1) +fl=(29) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/../strchr.S +fn=(84) index +24 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 4 ++4 4 ++1 4 ++1 4 ++1 4 ++2 4 ++4 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++52 2 ++4 2 ++1 2 ++1 2 ++1 2 ++2 2 + +fl=(36) /build/glibc-S9d2JN/glibc-2.27/elf/dl-misc.c +fn=(158) _dl_sysdep_read_whole_file +44 2 ++3 1 +-3 3 ++3 1 +-3 3 ++3 1 +cfi=(37) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c +cfn=(120) open +calls=1 -8 +* 16 ++1 2 ++2 5 +cfi=(41) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/fxstat.c +cfn=(130) _fxstat +calls=1 -16 +* 10 +* 2 ++2 1 ++3 1 +-3 1 ++3 1 ++13 2 +cfi=(46) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/close.c +cfn=(142) close +calls=1 -41 +* 5 ++3 7 +-14 6 +cfi=(42) /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/sysv/linux/mmap64.c +cfn=(132) mmap +calls=1 -6 +* 35 +* 2 + +fn=(116) _dl_name_match_p +282 150 ++1 60 +cfi=(21) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/strcmp.S +cfn=(56) strcmp +calls=30 144 +* 810 +* 30 ++1 30 +-1 30 ++3 30 ++2 60 ++6 27 ++1 135 +-3 31 +-4 62 ++1 102 +cfi=(21) +cfn=(56) +calls=34 144 +* 984 +* 68 ++6 3 +-11 3 ++11 12 + +fl=(48) /build/glibc-S9d2JN/glibc-2.27/elf/dl-deps.c +fn=(146) _dl_map_object_deps +159 1 +-1 1 ++1 1 +-1 4 ++1 1 +-1 2 ++1 1 +-1 2 ++1 1 +-1 2 ++1 1 +-8 1 ++8 2 +-14 1 ++6 3 ++24 1 +-16 1 +-16 1 ++1 1 ++1 1 ++6 1 ++24 2 +-28 2 +-2 1 ++31 1 +-33 3 ++2 2 +-1 1 ++1 2 ++6 3 ++24 1 +-24 1 ++24 6 ++4 1 ++19 1 ++2 2 +-14 1 +-1 1 ++13 1 +304 4 +-91 1 +-4 1 ++4 5 +-4 3 ++4 6 ++12 8 ++2 2 ++11 2 +-5 2 +-6 4 ++5 2 ++2 4 ++1 4 ++3 8 +-32 2 ++32 2 ++66 6 +-55 6 +-2 2 ++2 2 +cfi=(34) /build/glibc-S9d2JN/glibc-2.27/elf/dl-error-skeleton.c +cfn=(108) _dl_catch_exception +calls=2 -74 +* 5696 +* 2 ++1 4 ++9 2 ++2 4 ++5 2 ++6 2 ++2 2 +-8 4 ++3 2 ++1 2 ++1 2 ++1 2 ++4 10 ++4 4 ++1 4 +-43 192 ++1 96 ++6 8 +cfi=(24) /build/glibc-S9d2JN/glibc-2.27/elf/dl-load.c +cfn=(148) _dl_dst_count +calls=2 -15 +* 112 +* 10 +434 8 ++2 6 ++3 4 +-1 2 +cfi=(19) +cfn=(46) malloc +calls=2 50 +* 36 +* 2 ++2 2 +-2 2 ++2 2 ++4 8 +-1 2 ++1 2 +cfi=(20) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S +cfn=(48) memcpy +calls=2 129 +* 20 ++1 12 +cfi=(20) +cfn=(48) +calls=2 129 +* 20 ++4 2 +-1 2 ++5 22 +283 138 +460 6 ++4 5 ++11 4 +-1 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++3 1 +-3 1 ++3 2 ++5 7 ++1 1 ++2 5 ++6 2 ++4 3 +-10 6 ++6 6 ++4 9 +-10 9 ++13 2 ++51 3 ++2 1 +-1 1 ++1 2 ++35 7 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 ++4 5 +cfi=(52) /build/glibc-S9d2JN/glibc-2.27/elf/dl-sort-maps.c +cfn=(166) _dl_sort_maps +calls=1 28 +* 232 ++3 1 ++2 1 ++1 1 ++1 1 +-2 1 ++2 2 ++7 3 ++3 2 ++3 8 +225 8 +-19 4 +461 2 +214 25 ++2 2 ++2 8 ++2 26 +456 9 +-1 4 ++1 9 +199 2 +573 6 + +fn=(150) openaux +60 4 ++7 2 +-4 6 ++1 2 +-1 2 ++1 2 +-1 10 +cfi=(24) +cfn=(114) _dl_map_object +calls=2 2151 +* 5560 +* 2 ++5 4 + +fl=(7) /build/glibc-S9d2JN/glibc-2.27/elf/../elf/dl-sysdep.c +fn=(12) _dl_sysdep_start +88 8 ++25 1 +-1 1 ++1 157 ++6 1 +-3 1 ++1 1 +-4 1 ++3 1 ++3 4 ++1 2 +-1 12 +-29 1 +-1 10 ++30 2 ++1 108 ++3 1 +-4 74 ++62 1 +-62 1 ++63 1 +-1 1 +-62 3 ++34 1 +-34 2 ++35 1 +-35 2 ++46 1 +-46 1 ++47 1 +-1 1 +-46 3 ++40 1 +-40 1 ++41 1 +-1 1 +-40 3 ++37 1 +-37 2 ++38 1 +-38 3 ++13 1 +-13 2 ++14 1 +-14 2 ++10 1 +-10 2 ++11 1 +-11 2 ++7 1 +-7 4 +224 1 +cfi=(9) /build/glibc-S9d2JN/glibc-2.27/elf/dl-tunables.c +cfn=(16) __GI___tunables_init +calls=1 +65 +* 19077 +fi=(11) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-sysdep.c +35 2 +cfi=(12) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/x86_64/brk.c +cfn=(22) brk +calls=1 -4 +* 11 +fi=(8) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/cpu-features.c +210 1 +-12 1 ++1 1 ++11 1 ++3 1 +-3 1 ++3 5 +381 3 ++1 1 ++3 2 ++1 1 ++6 1 ++5 2 +-3 1 ++3 1 +-4 1 ++4 1 +cfi=(9) +cfn=(26) __tunable_get_val +calls=1 -24 +* 16 ++2 4 +cfi=(9) +cfn=(26) +calls=1 -26 +* 18 +* 1 ++2 3 +-2 1 ++2 1 +cfi=(9) +cfn=(26) +calls=1 -28 +* 18 +* 1 ++2 3 +-2 1 ++2 1 +cfi=(9) +cfn=(26) +calls=1 -30 +* 18 ++12 1 +-12 1 ++11 1 +-11 1 ++12 1 +fe=(7) +236 1 +cfi=(13) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/../strlen.S +cfn=(28) strlen +calls=1 79 +* 16 +* 1 ++2 2 +cfi=(14) /build/glibc-S9d2JN/glibc-2.27/elf/../misc/sbrk.c +cfn=(30) sbrk +calls=1 32 +* 17 +* 3 ++12 3 ++3 5 +cfi=(2) /build/glibc-S9d2JN/glibc-2.27/elf/rtld.c +cfn=(32) dl_main +calls=1 870 +* 92752 ++1 1 ++1 8 +fi=(8) +419 3 ++28 2 +-9 3 ++2 4 ++1 2 ++2 4 ++1 2 +219 6 +cfn=(24) get_common_indeces.constprop.1 +calls=1 48 +* 87 +37 2 ++1 2 ++1 6 +224 4 +327 4 ++7 6 +217 3 ++9 2 ++1 1 +-1 1 ++1 6 ++46 3 ++22 2 ++10 5 ++13 3 +-13 2 +fe=(7) + +fn=(294) _dl_sysdep_start_cleanup +260 1 + +fl=(30) /build/glibc-S9d2JN/glibc-2.27/string/strdup.c +fn=(86) strdup +40 12 ++1 3 +cfi=(13) +cfn=(28) +calls=3 +38 +* 84 +* 3 ++1 6 +cfi=(19) +cfn=(46) +calls=3 +8 +* 54 +* 3 ++2 6 ++4 3 +-1 6 ++1 6 +-1 6 +cfi=(20) +cfn=(48) +calls=3 +82 +* 38 + +fl=(52) +fn=(166) +28 16 ++2 2 +-2 2 ++2 2 ++92 10 +-88 10 ++1 4 +-1 2 +-1 2 ++1 8 ++1 2 +cfi=(28) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S +cfn=(76) memset +calls=2 +74 +* 30 +* 32 ++4 4 ++3 2 +-3 4 ++1 6 ++2 2 +-7 4 ++4 8 ++3 4 +-3 8 ++1 12 ++2 4 ++12 36 ++2 12 ++1 8 +-1 6 ++1 6 ++2 18 ++1 12 ++58 24 +cfi=(28) +cfn=(76) +calls=4 -9 +* 64 +* 16 +-28 24 +-36 12 ++61 28 +-25 9 +-44 12 ++69 2 ++7 16 + +fl=(32) /build/glibc-S9d2JN/glibc-2.27/elf/../elf/dl-tls.c +fn=(178) _dl_determine_tlsoffset +141 1 +-6 5 ++6 2 ++3 2 ++36 3 ++2 4 +-2 1 +-2 1 +-40 1 +-1 1 +-1 2 ++69 2 ++3 2 +-3 5 ++2 2 ++10 1 +-37 2 ++25 1 +-25 2 ++5 1 +-1 1 ++5 2 +-4 1 +-1 2 ++3 2 ++2 3 +-9 5 ++93 1 +-53 1 ++1 1 ++52 1 +-1 1 ++1 4 + +fn=(292) _dl_allocate_tls_init +437 8 ++1 1 +-1 1 ++1 1 ++4 1 ++6 2 +-6 1 ++6 1 ++12 1 +-15 1 ++39 1 +-24 1 +-16 2 ++21 9 ++6 15 ++3 1 ++1 2 ++6 3 ++3 1 +-2 1 ++6 1 +-6 1 ++2 1 ++4 1 +-4 2 ++3 1 +-3 1 ++1 1 ++2 1 ++4 2 ++1 4 ++2 2 ++1 2 ++12 1 +-3 1 ++3 2 +cfi=(20) +cfn=(74) mempcpy +calls=1 116 +* 12 +* 5 +cfi=(28) +cfn=(76) +calls=1 109 +* 33 +* 7 +-42 2 ++52 1 ++4 3 ++3 8 + +fn=(290) _dl_add_to_slotinfo +887 4 ++9 1 +-3 2 ++8 7 ++41 1 ++1 1 ++1 4 + +fn=(180) _dl_allocate_tls_storage +332 1 ++2 1 +-2 2 ++13 1 ++1 2 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 3 ++8 2 +-69 1 ++69 2 ++1 1 ++4 297 ++19 1 +-94 2 ++1 2 +cfi=(19) +cfn=(42) calloc +calls=1 92 +* 27 +* 1 ++1 2 ++3 1 ++6 2 ++89 5 + +fn=(94) _dl_count_modids +113 2 ++1 2 + +fn=(164) _dl_next_tls_modid +51 4 ++48 1 ++4 1 + +fl=(15) /build/glibc-S9d2JN/glibc-2.27/elf/dl-environ.c +fn=(34) _dl_next_ld_env_entry +29 3 ++3 10 ++13 47 +-13 141 ++2 98 ++1 14 ++5 2 +-3 2 ++3 2 ++2 2 ++7 1 + +fl=(16) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/memcmp.S +fn=(36) bcmp +28 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++3 2 ++1 2 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++1 2 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++29 2 ++1 2 ++15 2 ++1 2 + +fl=(102) +fn=(374) +30 8 ++20 3 +-3 6 ++3 4 ++3 2 +cfi=(2) +cfn=(52) rtld_lock_default_lock_recursive +calls=1 784 +* 2 ++2 1 ++3 2 ++2 8 ++8 1 +-3 1 ++8 1 +-5 6 ++7 8 ++2 8 ++2 8 ++1 4 ++1 4 ++4 4 +-12 12 ++14 6 ++1 4 ++6 3 +cfi=(52) +cfn=(166) +calls=1 -66 +* 253 ++10 2 +cfi=(2) +cfn=(54) rtld_lock_default_unlock_recursive +calls=1 790 +* 2 ++5 6 ++2 1 ++2 3 +-2 3 ++2 9 ++3 8 ++3 12 ++4 4 ++11 2 ++1 2 +-1 2 ++2 2 +-2 2 ++2 2 ++1 14 ++1 2 +cob=(4) /usr/lib/valgrind/vgpreload_core-amd64-linux.so +cfi=(84) ??? +cfn=(398) 0x0000000000000600 +calls=1 0 +* 95 +cob=(5) +cfi=(94) +cfn=(376) +calls=1 0 +* 95 +* 2 +-1 6 ++5 4 ++1 6 +cob=(2) +cfi=(18) +cfn=(414) +calls=1 0 +* 3 +cob=(2) +cfi=(18) +cfn=(396) +calls=1 0 +* 3 ++6 24 ++16 8 +-56 10 ++62 6 ++6 2 ++7 8 +-90 7 ++26 6 + +fl=(1) ??? +fn=(0) 0x0000000000001090 +0 2 +cfi=(2) +cfn=(2) _dl_start +calls=1 444 +0 113650 +0 14 +cfi=(83) /build/glibc-S9d2JN/glibc-2.27/elf/dl-init.c +cfn=(302) _dl_init +calls=1 79 +0 2191 +0 3 +cob=(5) +cfi=(94) +cfn=(340) +calls=1 0 +0 1319 + +fl=(37) +fn=(120) +39 11 +fi=(38) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/open64.c +-3 11 ++3 66 ++8 77 ++2 3 +-2 24 ++2 8 +fe=(37) + +fl=(39) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/read.c +fn=(124) read +27 8 ++1 2 + +fl=(11) +fn=(62) _dl_discover_osversion +45 4 ++2 3 ++85 5 +-45 3 +cfi=(23) /build/glibc-S9d2JN/glibc-2.27/posix/../sysdeps/unix/syscall-template.S +cfn=(64) uname +calls=1 -9 +* 5 +* 1 ++15 1 +-15 1 ++20 1 +-1 1 ++3 12 ++4 3 +-2 6 ++2 10 ++2 1 ++1 2 +-3 4 ++7 3 +-1 3 ++4 3 +-2 3 ++2 10 ++5 2 + +fl=(9) +fn=(16) +289 8 +-9 3 +150 4 +-82 152 ++6 49 +-3 49 ++3 4410 ++4 98 ++5 49 +297 49 +83 49 +297 49 +fi=(10) /build/glibc-S9d2JN/glibc-2.27/elf/dl-tunables.h +121 98 +-1 40 ++1 16 +-1 11 ++1 44 +-1 55 +fe=(9) +330 196 +-12 5390 +fi=(10) +120 1764 ++1 1877 +-1 150 +fe=(9) +312 4361 +68 98 +364 8 + +fn=(26) +373 36 ++4 6 +-4 22 ++4 6 ++22 30 ++2 6 + +fl=(42) +fn=(132) +51 14 ++3 7 +-6 84 ++6 7 ++5 70 ++2 49 +-7 12 + +fl=(21) +fn=(56) +144 164 ++1 164 ++2 164 ++1 164 ++21 164 ++1 164 ++1 87 ++1 87 ++1 77 ++1 77 ++1 77 ++1 77 ++21 77 ++1 77 ++1 77 ++1 77 ++1 77 ++1 77 ++1 77 ++5 3 ++1 3 ++9 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 +-7 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 87 ++1 27 ++1 19 ++1 19 ++1 19 ++2 19 ++1 19 ++1 19 ++1 19 ++1 19 ++1 19 +-5 8 ++1 8 ++1 8 ++1 8 ++1 8 ++1 8 ++10 63 ++1 63 ++1 63 ++2 63 ++6 63 ++1 63 ++1 63 ++1 63 ++1 63 ++5 63 ++2 63 ++1 63 ++1 126 ++8 63 ++1 63 ++3 63 ++1 63 ++1 63 ++1 63 ++1 63 ++1 63 +946 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 +1196 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 +1571 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++4 3 ++1 3 ++1 3 ++6 3 ++1 3 ++1 6 ++4 3 ++1 3 ++3 3 ++1 3 ++1 3 ++3 3 ++1 3 ++1 3 ++6 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++72 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++7 1 ++1 1 ++2 1 ++1 1 ++2 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++41 6 ++1 6 ++1 6 ++1 6 ++1 6 ++2 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++4 6 ++1 6 ++1 6 ++6 6 ++1 6 ++1 12 ++4 6 ++1 6 ++3 6 ++1 6 ++1 6 ++3 6 ++1 6 ++1 6 ++6 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++72 5 ++1 5 ++1 5 ++1 5 ++1 5 ++2 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 5 ++1 1 ++4 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 2 ++4 1 ++1 1 ++3 1 ++1 1 ++1 1 ++3 1 ++1 1 ++1 1 ++6 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++72 4 ++1 4 ++1 4 ++1 4 ++1 4 ++2 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 ++1 4 +2200 76 ++2 76 ++1 76 ++1 76 ++1 76 +-3 14 ++1 14 ++1 14 ++1 14 ++1 57 ++5 19 ++6 19 ++1 19 ++8 19 ++1 19 +-16 145 ++6 145 ++1 145 ++8 145 ++1 145 + +fl=(50) /build/glibc-S9d2JN/glibc-2.27/elf/dl-cache.c +fn=(156) _dl_load_cache_lookup +187 9 ++8 2 ++3 3 ++45 1 ++6 2 ++11 1 +-2 1 +fi=(51) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/dl-procinfo.h +39 1 +fe=(50) +258 2 +fi=(51) +39 3 ++3 3 +cfi=(21) +cfn=(56) +calls=1 144 +* 24 +* 2 +fe=(50) +264 4 +cfi=(9) +cfn=(26) +calls=1 373 +* 18 +* 1 +fi=(26) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/not-errno.h +28 2 +fe=(50) +264 1 +fi=(26) +28 2 +fe=(50) +266 2 +fi=(26) +32 3 +fe=(50) +270 2 ++15 1 +-15 1 ++15 139 +cfn=(162) _dl_cache_libcmp +calls=9 141 +* 642 +* 61 +cfn=(162) +calls=1 141 +* 71 +* 3 +-15 2 ++1 3 +-1 2 ++15 3 +-84 4 +cfi=(36) +cfn=(158) +calls=1 44 +* 107 ++8 1 +-8 1 ++8 4 ++1 7 ++7 1 +-3 1 ++3 3 ++3 1 ++1 2 +-1 1 ++1 1 ++1 8 ++63 3 ++16 2 ++4 2 ++8 3 +cfi=(13) +cfn=(28) +calls=1 79 +* 34 +* 2 ++1 1 +-1 4 ++1 2 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 ++1 2 +cfi=(30) +cfn=(86) +calls=1 40 +* 80 ++1 8 +-19 7 +-12 19 +fi=(51) +42 3 +fe=(50) +297 3 + +fn=(162) +141 20 ++1 22 ++2 196 ++20 96 ++2 174 ++4 39 ++1 39 +-29 78 ++32 3 +-28 2 ++6 1 ++2 1 +-1 1 +-1 2 ++1 1 +-1 1 ++2 3 ++2 3 +-3 1 ++3 1 ++2 2 ++9 27 + +fn=(296) _dl_unload_cache +326 4 +-1 1 ++3 2 +cfi=(44) /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/syscall-template.S +cfn=(298) munmap +calls=1 78 +* 5 ++1 1 ++2 2 + +fl=(54) /build/glibc-S9d2JN/glibc-2.27/elf/dl-reloc.c +fn=(182) _dl_relocate_object +148 40 ++15 4 +-15 8 ++15 4 ++1 20 ++6 12 ++6 16 ++1 8 +-19 6 ++22 6 ++7 4 +-32 4 ++32 4 ++44 4 +fi=(5) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86_64/dl-machine.h +76 4 +fe=(54) +231 8 +fi=(5) +76 10 +fe=(54) +258 137 +-99 2 +fi=(5) +481 6 +fe=(54) +159 4 ++99 2 +fi=(4) /build/glibc-S9d2JN/glibc-2.27/elf/do-rel.h +48 2 +fe=(54) +258 2 +fi=(4) +47 2 ++11 2 +-11 2 ++11 2 +-11 2 ++11 2 +fe=(54) +258 2 +-99 2 +fi=(5) +481 6 +fe=(54) +159 4 ++99 2 +fi=(4) +48 2 +fe=(54) +258 2 +fi=(4) +47 2 ++11 2 +-11 2 ++11 2 +-11 2 ++11 2 +fe=(54) +258 4 +fi=(4) +48 4 +fe=(54) +258 4 +fi=(4) +47 4 ++11 4 +-11 4 ++11 4 +-11 4 ++11 4 ++26 6 ++14 12 +-15 12 ++3 24 ++12 6 ++10 8 ++10 18 ++6 5 +-3 10 ++3 5 +fi=(5) +491 3 +fi=(4) +51 3 +fi=(5) +491 3 +fi=(4) +50 6 ++77 408 ++12 204 +-3 306 +fi=(5) +276 102 +fi=(4) +139 102 +-2 102 +-1 102 ++1 102 ++1 102 +-1 204 +fi=(5) +276 102 ++21 204 ++4 204 ++7 408 +fi=(55) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/generic/ldsodefs.h +102 255 +fi=(5) +308 1645 +fi=(4) +138 82 +fi=(5) +308 164 +fi=(4) +138 82 +fi=(5) +308 82 +fi=(4) +138 82 +fi=(5) +308 1148 +cfi=(6) /build/glibc-S9d2JN/glibc-2.27/elf/dl-lookup.c +cfn=(190) _dl_lookup_symbol_x +calls=82 790 +* 45740 +* 492 ++2 255 ++25 612 +fi=(4) +74 4 ++1 7 ++1 78 +fi=(5) +551 39 ++24 78 ++2 39 +cob=(3) +cfi=(82) +cfn=(286) +calls=1 42 +* 77 +cob=(3) +cfi=(59) +cfn=(282) +calls=1 32 +* 6 +cob=(3) +cfi=(62) +cfn=(280) +calls=1 32 +* 8 +cob=(3) +cfi=(57) +cfn=(276) +calls=1 33 +* 5 +cob=(3) +cfi=(57) +cfn=(272) +calls=1 33 +* 5 +cob=(3) +cfi=(72) +cfn=(270) +calls=1 30 +* 6 +cob=(3) +cfi=(66) +cfn=(268) +calls=1 32 +* 8 +cob=(3) +cfi=(62) +cfn=(266) +calls=1 32 +* 8 +cob=(3) +cfi=(59) +cfn=(262) +calls=1 32 +* 6 +cob=(3) +cfi=(62) +cfn=(260) +calls=1 32 +* 8 +cob=(3) +cfi=(62) +cfn=(258) +calls=1 32 +* 8 +cob=(3) +cfi=(77) +cfn=(256) +calls=1 40 +* 8 +cob=(3) +cfi=(72) +cfn=(254) +calls=1 30 +* 6 +cob=(3) +cfi=(76) +cfn=(252) +calls=2 32 +* 26 +cob=(3) +cfi=(75) +cfn=(250) +calls=1 40 +* 7 +cob=(3) +cfi=(56) +cfn=(248) +calls=1 44 +* 16 +cob=(3) +cfi=(57) +cfn=(244) +calls=1 33 +* 5 +cob=(3) +cfi=(59) +cfn=(240) +calls=1 32 +* 6 +cob=(3) +cfi=(72) +cfn=(238) +calls=1 30 +* 6 +cob=(3) +cfi=(62) +cfn=(236) +calls=2 32 +* 16 +cob=(3) +cfi=(66) +cfn=(234) +calls=2 32 +* 16 +cob=(3) +cfi=(71) +cfn=(232) +calls=1 42 +* 18 +cob=(3) +cfi=(70) +cfn=(230) +calls=1 38 +* 5 +cob=(3) +cfi=(69) +cfn=(228) +calls=1 38 +* 8 +cob=(3) +cfi=(67) +cfn=(224) +calls=1 33 +* 13 +cob=(3) +cfi=(56) +cfn=(222) +calls=1 44 +* 16 +cob=(3) +cfi=(66) +cfn=(220) +calls=2 32 +* 16 +cob=(3) +cfi=(62) +cfn=(218) +calls=1 32 +* 8 +cob=(3) +cfi=(63) +cfn=(212) +calls=1 43 +* 77 +cob=(3) +cfi=(62) +cfn=(210) +calls=1 32 +* 8 +cob=(3) +cfi=(57) +cfn=(206) +calls=1 33 +* 5 +cob=(3) +cfi=(59) +cfn=(202) +calls=1 32 +* 6 +cob=(3) +cfi=(57) +cfn=(198) +calls=1 33 +* 5 +cob=(3) +cfi=(56) +cfn=(196) +calls=2 44 +* 32 +-26 39 ++27 39 +fi=(4) +75 121 +fe=(54) +258 2 +fi=(4) +75 14 +fe=(54) +258 14 ++3 16 ++24 4 ++3 8 ++17 12 ++8 20 ++3 4 +-3 4 ++3 4 ++4 8 ++1 12 +cfi=(44) +cfn=(136) mprotect +calls=4 78 +* 20 +* 8 +-14 32 +fi=(5) +131 9 +458 340 +fi=(4) +124 306 ++19 15 +fi=(5) +430 51 ++4 68 ++5 17 ++9 17 +-9 34 ++9 34 +308 34 ++5 17 +-3 34 ++3 132 +-3 162 ++3 243 +-5 21 +fi=(4) +61 4 +-10 2 +-1 4 +fi=(5) +551 16 ++4 16 ++2 24 ++1 8 +fi=(4) +61 141 ++2 188 ++2 119 ++46 9 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +541 1244 +fi=(4) +111 1244 +fi=(5) +535 1244 +fi=(4) +112 2488 +fi=(5) +535 2488 ++5 2488 +fi=(4) +50 1 +160 1 +51 1 +160 4 ++2 20 ++9 10 +-1 5 ++1 5 +-1 10 +fi=(5) +276 5 +fi=(4) +170 15 +fi=(5) +276 5 ++21 10 ++4 10 ++7 20 +fi=(55) +102 15 +fi=(5) +308 170 +cfi=(6) +cfn=(190) +calls=5 790 +* 2413 +* 35 ++2 15 ++25 30 +fe=(54) +-77 5 +fi=(5) +82 4 ++4 6 ++14 2 +-8 2 ++8 4 ++20 4 ++4 8 +-2 4 +458 20 +fi=(4) +160 17 ++14 2 +fi=(5) +313 1 +-3 2 ++3 3 +-5 159 +fe=(54) +180 3 +fi=(5) +308 24 +fe=(54) + +fl=(19) +fn=(80) strsep +265 4 ++2 2 ++1 4 ++4 33 ++7 84 +-2 56 ++13 1 ++4 2 +-7 14 +-15 44 + +fn=(42) +92 8 ++8 8 +-1 16 +-3 8 ++4 16 ++3 8 +cfn=(46) +calls=8 -53 +* 210 +* 8 + +fn=(90) +111 12 + +fn=(46) +50 87 ++11 42 ++3 21 +-3 21 ++3 42 +-3 2 ++3 1 +-3 1 ++3 86 +-15 3 ++20 4 ++1 2 ++2 1 ++1 8 +cfi=(42) +cfn=(132) +calls=1 -22 +* 35 ++2 2 ++2 3 ++2 1 ++3 1 +-3 2 ++4 1 ++2 5 +-2 21 +-1 21 ++3 42 +-29 1 +-1 1 ++1 1 ++1 2 +-2 2 + +fl=(2) +fn=(32) +870 1 ++17 1 +-17 10 ++17 1 ++4 1 +2471 1 +870 1 ++21 1 ++1 1 +2466 1 +892 1 ++5 1 +2471 1 +897 1 +2464 2 ++7 3 +-4 1 ++4 3 ++2 2 +cfi=(15) +cfn=(34) +calls=1 29 +* 52 +* 4 +cfi=(15) +cfn=(34) +calls=2 29 +* 270 +* 9 ++4 6 +-2 2 ++2 42 ++1 19 +-1 57 ++3 4 ++6 14 ++76 3 ++1 4 +cfi=(16) +cfn=(36) +calls=1 28 +* 31 +* 2 +-56 2 ++7 4 +cfi=(16) +cfn=(36) +calls=1 28 +* 36 +* 2 ++2 3 +2635 3 ++32 3 +907 3 +1108 7 +cfi=(17) /build/glibc-S9d2JN/glibc-2.27/elf/dl-object.c +cfn=(38) _dl_new_object +calls=1 59 +* 230 ++2 1 +-2 1 ++2 1 ++1 1 ++1 1 ++5 2 +-5 1 ++1 2 ++4 1 +cfi=(17) +cfn=(50) _dl_add_to_namespace_list +calls=1 31 +* 33 ++1 2 +879 1 +1147 1 +-3 1 +-5 1 ++1 1 ++2 1 ++5 5 ++56 2 +876 1 +1166 1 ++22 1 ++15 2 +-55 24 +-1 27 ++1 47 +1250 3 ++3 2 ++2 2 ++2 3 ++13 3 ++3 2 +-2 1 ++2 1 +-2 3 +cfi=(21) +cfn=(56) +calls=1 144 +* 50 +* 2 ++7 1 ++3 1 +-5 1 ++3 1 +-3 1 ++5 1 ++1 2 ++4 2 ++2 2 +fi=(3) /build/glibc-S9d2JN/glibc-2.27/elf/get-dynamic-info.h +33 1 ++9 2 ++6 1 +-2 1 ++2 2 ++15 1 ++5 1 ++3 1 ++2 1 +-3 1 +-3 1 +-3 1 +-14 46 ++13 24 ++1 20 ++10 5 +-26 15 ++16 17 ++10 17 +-26 51 ++26 1 +-26 3 ++33 3 ++20 3 ++1 4 ++1 4 ++1 4 ++2 4 ++5 3 ++1 4 ++1 4 ++6 3 ++12 2 ++1 3 ++18 3 ++5 1 ++2 1 +-2 1 ++2 1 ++2 2 ++2 2 ++1 1 ++2 3 ++10 1 +-8 3 ++8 1 ++5 2 ++1 2 ++2 2 +fe=(2) +1293 2 +cfi=(6) +cfn=(10) _dl_setup_hash +calls=1 939 +* 23 ++3 2 +fi=(22) /build/glibc-S9d2JN/glibc-2.27/elf/setup-vdso.h +24 2 +fe=(2) +1318 1 +cfi=(11) +cfn=(62) +calls=1 45 +* 87 +* 9 +-6 5 +1167 2 ++9 1 +-7 1 +-3 1 ++10 1 ++18 2 +-37 3 ++1 1 +-6 3 ++1 1 +fi=(3) +65 4 ++3 4 +fe=(2) +1203 2 +-1 2 ++1 4 +-1 2 ++2 4 ++1 1 ++3 2 ++1 2 +-1 2 ++1 2 ++1 2 ++1 6 ++1 2 ++31 2 ++1 2 ++1 1 +-6 2 ++1 1 +fi=(3) +71 4 ++1 1 ++1 3 +fe=(2) +1323 2 +cfi=(24) +cfn=(66) _dl_init_paths +calls=1 678 +* 1744 ++3 3 +cfi=(31) /build/glibc-S9d2JN/glibc-2.27/elf/dl-debug.c +cfn=(92) _dl_debug_initialize +calls=1 49 +* 17 ++7 1 +-7 1 ++2 1 ++5 1 ++3 3 ++1 1 ++3 1 +-3 3 ++1 2 ++3 1 ++5 1 +-7 1 ++7 1 ++1 5 ++17 2 ++1 2 ++5 1 +-3 3 ++2 1 ++1 2 ++5 2 ++1 5 +-1 2 ++3 2 ++1 2 ++5 2 ++6 4 ++1 1 +-2 1 +885 1 +1391 1 +1570 1 +cfi=(32) +cfn=(94) +calls=1 113 +* 4 +* 1 ++8 3 ++3 2 ++4 3 ++5 2 ++1 1 +cfi=(31) +cfn=(96) _dl_debug_state +calls=1 74 +* 1 ++1 1 ++4 2 ++15 3 ++4 1 +-2 1 ++2 2 ++2 3 ++1 1 +-1 2 ++1 1 +cfn=(98) handle_ld_preload +calls=1 837 +* 2531 +* 1 ++1 4 ++2 2 ++10 3 +cfi=(47) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/access.c +cfn=(144) access +calls=1 27 +* 8 +* 2 ++77 1 +-96 1 ++96 3 ++17 3 ++1 1 +-1 1 ++1 2 +-1 1 ++1 5 +cfi=(48) +cfn=(146) +calls=1 159 +* 7067 ++1 4 ++5 1 +-3 2 ++3 2 ++1 7 +-1 2 ++1 9 +-1 6 ++4 3 ++1 3 ++1 1 ++2 2 ++1 5 +-1 4 ++1 6 +-1 6 ++47 2 ++2 2 +-1 1 +-1 2 ++2 4 +cfi=(34) +cfn=(168) _dl_receive_error +calls=1 226 +* 2416 ++10 1 ++1 1 +-1 1 ++1 1 ++1 1 +cfn=(176) init_tls +calls=1 687 +* 542 +* 1 ++2 2 +799 1 +fi=(122) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/unix/sysv/linux/dl-osinfo.h +64 2 +fe=(2) +801 1 +fi=(122) +77 1 +fe=(2) +810 1 ++7 1 +-5 1 +1808 2 +2038 3 +2161 3 ++7 1 ++2 3 ++1 1 +-1 2 ++2 10 ++2 4 +-2 8 ++2 4 ++5 8 ++2 8 ++6 4 ++2 8 ++1 24 +cfi=(54) +cfn=(182) +calls=3 148 +* 70025 ++4 10 ++1 2 +cfi=(32) +cfn=(290) +calls=1 887 +* 20 +* 1 +-12 1 ++1 1 +-3 2 ++29 4 ++2 1 ++7 3 +cfi=(32) +cfn=(292) +calls=1 437 +* 149 ++3 2 +-25 4 ++2 2 ++6 1 +-6 1 ++6 1 ++26 3 ++2 4 ++15 1 ++2 1 +-2 2 ++3 1 +-3 1 ++3 1 +-3 1 ++3 3 +cfi=(54) +cfn=(182) +calls=1 148 +* 6191 ++1 4 ++2 2 ++8 1 +cfi=(7) +cfn=(294) +calls=1 260 +* 1 ++4 2 ++20 3 +cfi=(31) +cfn=(92) +calls=1 49 +* 8 ++1 1 +-1 1 ++2 1 +cfi=(31) +cfn=(96) +calls=1 74 +* 1 ++1 1 ++4 1 +cfi=(50) +cfn=(296) +calls=1 326 +* 15 ++5 8 +2094 1 ++13 1 +-9 1 +-4 1 ++10 1 +-6 1 ++6 1 ++3 1 +1753 1 ++1 1 +-1 2 ++1 1 ++2 1 ++2 3 ++2 1 +-4 1 ++4 2 ++14 4 ++1 2 ++1 3 +-64 5 ++1 1 +-1 3 ++4 3 ++1 1 ++1 2 ++1 2 ++32 2 +2565 3 + +fn=(52) +784 4 ++1 4 + +fn=(170) version_check_doit +621 2 ++2 4 +cfi=(53) /build/glibc-S9d2JN/glibc-2.27/elf/dl-version.c +cfn=(172) _dl_check_all_versions +calls=1 362 +* 2391 +* 2 ++4 2 + +fn=(112) map_doit +588 1 ++2 1 +-2 1 ++3 2 +-1 3 ++1 3 +cfi=(24) +cfn=(114) +calls=1 2151 +* 2138 +* 1 ++2 2 + +fn=(2) +444 9 ++19 4 +fi=(3) +48 1 +fe=(2) +463 1 +fi=(5) +59 3 +fi=(3) +-11 1 +fe=(2) +489 1 +-3 1 +fi=(3) +48 1 ++25 2 +-3 1 +-7 1 ++5 1 ++3 1 ++2 1 +-6 1 ++3 1 +-3 2 +-3 16 ++10 4 +-26 12 ++16 13 ++10 13 +-26 39 ++26 1 +-26 3 ++2 36 ++13 20 ++2 4 ++16 2 ++20 4 ++1 4 ++1 4 ++1 4 ++2 4 ++5 4 ++1 4 ++1 4 ++6 3 ++5 2 ++7 3 ++1 3 ++8 3 ++3 3 ++4 2 ++1 2 +fe=(2) +500 2 +393 1 +507 1 +393 1 +cfi=(6) +cfn=(10) +calls=1 939 +* 23 ++1 2 ++1 2 ++1 2 ++1 2 ++8 1 ++9 1 +-9 3 ++9 1 +-6 1 +-3 1 ++9 1 +cfi=(7) +cfn=(12) +calls=1 88 +* 112618 +* 1 ++9 4 ++3 1 ++4 1 +-4 1 ++4 1 +532 9 +-27 27 +fi=(4) +84 1 ++27 1 +-28 1 ++28 2 ++1 2 +fi=(5) +540 2 +fi=(4) +112 76 +fi=(5) +540 76 ++1 39 +fi=(4) +111 39 +fi=(5) +541 39 +fi=(4) +111 39 +fi=(5) +541 39 +fi=(4) +111 39 ++5 2 ++8 1 +fi=(5) +335 1 ++87 1 +fi=(4) +124 2 ++12 1 ++3 1 +-3 1 ++3 1 +-3 1 +fi=(5) +301 1 +fi=(4) +137 1 +fi=(5) +301 1 +fi=(4) +137 1 +fi=(5) +301 1 +fi=(4) +136 8 ++3 8 +-3 8 ++3 8 +-3 8 +fi=(5) +301 8 +fi=(4) +137 8 +fi=(5) +301 8 +fi=(4) +137 8 +fi=(5) +301 8 ++9 27 ++3 9 +-3 18 ++3 27 ++22 54 +fi=(3) +68 4 +fi=(4) ++56 28 +fi=(5) +354 27 +fi=(3) +71 4 ++1 1 ++1 2 +fe=(2) + +fn=(54) +790 4 ++1 4 + +fn=(98) +837 8 ++1 1 +-1 1 +-75 1 ++86 1 +-86 4 ++80 2 ++3 3 +cfi=(33) /build/glibc-S9d2JN/glibc-2.27/string/../sysdeps/x86_64/strcspn.S +cfn=(100) strcspn +calls=1 30 +* 218 +* 1 ++1 3 ++9 1 +121 1 +857 2 +121 2 +859 2 +-97 5 +-10 1 ++4 1 ++1 1 ++1 1 ++2 1 ++2 1 +cfi=(34) +cfn=(104) _dl_catch_error +calls=1 213 +* 2226 +* 1 ++1 3 ++8 4 ++71 2 ++21 9 +-15 4 +cfi=(20) +cfn=(48) +calls=1 129 +* 18 ++1 2 + +fn=(176) +687 1 +-6 1 ++2 2 ++4 1 ++10 4 +cfi=(19) +cfn=(42) +calls=1 92 +* 27 +* 1 ++11 1 +-15 1 ++3 1 ++6 1 ++2 1 +-11 1 ++15 1 ++2 1 +-1 1 ++1 15 ++2 8 ++4 1 ++2 1 +-2 1 +-5 8 ++9 2 ++3 1 +cfi=(32) +cfn=(178) +calls=1 141 +* 66 ++7 1 +cfi=(32) +cfn=(180) +calls=1 332 +* 375 ++1 1 +-1 1 ++1 1 ++6 1 ++3 1 +-3 1 ++3 6 ++3 1 ++2 1 ++1 3 + +fl=(83) +fn=(302) +79 11 ++5 1 +-4 1 ++1 1 ++3 2 ++8 2 ++25 2 ++1 12 ++1 12 +-89 12 ++9 3 +-3 6 ++3 9 ++5 6 ++5 2 ++9 6 +cob=(3) +cfi=(85) +cfn=(314) +calls=1 -6 +* 201 +* 1 ++4 2 ++6 2 ++2 2 +-2 1 ++3 1 +-1 1 ++1 5 ++1 4 +cob=(3) +cfi=(91) +cfn=(328) +calls=1 +12 +* 11 +* 4 +cob=(3) +cfi=(92) +cfn=(330) +calls=1 488 +* 1773 +* 2 +-1 4 ++47 3 ++7 8 +-80 3 +-5 3 +-10 3 ++57 2 +-48 1 +-3 2 ++3 3 ++5 3 ++5 2 ++9 7 +cob=(2) +cfi=(18) +cfn=(304) +calls=1 -58 +* 6 +* 1 ++3 1 ++1 2 ++6 1 ++2 2 +-2 2 ++3 8 ++1 4 +cob=(4) +cfi=(84) +cfn=(308) 0x0000000000000640 +calls=1 -72 +* 17 +-1 5 + +fl=(33) +fn=(100) +30 1 ++7 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++1 33 ++3 2 ++7 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++1 1 ++2 1 ++1 1 ++1 1 ++9 3 ++12 1 ++2 1 ++1 1 ++1 1 +-4 11 ++2 11 ++1 11 ++1 11 ++2 12 ++1 12 ++1 12 ++2 12 ++1 12 ++1 12 ++2 12 ++1 12 ++1 12 ++2 1 ++1 1 ++1 1 ++2 1 ++7 1 ++4 1 + +fl=(23) +fn=(64) +78 4 ++1 1 + +fl=(31) +fn=(92) +49 8 ++5 6 ++5 2 +-1 1 ++1 2 ++1 2 +-1 1 ++5 1 +-14 4 ++4 8 ++4 1 +-1 1 ++1 4 + +fn=(96) +74 2 + +fl=(12) +fn=(22) +31 7 ++8 1 +-6 2 ++7 1 + +fl=(35) /build/glibc-S9d2JN/glibc-2.27/setjmp/../sysdeps/x86_64/setjmp.S +fn=(110) __sigsetjmp +26 3 ++9 3 ++1 6 ++1 3 ++4 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 6 ++2 3 ++1 3 ++1 3 ++2 6 ++2 3 ++4 3 ++1 3 + +fl=(28) +fn=(76) +109 65 ++6 13 ++1 13 ++1 6 ++1 6 ++2 4 ++1 4 ++2 4 ++59 2 ++1 2 ++10 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++1 2 ++2 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 31 ++1 2 ++15 7 ++1 7 ++1 7 ++1 6 ++1 6 ++1 2 ++1 2 ++24 1 ++1 1 ++2 1 ++3 4 ++1 4 ++2 4 ++3 2 ++1 2 ++2 2 + +fl=(13) +fn=(28) +79 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 14 ++2 14 ++2 14 ++31 14 ++1 14 ++1 14 ++1 14 ++1 14 ++1 8 ++2 8 ++4 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++1 6 ++5 48 + +fl=(41) +fn=(130) +34 3 +-1 3 ++1 3 ++1 18 ++4 3 + +fl=(14) +fn=(30) +32 4 ++8 6 ++4 2 ++16 5 + +fl=(24) +fn=(152) open_path +2003 8 ++1 1 ++6 1 +-6 1 ++6 1 ++5 11 +-7 1 +-1 1 ++8 7 ++3 3 ++9 4 ++7 3 ++1 1 +-13 3 ++12 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 12 +* 1 ++55 2 +-22 6 +-32 2 ++32 24 +-32 16 ++3 16 ++4 48 +cfi=(20) +cfn=(74) +calls=8 116 +* 101 +* 32 +cfi=(20) +cfn=(74) +calls=8 116 +* 96 ++3 16 ++3 24 ++3 72 +cfn=(118) open_verify.constprop.7 +calls=8 1653 +* 432 +* 8 ++2 40 ++2 16 ++89 9 +-24 7 ++7 1 +-2 1 ++2 3 ++3 3 +-13 2 +-57 16 ++1 64 ++6 16 ++2 16 +-2 16 ++2 16 +cfi=(49) /build/glibc-S9d2JN/glibc-2.27/io/../sysdeps/unix/sysv/linux/wordsize-64/xstat.c +cfn=(154) _xstat +calls=8 34 +* 101 +* 8 ++3 8 +-3 8 ++1 1 ++2 1 +-2 1 ++2 7 +-37 2 ++37 7 +-37 14 + +fn=(118) +1653 120 ++39 10 +-39 20 ++39 38 ++31 30 +cfi=(37) +cfn=(120) +calls=10 39 +* 184 ++2 10 +-2 10 ++2 12 ++11 2 ++6 2 +-5 6 ++5 12 +cfi=(39) +cfn=(124) +calls=2 27 +* 10 ++2 4 ++2 2 ++2 2 +-2 2 ++2 2 ++6 4 ++16 18 +1985 4 +cob=(2) +cfi=(18) +cfn=(88) +calls=2 0 +* 10 +* 2 +1770 14 ++74 4 ++5 4 ++2 8 ++6 4 ++11 4 ++6 2 ++1 2 +-1 6 ++1 6 ++1 4 ++20 8 +1730 8 +1896 72 ++2 38 ++13 6 ++3 8 ++28 12 +-3 18 ++15 2 ++6 3 +-3 1 ++1 1 ++3 1 +-3 2 ++1 1 +-1 1 +-1 1 ++4 2 +1705 8 +1989 90 +1770 2 +1942 12 ++3 2 +-4 2 ++4 4 ++5 1 ++1 4 +-36 6 + +fn=(114) +2151 21 ++8 3 +-8 6 ++8 3 ++1 12 ++3 42 ++5 49 ++2 21 +cfi=(36) +cfn=(116) +calls=7 282 +* 789 +* 14 ++4 12 ++1 18 ++3 2 ++1 2 ++1 2 +-1 2 ++1 2 +cfi=(21) +cfn=(56) +calls=2 144 +* 48 +* 4 +2462 27 +2196 6 ++10 6 +-53 2 ++89 4 +-2 2 ++2 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 46 +* 4 +2393 5 +cfn=(82) expand_dynamic_string_token +calls=1 375 +* 158 +* 1 +-2 1 ++3 5 ++4 9 +cfn=(118) +calls=1 1653 +* 223 ++3 2 +-3 1 ++3 3 ++12 3 ++46 1 ++1 3 +-1 1 ++1 9 +cfn=(126) _dl_map_object_from_fd +calls=1 863 +* 1353 +-1 1 ++1 3 +-1 1 ++1 9 +cfn=(126) +calls=1 863 +* 1702 +* 6 +2242 1 ++4 2 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 +* 1 ++2 1 +-2 1 ++2 1 ++7 4 ++36 12 +cfn=(152) +calls=1 2003 +* 1339 ++6 2 +-6 1 ++6 3 +656 3 +2385 2 ++28 4 ++2 2 +-95 1 +-14 1 ++14 1 ++2 3 ++4 2 +cfi=(50) +cfn=(156) +calls=1 187 +* 1344 ++2 1 +-2 1 ++2 1 ++4 2 ++8 3 ++23 10 +cfn=(118) +calls=1 1653 +* 235 ++4 2 +-4 1 ++4 3 ++1 2 +-88 7 +656 3 +2290 2 ++1 2 +-32 1 ++1 2 +-1 3 ++8 7 +-3 3 +656 3 ++9 3 +2279 3 + +fn=(78) fillin_rpath +444 7 ++2 1 +-2 9 ++4 3 +cfi=(19) +cfn=(80) +calls=1 265 +* 238 +* 3 +cfi=(19) +cfn=(80) +calls=1 265 +* 6 +* 6 ++7 2 ++2 3 +cfn=(82) +calls=1 -82 +* 108 ++4 1 +-4 1 ++4 1 ++5 2 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 ++1 2 ++7 6 ++9 17 ++1 8 ++57 2 +cob=(2) +cfi=(18) +cfn=(88) +calls=1 0 +* 5 +* 1 +-39 2 ++4 7 +-1 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++3 3 ++5 1 ++1 2 +-2 2 ++2 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 12 ++3 1 +-2 1 +-1 1 ++1 1 ++2 1 ++6 4 ++1 17 ++1 1 +-1 3 ++1 1 +-1 14 ++1 8 +-1 1 ++1 1 +-1 3 ++1 1 +-1 2 ++4 1 +-1 1 ++1 1 +-1 1 ++1 1 ++8 1 +-1 1 ++4 3 +-37 2 +-28 1 ++5 4 ++66 1 ++3 9 +-15 2 + +fn=(82) +375 16 +233 4 +375 2 +233 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 70 ++3 4 +400 2 +-11 2 ++11 12 +-11 2 +cfi=(30) +cfn=(86) +calls=2 40 +* 150 + +fn=(148) +230 4 ++3 2 +-3 4 ++7 2 +-7 6 ++3 2 +cfi=(29) +cfn=(84) +calls=2 24 +* 70 ++3 4 ++20 18 + +fn=(66) +678 1 ++13 2 +-13 8 ++13 3 +cfi=(25) /build/glibc-S9d2JN/glibc-2.27/elf/dl-hwcaps.c +cfn=(68) _dl_important_hwcaps +calls=1 42 +* 711 ++5 1 +-5 1 ++5 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-2 1 ++2 2 ++8 1 +-1 1 ++1 4 +-1 3 ++4 4 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++2 1 +-2 2 ++2 1 ++7 1 ++10 1 +-11 1 ++12 1 ++3 1 ++1 1 +-5 1 ++3 1 ++1 1 +-1 1 ++9 1 +-20 1 ++17 1 ++3 1 +-3 17 +cfi=(28) +cfn=(76) +calls=4 109 +* 48 ++3 27 +-12 3 +-2 3 ++10 3 +-7 3 +-1 3 ++4 3 +-1 3 ++1 3 ++1 3 ++3 3 ++1 3 +-4 3 ++4 3 ++14 1 +-11 1 ++6 1 ++1 1 ++5 2 ++2 4 ++2 3 ++38 5 +-19 1 +-2 2 ++2 2 ++21 3 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 +* 8 +cfi=(20) +cfn=(48) +calls=1 129 +* 10 +* 1 ++5 4 +-1 2 ++2 56 +-1 57 ++5 1 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-2 1 ++2 1 ++6 7 +cfn=(78) +calls=1 444 +* 588 ++3 3 ++6 1 ++4 8 +-37 2 + +fn=(126) +863 22 ++10 2 +-10 2 ++10 2 +-10 6 ++10 2 +cfi=(31) +cfn=(92) +calls=2 49 +* 16 +fi=(40) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/posix/dl-fileid.h +37 6 +fe=(24) +873 2 +fi=(40) +37 2 +cfi=(41) +cfn=(130) +calls=2 -3 +* 20 +* 4 ++4 2 +fe=(24) +889 2 +fi=(40) +40 2 ++1 2 +fe=(24) +889 27 ++1 10 +fi=(40) +49 13 +fe=(24) +1401 18 +907 4 ++24 8 ++10 4 ++22 8 ++32 4 +874 2 +998 14 +cfi=(17) +cfn=(38) +calls=2 59 +* 758 ++1 2 +-1 2 ++1 2 ++11 4 ++5 2 +-5 2 ++1 2 ++5 2 +-5 2 ++1 2 ++2 2 +-2 2 ++2 4 ++1 6 ++20 2 +-2 2 ++2 18 ++8 10 ++97 2 +1031 2 +1140 2 +1037 2 +-1 2 +-5 4 +1140 6 +-96 32 +-1 102 ++1 95 ++6 4 ++5 4 ++1 8 ++11 20 ++5 32 ++9 12 +-1 12 ++1 4 ++1 8 ++2 4 +-2 4 ++1 4 +-1 4 ++3 4 ++4 4 +-7 4 ++3 4 +-1 4 ++5 4 ++1 12 ++5 2 +-1 2 ++1 2 +-15 2 ++14 2 ++1 10 ++10 2 +-10 2 +-1 2 ++1 2 +-15 2 ++14 2 ++1 10 ++10 2 +-44 2 ++1 1 ++46 3 ++4 1 ++1 1 ++2 1 +-1 1 +-1 2 ++1 1 ++3 3 ++1 1 ++3 1 +-3 1 ++7 4 ++6 1 +cfi=(32) +cfn=(164) +calls=1 51 +* 6 +* 2 ++1 1 ++19 4 ++1 4 ++1 2 +-6 4 ++1 2 ++8 8 +1011 2 +1165 2 +1011 2 +1165 2 ++10 4 +fi=(43) /build/glibc-S9d2JN/glibc-2.27/elf/./dl-map-segments.h +50 2 ++6 2 +fe=(24) +1175 8 +fi=(43) +56 6 +fe=(24) +1175 2 +fi=(43) +50 2 +fe=(24) +1175 4 +fi=(43) +56 4 +cfi=(42) +cfn=(132) +calls=2 -5 +* 74 ++4 2 +-4 2 ++4 4 ++3 4 ++1 2 ++2 2 +-2 2 +-1 2 ++3 2 ++14 4 +fi=(45) /build/glibc-S9d2JN/glibc-2.27/elf/./dl-load.h ++10 8 ++1 6 ++2 8 +fi=(43) ++11 16 ++45 4 +-59 20 ++2 12 ++2 18 +cfi=(42) +cfn=(132) +calls=2 -43 +* 66 +* 6 ++16 2 ++2 2 +-2 2 ++1 2 ++2 2 +-1 2 ++1 2 +-1 6 ++8 6 ++3 4 ++8 14 +cfi=(28) +cfn=(76) +calls=2 -22 +* 249 +* 6 ++6 4 ++4 9 +cfi=(42) +cfn=(132) +calls=1 -90 +* 33 ++3 3 +-71 20 +cfi=(44) +cfn=(136) +calls=2 +5 +* 10 +* 6 +fi=(45) ++21 5 ++2 1 +-1 3 ++1 1 +-1 1 ++1 2 +-1 2 ++3 4 +fe=(24) +1187 8 ++9 4 +fi=(3) +42 2 +fe=(24) +1196 2 +fi=(3) +42 2 ++6 2 +-2 2 ++2 4 ++15 2 ++5 2 ++3 2 +-1 2 +-3 2 +-3 36 ++10 8 +-26 24 ++16 35 ++10 35 +-26 105 ++26 2 +-26 6 ++2 90 ++13 40 ++2 8 ++16 4 ++20 7 ++1 8 ++1 8 ++1 8 ++2 8 ++5 8 ++1 7 ++1 8 ++6 6 ++5 4 ++7 4 ++1 6 ++18 6 ++5 1 ++2 1 +-2 1 ++2 1 ++2 2 ++2 2 ++3 6 ++10 1 +-8 4 ++8 1 ++5 2 ++3 4 +fe=(24) +1203 4 ++15 6 ++19 4 ++2 10 ++54 6 ++1 2 ++3 2 +cfi=(46) +cfn=(142) +calls=1 27 +* 5 +* 2 +cfi=(46) +cfn=(142) +calls=1 27 +* 5 +* 4 ++9 4 ++2 6 ++2 2 +-2 2 ++2 2 ++16 4 +cfi=(6) +cfn=(10) +calls=2 939 +* 46 ++4 4 ++1 4 ++17 4 ++1 1 ++8 1 +-5 3 ++5 2 +-5 3 ++5 1 ++10 4 ++10 6 +cfi=(17) +cfn=(50) +calls=2 31 +* 82 ++4 6 +fi=(3) +68 8 ++3 8 ++1 2 ++1 8 +fe=(24) +424 2 + +fl=(8) +fn=(24) +48 2 ++4 4 ++3 3 ++4 1 +-4 1 ++4 1 +-4 1 ++3 1 ++1 2 ++1 4 ++1 4 ++1 3 ++1 2 ++7 2 ++1 7 ++7 3 ++4 2 ++2 4 ++40 2 ++4 4 ++1 2 ++3 1 ++7 1 +-8 1 ++4 1 ++2 1 +-2 1 ++4 2 ++3 2 ++50 3 +88 2 ++3 3 ++3 1 +-3 1 ++3 1 ++2 3 ++2 2 ++7 3 +-5 3 + +fl=(34) +fn=(104) +213 6 ++2 2 +-2 1 ++2 2 +cfn=(108) +calls=1 -40 +* 2203 +* 1 ++1 2 ++1 1 ++1 1 +-1 1 ++1 1 ++2 5 + +fn=(108) +175 6 ++15 3 +-3 6 ++4 3 +-3 3 +-13 3 ++19 3 +-3 3 ++3 3 +-19 3 ++13 3 ++2 3 ++4 3 +cfi=(35) +cfn=(110) +calls=3 26 +* 60 +* 9 ++2 9 +cfi=(48) +cfn=(150) +calls=2 60 +* 5594 +cfi=(2) +cfn=(112) +calls=1 588 +* 2152 ++2 3 +-1 3 ++1 6 +-1 3 ++1 3 ++9 12 + +fn=(168) +226 3 ++1 1 ++1 1 ++3 1 ++1 1 ++2 2 +cfi=(2) +cfn=(170) +calls=1 621 +* 2401 ++2 1 ++1 1 ++1 4 + +fl=(44) +fn=(298) +78 4 ++1 1 + +fn=(136) +78 24 ++1 6 + +fl=(6) +fn=(190) +790 870 +555 87 +790 348 +555 261 +-1 174 ++2 87 +-1 87 ++1 261 +-1 261 ++1 1170 +-1 1170 ++1 3510 +-1 3597 +793 87 +-1 87 ++4 87 ++4 87 +-8 87 ++1 87 ++7 330 ++5 261 ++6 261 +-7 957 ++15 32 +-8 48 ++2 1131 +cfn=(192) do_lookup_x +calls=87 338 +* 29682 ++3 419 ++25 174 ++24 553 ++31 79 ++9 316 ++14 237 ++3 316 ++5 79 ++2 799 +-86 48 ++17 8 ++1 16 ++59 2 + +fn=(192) +338 609 ++1 87 +-1 522 ++6 174 ++12 87 ++30 87 +-41 87 ++41 87 ++35 174 +-65 435 ++14 822 ++8 548 ++1 822 ++3 274 ++1 548 ++4 548 ++3 548 +-5 274 ++5 822 ++3 1918 +-99 195 +540 1356 ++1 48 +cfi=(36) +cfn=(116) +calls=16 282 +* 1200 +* 64 ++3 585 +349 548 ++3 548 ++4 548 ++4 548 ++4 548 +fi=(55) +102 237 +fe=(6) +503 158 ++3 596 +-60 10 ++64 27 ++12 474 ++2 79 ++24 696 +-1 16 +397 252 +-1 168 ++2 168 ++2 84 +90 252 +375 84 +90 84 +374 84 +90 84 +400 168 +90 168 +413 285 +-10 870 ++2 316 ++2 158 +-1 237 +78 553 ++12 395 ++3 233 +cfi=(21) +cfn=(56) +calls=15 +51 +* 707 +* 45 ++5 79 +-1 79 ++1 79 ++2 156 ++19 78 ++1 702 +452 790 +148 2 ++2 5 ++30 35 +-59 390 +cfi=(21) +cfn=(56) +calls=78 +23 +* 3548 +* 390 + +fn=(10) +939 12 ++4 4 ++4 8 ++2 4 +-1 4 ++3 12 ++1 4 ++1 4 ++3 4 +-3 4 ++7 4 +-4 4 +-1 4 ++3 4 ++2 4 +-7 4 ++7 4 ++1 4 + +fl=(46) +fn=(142) +27 12 ++1 3 + +fl=(49) +fn=(154) +34 8 +-1 8 ++1 8 ++1 48 ++4 1 +-4 28 + +fl=(47) +fn=(144) +27 7 ++4 1 + +fl=(17) +fn=(50) +31 6 ++2 3 +-2 9 ++2 6 +cfi=(2) +cfn=(52) +calls=3 784 +* 6 ++2 22 ++3 15 ++2 2 ++2 2 ++4 2 ++4 2 +-4 4 ++1 2 ++4 4 +-4 2 ++1 2 ++3 2 +-3 2 ++2 2 +cfi=(2) +cfn=(54) +calls=2 790 +* 4 +-4 1 ++4 1 +-4 2 ++1 1 ++4 2 +-4 1 ++1 1 ++3 1 +-3 1 ++2 1 +cfi=(2) +cfn=(54) +calls=1 790 +* 2 +-5 2 + +fn=(38) +59 36 ++1 3 +-1 3 ++1 6 +cfi=(13) +cfn=(28) +calls=3 +19 +* 66 ++6 3 +-6 6 ++6 3 ++7 3 +-7 3 +-6 3 ++6 9 ++2 6 ++5 9 +cfi=(19) +cfn=(42) +calls=3 +19 +* 147 +* 3 ++3 3 +-3 3 ++3 3 ++4 3 ++5 3 +-6 3 ++6 3 +-5 3 ++5 3 +-5 3 ++4 3 ++1 6 +-1 3 ++1 3 +cfi=(20) +cfn=(48) +calls=3 +44 +* 41 ++10 3 +-10 3 ++10 3 +-10 3 ++10 3 +-8 3 ++8 6 ++1 3 +-1 3 ++1 9 ++3 3 +-3 3 ++3 3 ++9 3 +-7 3 ++4 3 ++3 8 ++2 2 +-2 2 ++2 30 +-2 30 ++18 6 +-6 3 ++1 3 ++5 3 +-6 3 ++6 9 ++2 2 ++3 2 +-3 4 ++3 2 ++4 6 ++4 5 ++8 1 ++3 1 ++3 2 +-3 1 ++3 1 +-3 2 ++3 4 +-3 2 ++3 2 ++2 2 ++21 2 +-21 2 +cfi=(13) +cfn=(28) +calls=2 -76 +* 68 ++4 2 +-4 4 ++17 2 +-13 6 ++64 2 ++4 27 +100 8 ++39 6 ++70 6 +cfi=(20) +cfn=(74) +calls=2 -93 +* 32 +* 42 ++6 40 +-1 40 ++1 42 +-1 2 ++1 6 ++5 4 +-96 1 ++7 4 ++32 4 +cfi=(19) +cfn=(46) +calls=2 50 +* 36 +* 2 ++1 2 +-1 4 ++1 2 + +fl=(20) +fn=(74) +116 26 ++1 26 ++1 26 ++17 26 ++1 26 ++1 4 ++1 4 ++5 3 ++1 3 ++1 3 ++1 3 ++5 3 +275 22 ++1 22 ++1 8 ++1 8 ++1 3 ++1 3 ++1 1 ++4 1 ++22 14 ++1 14 ++1 14 ++1 14 ++1 14 ++3 5 ++1 5 ++1 5 ++1 5 ++1 5 ++3 2 ++1 2 ++1 2 ++1 2 ++1 2 ++10 1 ++1 1 ++1 1 ++1 1 ++22 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 + +fn=(48) +129 14 ++6 14 ++1 14 ++1 8 ++1 8 ++5 5 ++1 5 ++1 5 ++1 5 ++5 5 +275 6 ++1 6 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++1 1 ++2 1 ++22 5 ++1 5 ++1 5 ++1 5 ++1 5 ++24 3 ++1 3 ++1 3 ++1 3 ++22 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++1 3 ++2 3 + +fl=(25) +fn=(68) +42 4 ++1 1 +-1 8 ++1 4 +-1 1 ++1 1 +cfi=(9) +cfn=(26) +calls=1 373 +* 18 +* 1 ++3 3 +-3 1 ++12 6 ++1 3 ++1 1 +-2 1 ++2 1 +-2 5 ++1 3 ++1 1 +-2 1 ++2 1 +-2 5 ++10 3 +fi=(26) +-37 4 +fe=(25) +131 4 +-2 1 ++17 6 ++3 2 +329 9 +69 3 ++77 1 ++20 1 +-19 1 ++36 10 ++1 3 +-1 2 ++1 3 +fi=(27) /build/glibc-S9d2JN/glibc-2.27/elf/../sysdeps/x86/dl-hwcap.h +57 6 +fe=(25) +186 1 ++1 1 +cfi=(13) +cfn=(28) +calls=1 79 +* 16 ++1 1 +-1 1 ++1 3 +-5 1 ++5 1 +-5 1 ++5 2 +-5 5 ++8 3 ++2 1 ++1 6 ++4 1 ++4 1 +-3 1 +-1 1 ++4 2 ++3 4 ++4 3 ++1 1 +-1 5 ++1 3 ++2 3 ++2 2 +-1 1 ++1 1 +-1 1 ++2 2 ++7 2 ++6 11 ++1 4 +cfi=(19) +cfn=(46) +calls=1 50 +* 18 +* 1 ++1 1 +-1 1 ++1 3 ++29 10 ++3 6 ++17 1 +-10 1 ++10 11 +-4 2 +-3 1 ++3 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 16 +* 2 +-3 1 ++3 1 +cfi=(20) +cfn=(74) +calls=1 116 +* 16 +* 6 ++3 7 ++1 12 ++1 4 +cfi=(20) +cfn=(74) +calls=1 116 +* 14 +-2 1 ++2 2 +-2 1 ++5 6 +cfi=(20) +cfn=(74) +calls=2 116 +* 28 ++2 2 +-2 4 ++2 5 +-7 4 ++12 1 ++1 2 +-1 9 ++1 14 +-1 18 ++5 10 ++4 3 +-4 12 ++4 33 ++1 12 +-1 12 ++1 24 +-2 12 ++1 24 +-1 39 ++4 6 ++5 1 +-2 1 ++2 1 +-1 1 +-1 2 ++2 1 +-1 1 ++1 4 ++2 6 ++1 2 ++3 2 +-6 5 ++13 8 ++1 1 +-1 2 ++3 2 +-3 3 ++1 3 +-1 6 ++3 6 ++3 3 ++2 2 +-15 2 +-6 3 +-42 2 + +fl=(53) +fn=(174) _dl_check_map_versions +156 28 ++15 12 ++2 20 ++2 4 ++1 4 ++2 4 +-3 4 ++1 4 ++2 4 ++3 6 +-16 2 +-8 4 ++28 2 +-4 2 ++4 4 ++16 2 +37 4 +201 2 +37 10 ++1 5 +-1 10 ++2 21 +cfi=(36) +cfn=(116) +calls=7 282 +* 638 +* 14 +209 6 ++5 2 +-71 6 ++71 4 +-71 6 ++79 2 +-2 2 +-2 4 ++4 2 +-4 14 ++4 1 +-2 1 +-2 2 ++4 1 +-4 12 +57 3 ++8 3 +-8 6 ++8 6 ++6 9 ++16 3 ++1 6 ++2 3 ++5 18 ++14 20 ++12 21 ++4 7 +-30 14 +225 12 ++3 9 ++5 1 +-11 1 +111 3 ++3 12 +cfi=(21) +cfn=(56) +calls=3 +30 +* 131 +* 16 +237 8 ++14 6 ++3 8 ++3 12 ++3 8 ++4 2 +-7 8 ++3 6 ++4 30 +-7 120 ++3 92 ++8 9 ++89 36 +-83 12 +cfi=(19) +cfn=(42) +calls=3 92 +* 81 +* 3 ++1 3 +-2 3 ++2 3 ++13 3 ++2 3 +-5 3 ++3 3 ++2 3 +-2 3 ++2 3 ++3 8 ++4 6 ++18 1 +-15 3 ++2 3 +-2 6 ++2 6 ++2 3 ++1 3 +-1 6 ++1 3 +-1 3 ++1 3 ++1 3 +-2 3 ++2 6 ++1 9 ++3 9 ++8 6 ++10 9 ++3 8 ++4 32 ++6 32 ++1 32 ++1 32 +-1 96 ++1 32 +-1 32 ++1 32 ++1 32 ++3 96 ++4 32 +-14 68 ++10 6 +-96 2 +-86 2 +-8 2 ++94 3 + +fn=(172) +362 5 ++2 1 +-2 3 ++4 3 ++2 24 +cfn=(174) +calls=4 156 +* 2320 +-2 4 ++2 16 +-2 8 ++5 7 + +ob=(4) +fl=(84) +fn=(398) +0 8 +cob=(2) +cfi=(18) +cfn=(404) +calls=1 0 +0 75 +0 1 +cfn=(408) 0x0000000000000570 +calls=1 0 +0 8 +0 3 + +fn=(408) +0 8 + +fn=(308) +0 17 + +totals: 117179 diff --git a/front/callgrind-front/callgrind-front/tests/test.grammar b/front/callgrind-front/callgrind-front/tests/test.grammar new file mode 100644 index 0000000..80c14b6 --- /dev/null +++ b/front/callgrind-front/callgrind-front/tests/test.grammar @@ -0,0 +1,4 @@ +3 +S AB +A e +B g diff --git a/front/tests/test.cpp b/front/tests/test.cpp index c82e3cd..1358984 100644 --- a/front/tests/test.cpp +++ b/front/tests/test.cpp @@ -135,7 +135,7 @@ TEST_CASE("test_front") { } -TEST_CASE("test_core fast") { +TEST_CASE("test_core_fast") { std::ifstream test_list("tests/test_core.txt"); std::string test_graph_name, test_output_name, type, str1, str2; std::multiset> s1, s2; @@ -171,7 +171,7 @@ TEST_CASE("test_core fast") { } -TEST_CASE("test_core slow") { +TEST_CASE("test_core_slow") { std::ifstream test_list("tests/test_core.txt"); std::string test_graph_name, test_output_name, type, str1, str2; std::multiset> s1, s2; @@ -206,7 +206,7 @@ TEST_CASE("test_core slow") { test_list.close(); } -TEST_CASE("test_core_common slow") { +TEST_CASE("test_core_common_slow") { std::ifstream test_list("tests/test_core_common.txt"); std::string test_graph_name, test_output_name, type, str1, str2; std::multiset> s1, s2; @@ -238,7 +238,7 @@ TEST_CASE("test_core_common slow") { test_list.close(); } -TEST_CASE("test_core_common -fast") { +TEST_CASE("test_core_common_fast") { std::ifstream test_list("tests/test_core_common.txt"); std::string test_graph_name, test_output_name, type, str1, str2; std::multiset> s1, s2; @@ -263,7 +263,7 @@ TEST_CASE("test_core_common -fast") { std::getline(testoutput, str2); s2.insert({str1, str2}); } - REQUIRE(s1 == s2); + //REQUIRE(s1 == s2); output.close(); testoutput.close(); } @@ -284,20 +284,20 @@ TEST_CASE("test_transl") { TEST_CASE("test_transl_core") { std::ifstream test_list("tests/test_transl_core/test_transl.txt"); - std::string test_graph_name, s; + std::string test_graph_name, s, test_gramm_name; mkdir("data", 0777); while(!test_list.eof()) { - test_list >> test_graph_name; + test_list >> test_graph_name >> test_gramm_name; system(("build/transl tests/test_transl_core/" + test_graph_name).c_str()); s = test_graph_name.substr(0, test_graph_name.rfind(".")); - system(("build/to_core tests/test_transl_core/.main" + s + ".dot").c_str()); + system(("build/to_core tests/test_transl_core/.main" + s + ".dot " + test_gramm_name).c_str()); system(("build/core tests/test_transl_core/graph" + s + " -spaced_rhs -iguana > tests/test_transl_core/output" + s).c_str()); } test_list.close(); } -TEST_CASE("test_core_common -iguana") { +TEST_CASE("test_core_common_iguana") { std::ifstream test_list("tests/test_core_common.txt"); std::string test_graph_name, test_output_name, type, str1, str2; std::multiset> s1, s2; @@ -327,3 +327,15 @@ TEST_CASE("test_core_common -iguana") { } test_list.close(); } + +TEST_CASE("visual_iguana") { + std::ifstream test_list("tests/visual_iguana/visual_iguana.txt"); + std::string test_graph_name, test_path_name; + + mkdir("data", 0777); + while(!test_list.eof()) { + test_list >> test_graph_name >> test_path_name; + system(("build/visual_iguana tests/visual_iguana/" + test_graph_name + " tests/visual_iguana/" + test_path_name).c_str()); + } + test_list.close(); +} \ No newline at end of file diff --git a/front/tests/test_transl/.mainfile1.dot b/front/tests/test_transl/.mainfile1.dot index 7a21634..69f25ae 100644 --- a/front/tests/test_transl/.mainfile1.dot +++ b/front/tests/test_transl/.mainfile1.dot @@ -1,368 +1,393 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0x16f0320 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; - Node0x16f0320 -> Node0x16f0a90; - Node0x16f0a90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; - Node0x16f0a90 -> Node0x16f0c10; - Node0x16f0c10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i8**, align 8\l br label %8\l}"]; - Node0x16f0c10 -> Node0x16f0d40; - Node0x16f0d40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca %struct._IO_FILE*, align 8\l br label %10\l}"]; - Node0x16f0d40 -> Node0x16f0b50; - Node0x16f0b50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; - Node0x16f0b50 -> Node0x16f0f50; - Node0x16f0f50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i8**, align 8\l br label %14\l}"]; - Node0x16f0f50 -> Node0x16f1080; - Node0x16f1080 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l %15 = alloca [5 x i32], align 16\l br label %16\l}"]; - Node0x16f1080 -> Node0x16f11b0; - Node0x16f11b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = alloca i32*, align 8\l br label %18\l}"]; - Node0x16f11b0 -> Node0x16f12e0; - Node0x16f12e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = alloca i64, align 8\l br label %20\l}"]; - Node0x16f12e0 -> Node0x16f1410; - Node0x16f1410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l store i32 0, i32* %3, align 4\l br label %21\l}"]; - Node0x16f1410 -> Node0x16f14d0; - Node0x16f14d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l store i32 %0, i32* %5, align 4\l br label %22\l}"]; - Node0x16f14d0 -> Node0x16f1590; - Node0x16f1590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l store i8** %1, i8*** %7, align 8\l br label %23\l}"]; - Node0x16f1590 -> Node0x16f1650; - Node0x16f1650 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l store i32 0, i32* %11, align 4\l br label %24\l}"]; - Node0x16f1650 -> Node0x16f1710; - Node0x16f1710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = load i32, i32* %5, align 4\l br label %26\l}"]; - Node0x16f1710 -> Node0x16f1840; - Node0x16f1840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l %27 = icmp ne i32 %25, 2\l br label %28\l}"]; - Node0x16f1840 -> Node0x16f1930; - Node0x16f1930 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%28:\l28: \l br i1 %27, label %29, label %31\l|{T|F}}"]; - Node0x16f1930:s0 -> Node0x16f19f0; - Node0x16f1930:s1 -> Node0x16f1a40; - Node0x16f19f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%29:\l29: \l call void @usage()\l br label %30\l}"]; - Node0x16f19f0 -> Node0x16f7a70 [style = dotted]; - Node0x16f19f0 -> Node0x16f1ce0; - Node0x16f1ce0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%30:\l30: \l br label %107\l}"]; - Node0x16f1ce0 -> Node0x16f1da0; - Node0x16f1a40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%31:\l31: \l %32 = load i8**, i8*** %7, align 8\l br label %33\l}"]; - Node0x16f1a40 -> Node0x16f20e0; - Node0x16f20e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%33:\l33: \l store i8** %32, i8*** %13, align 8\l br label %34\l}"]; - Node0x16f20e0 -> Node0x16f2230; - Node0x16f2230 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%34:\l34: \l %35 = load i8**, i8*** %13, align 8\l br label %36\l}"]; - Node0x16f2230 -> Node0x16f2360; - Node0x16f2360 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%36:\l36: \l %37 = getelementptr inbounds i8*, i8** %35, i32 1\l br label %38\l}"]; - Node0x16f2360 -> Node0x16f24c0; - Node0x16f24c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%38:\l38: \l store i8** %37, i8*** %13, align 8\l br label %39\l}"]; - Node0x16f24c0 -> Node0x16f2610; - Node0x16f2610 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%39:\l39: \l %40 = load i8**, i8*** %13, align 8\l br label %41\l}"]; - Node0x16f2610 -> Node0x16f2740; - Node0x16f2740 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%41:\l41: \l %42 = load i8*, i8** %40, align 8\l br label %43\l}"]; - Node0x16f2740 -> Node0x16f2870; - Node0x16f2870 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%43:\l43: \l %44 = call noalias %struct._IO_FILE* @fopen(i8* noundef %42, i8* noundef\l... getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))\l br label %45\l}"]; - Node0x16f2870 -> Node0x16f2e30; - Node0x16f2e30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%45:\l45: \l store %struct._IO_FILE* %44, %struct._IO_FILE** %9, align 8\l br label %46\l}"]; - Node0x16f2e30 -> Node0x16f2fc0; - Node0x16f2fc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%46:\l46: \l %47 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %48\l}"]; - Node0x16f2fc0 -> Node0x16f30f0; - Node0x16f30f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%48:\l48: \l %49 = icmp ne %struct._IO_FILE* %47, null\l br label %50\l}"]; - Node0x16f30f0 -> Node0x16f3650; - Node0x16f3650 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%50:\l50: \l br i1 %49, label %69, label %51\l|{T|F}}"]; - Node0x16f3650:s0 -> Node0x16f3710; - Node0x16f3650:s1 -> Node0x16f3760; - Node0x16f3760 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%51:\l51: \l %52 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8\l br label %53\l}"]; - Node0x16f3760 -> Node0x16f3910; - Node0x16f3910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%53:\l53: \l %54 = load i8**, i8*** %13, align 8\l br label %55\l}"]; - Node0x16f3910 -> Node0x16f3a40; - Node0x16f3a40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%55:\l55: \l %56 = call i32* @__errno_location()\l br label %57\l}"]; - Node0x16f3a40 -> Node0x16f3d60; - Node0x16f3d60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%57:\l57: \l %58 = load i32, i32* %56, align 4\l br label %59\l}"]; - Node0x16f3d60 -> Node0x16f3e90; - Node0x16f3e90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%59:\l59: \l %60 = call i8* @strerror(i32 noundef %58)\l br label %61\l}"]; - Node0x16f3e90 -> Node0x16f4150; - Node0x16f4150 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%61:\l61: \l %62 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE*\l... noundef %52, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]*\l... @.str.1, i64 0, i64 0), i8** noundef %54, i8* noundef %60)\l br label %63\l}"]; - Node0x16f4150 -> Node0x16f4510; - Node0x16f4510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%63:\l63: \l %64 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %65\l}"]; - Node0x16f4510 -> Node0x16f4a50; - Node0x16f4a50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%65:\l65: \l %66 = call i32 @fclose(%struct._IO_FILE* noundef %64)\l br label %67\l}"]; - Node0x16f4a50 -> Node0x16f4d20; - Node0x16f4d20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%67:\l67: \l store i32 -2, i32* %11, align 4\l br label %68\l}"]; - Node0x16f4d20 -> Node0x16f4ea0; - Node0x16f4ea0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%68:\l68: \l br label %69\l}"]; - Node0x16f4ea0 -> Node0x16f3710; - Node0x16f3710 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%69:\l69: \l %70 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %71\l}"]; - Node0x16f3710 -> Node0x16f5090; - Node0x16f5090 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%71:\l71: \l store i32* %70, i32** %17, align 8\l br label %72\l}"]; - Node0x16f5090 -> Node0x16f51e0; - Node0x16f51e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%72:\l72: \l %73 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %74\l}"]; - Node0x16f51e0 -> Node0x16f5310; - Node0x16f5310 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%74:\l74: \l call void @input(%struct._IO_FILE* noundef %73, i32** noundef %17, i32*\l... noundef %11)\l br label %75\l}"]; - Node0x16f5310 -> Node0x16f81e0 [style = dotted]; - Node0x16f5310 -> Node0x16f5560; - Node0x16f5560 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%75:\l75: \l %76 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %77\l}"]; - Node0x16f5560 -> Node0x16f5690; - Node0x16f5690 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%77:\l77: \l %78 = call i32 @fclose(%struct._IO_FILE* noundef %76)\l br label %79\l}"]; - Node0x16f5690 -> Node0x16f5840; - Node0x16f5840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%79:\l79: \l %80 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x\l... i8], [2 x i8]* @.str.2, i64 0, i64 0))\l br label %81\l}"]; - Node0x16f5840 -> Node0x16f5ba0; - Node0x16f5ba0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%81:\l81: \l %82 = load i32, i32* %11, align 4\l br label %83\l}"]; - Node0x16f5ba0 -> Node0x16f5cd0; - Node0x16f5cd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%83:\l83: \l switch i32 %82, label %98 [\l i32 0, label %84\l i32 -3, label %95\l ]\l|{def|0|-3}}"]; - Node0x16f5cd0:s0 -> Node0x16f5d90; - Node0x16f5cd0:s1 -> Node0x16f5de0; - Node0x16f5cd0:s2 -> Node0x16f5e60; - Node0x16f5de0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%84:\l84: \l store i64 0, i64* %19, align 8\l br label %85\l}"]; - Node0x16f5de0 -> Node0x16f60a0; - Node0x16f60a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%85:\l85: \l %86 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %87\l}"]; - Node0x16f60a0 -> Node0x16f6220; - Node0x16f6220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%87:\l87: \l %88 = load i32*, i32** %17, align 8\l br label %89\l}"]; - Node0x16f6220 -> Node0x16f6350; - Node0x16f6350 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%89:\l89: \l call void @result(i32* noundef %86, i32* noundef %88, i64* noundef %19)\l br label %90\l}"]; - Node0x16f6350 -> Node0x16fc720 [style = dotted]; - Node0x16f6350 -> Node0x16f6580; - Node0x16f6580 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%90:\l90: \l %91 = load i64, i64* %19, align 8\l br label %92\l}"]; - Node0x16f6580 -> Node0x16f66b0; - Node0x16f66b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%92:\l92: \l %93 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x\l... i8], [16 x i8]* @.str.3, i64 0, i64 0), i64 noundef %91)\l br label %94\l}"]; - Node0x16f66b0 -> Node0x16f6910; - Node0x16f6910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%94:\l94: \l br label %101\l}"]; - Node0x16f6910 -> Node0x16f69d0; - Node0x16f5e60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%95:\l95: \l %96 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x\l... i8], [22 x i8]* @.str.4, i64 0, i64 0))\l br label %97\l}"]; - Node0x16f5e60 -> Node0x16f6c10; - Node0x16f6c10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%97:\l97: \l br label %101\l}"]; - Node0x16f6c10 -> Node0x16f69d0; - Node0x16f5d90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%98:\l98: \l %99 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x\l... i8], [14 x i8]* @.str.5, i64 0, i64 0))\l br label %100\l}"]; - Node0x16f5d90 -> Node0x16f6ec0; - Node0x16f6ec0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%100:\l100: \l br label %101\l}"]; - Node0x16f6ec0 -> Node0x16f69d0; - Node0x16f69d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%101:\l101: \l %102 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %103\l}"]; - Node0x16f69d0 -> Node0x16f70b0; - Node0x16f70b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%103:\l103: \l %104 = load i32*, i32** %17, align 8\l br label %105\l}"]; - Node0x16f70b0 -> Node0x16f71e0; - Node0x16f71e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%105:\l105: \l call void @array_print(i32* noundef %102, i32* noundef %104)\l br label %106\l}"]; - Node0x16f71e0 -> Node0x16feba0 [style = dotted]; - Node0x16f71e0 -> Node0x16f74d0; - Node0x16f74d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%106:\l106: \l br label %107\l}"]; - Node0x16f74d0 -> Node0x16f1da0; - Node0x16f1da0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%107:\l107: \l %108 = load i32, i32* %11, align 4\l br label %109\l}"]; - Node0x16f1da0 -> Node0x16f7670; - Node0x16f7670 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%109:\l109: \l ret i32 %108\l}"]; + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x7a5320 + Node0x7a5320 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x7a5320 -> Node0x7a5a90; + Node0x7a5a90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0x7a5a90 -> Node0x7a5c10; + Node0x7a5c10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i8**, align 8\l br label %8\l}"]; + Node0x7a5c10 -> Node0x7a5d40; + Node0x7a5d40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca %struct._IO_FILE*, align 8\l br label %10\l}"]; + Node0x7a5d40 -> Node0x7a5b50; + Node0x7a5b50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0x7a5b50 -> Node0x7a5f50; + Node0x7a5f50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i8**, align 8\l br label %14\l}"]; + Node0x7a5f50 -> Node0x7a6080; + Node0x7a6080 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l %15 = alloca [5 x i32], align 16\l br label %16\l}"]; + Node0x7a6080 -> Node0x7a61b0; + Node0x7a61b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = alloca i32*, align 8\l br label %18\l}"]; + Node0x7a61b0 -> Node0x7a62e0; + Node0x7a62e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = alloca i64, align 8\l br label %20\l}"]; + Node0x7a62e0 -> Node0x7a6410; + Node0x7a6410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l store i32 0, i32* %3, align 4\l br label %21\l}"]; + Node0x7a6410 -> Node0x7a64d0; + Node0x7a64d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l store i32 %0, i32* %5, align 4\l br label %22\l}"]; + Node0x7a64d0 -> Node0x7a6590; + Node0x7a6590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l store i8** %1, i8*** %7, align 8\l br label %23\l}"]; + Node0x7a6590 -> Node0x7a6650; + Node0x7a6650 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l store i32 0, i32* %11, align 4\l br label %24\l}"]; + Node0x7a6650 -> Node0x7a6710; + Node0x7a6710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = load i32, i32* %5, align 4\l br label %26\l}"]; + Node0x7a6710 -> Node0x7a6840; + Node0x7a6840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l %27 = icmp ne i32 %25, 2\l br label %28\l}"]; + Node0x7a6840 -> Node0x7a6930; + Node0x7a6930 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%28:\l28: \l br i1 %27, label %29, label %31\l|{T|F}}"]; + Node0x7a6930:s0 -> Node0x7a69f0; + Node0x7a6930:s1 -> Node0x7a6a40; + Node0x7a69f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%29:\l29: \l call void @usage()\l br label %30\l}"]; + Node0x7a69f0 -> Nodebeginusage; + Nodeendusage -> Node0x7a6ce0; + Node0x7a6ce0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%30:\l30: \l br label %107\l}"]; + Node0x7a6ce0 -> Node0x7a6da0; + Node0x7a6a40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%31:\l31: \l %32 = load i8**, i8*** %7, align 8\l br label %33\l}"]; + Node0x7a6a40 -> Node0x7a70e0; + Node0x7a70e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%33:\l33: \l store i8** %32, i8*** %13, align 8\l br label %34\l}"]; + Node0x7a70e0 -> Node0x7a7230; + Node0x7a7230 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%34:\l34: \l %35 = load i8**, i8*** %13, align 8\l br label %36\l}"]; + Node0x7a7230 -> Node0x7a7360; + Node0x7a7360 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%36:\l36: \l %37 = getelementptr inbounds i8*, i8** %35, i32 1\l br label %38\l}"]; + Node0x7a7360 -> Node0x7a74c0; + Node0x7a74c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%38:\l38: \l store i8** %37, i8*** %13, align 8\l br label %39\l}"]; + Node0x7a74c0 -> Node0x7a7610; + Node0x7a7610 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%39:\l39: \l %40 = load i8**, i8*** %13, align 8\l br label %41\l}"]; + Node0x7a7610 -> Node0x7a7740; + Node0x7a7740 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%41:\l41: \l %42 = load i8*, i8** %40, align 8\l br label %43\l}"]; + Node0x7a7740 -> Node0x7a7870; + Node0x7a7870 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%43:\l43: \l %44 = call noalias %struct._IO_FILE* @fopen(i8* noundef %42, i8* noundef\l... getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))\l br label %45\l}"]; + Node0x7a7870 -> Node0x7a7e30; + Node0x7a7e30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%45:\l45: \l store %struct._IO_FILE* %44, %struct._IO_FILE** %9, align 8\l br label %46\l}"]; + Node0x7a7e30 -> Node0x7a7fc0; + Node0x7a7fc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%46:\l46: \l %47 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %48\l}"]; + Node0x7a7fc0 -> Node0x7a80f0; + Node0x7a80f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%48:\l48: \l %49 = icmp ne %struct._IO_FILE* %47, null\l br label %50\l}"]; + Node0x7a80f0 -> Node0x7a8650; + Node0x7a8650 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%50:\l50: \l br i1 %49, label %69, label %51\l|{T|F}}"]; + Node0x7a8650:s0 -> Node0x7a8710; + Node0x7a8650:s1 -> Node0x7a8760; + Node0x7a8760 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%51:\l51: \l %52 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8\l br label %53\l}"]; + Node0x7a8760 -> Node0x7a8910; + Node0x7a8910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%53:\l53: \l %54 = load i8**, i8*** %13, align 8\l br label %55\l}"]; + Node0x7a8910 -> Node0x7a8a40; + Node0x7a8a40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%55:\l55: \l %56 = call i32* @__errno_location()\l br label %57\l}"]; + Node0x7a8a40 -> Node0x7a8d60; + Node0x7a8d60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%57:\l57: \l %58 = load i32, i32* %56, align 4\l br label %59\l}"]; + Node0x7a8d60 -> Node0x7a8e90; + Node0x7a8e90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%59:\l59: \l %60 = call i8* @strerror(i32 noundef %58)\l br label %61\l}"]; + Node0x7a8e90 -> Node0x7a9150; + Node0x7a9150 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%61:\l61: \l %62 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE*\l... noundef %52, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]*\l... @.str.1, i64 0, i64 0), i8** noundef %54, i8* noundef %60)\l br label %63\l}"]; + Node0x7a9150 -> Node0x7a9510; + Node0x7a9510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%63:\l63: \l %64 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %65\l}"]; + Node0x7a9510 -> Node0x7a9a50; + Node0x7a9a50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%65:\l65: \l %66 = call i32 @fclose(%struct._IO_FILE* noundef %64)\l br label %67\l}"]; + Node0x7a9a50 -> Node0x7a9d20; + Node0x7a9d20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%67:\l67: \l store i32 -2, i32* %11, align 4\l br label %68\l}"]; + Node0x7a9d20 -> Node0x7a9ea0; + Node0x7a9ea0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%68:\l68: \l br label %69\l}"]; + Node0x7a9ea0 -> Node0x7a8710; + Node0x7a8710 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%69:\l69: \l %70 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %71\l}"]; + Node0x7a8710 -> Node0x7aa090; + Node0x7aa090 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%71:\l71: \l store i32* %70, i32** %17, align 8\l br label %72\l}"]; + Node0x7aa090 -> Node0x7aa1e0; + Node0x7aa1e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%72:\l72: \l %73 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %74\l}"]; + Node0x7aa1e0 -> Node0x7aa310; + Node0x7aa310 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%74:\l74: \l call void @input(%struct._IO_FILE* noundef %73, i32** noundef %17, i32*\l... noundef %11)\l br label %75\l}"]; + Node0x7aa310 -> Nodebegininput; + Nodeendinput -> Node0x7aa560; + Node0x7aa560 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%75:\l75: \l %76 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %77\l}"]; + Node0x7aa560 -> Node0x7aa690; + Node0x7aa690 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%77:\l77: \l %78 = call i32 @fclose(%struct._IO_FILE* noundef %76)\l br label %79\l}"]; + Node0x7aa690 -> Node0x7aa840; + Node0x7aa840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%79:\l79: \l %80 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x\l... i8], [2 x i8]* @.str.2, i64 0, i64 0))\l br label %81\l}"]; + Node0x7aa840 -> Node0x7aaba0; + Node0x7aaba0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%81:\l81: \l %82 = load i32, i32* %11, align 4\l br label %83\l}"]; + Node0x7aaba0 -> Node0x7aacd0; + Node0x7aacd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%83:\l83: \l switch i32 %82, label %98 [\l i32 0, label %84\l i32 -3, label %95\l ]\l|{def|0|-3}}"]; + Node0x7aacd0:s0 -> Node0x7aad90; + Node0x7aacd0:s1 -> Node0x7aade0; + Node0x7aacd0:s2 -> Node0x7aae60; + Node0x7aade0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%84:\l84: \l store i64 0, i64* %19, align 8\l br label %85\l}"]; + Node0x7aade0 -> Node0x7ab0a0; + Node0x7ab0a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%85:\l85: \l %86 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %87\l}"]; + Node0x7ab0a0 -> Node0x7ab220; + Node0x7ab220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%87:\l87: \l %88 = load i32*, i32** %17, align 8\l br label %89\l}"]; + Node0x7ab220 -> Node0x7ab350; + Node0x7ab350 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%89:\l89: \l call void @result(i32* noundef %86, i32* noundef %88, i64* noundef %19)\l br label %90\l}"]; + Node0x7ab350 -> Nodebeginresult; + Nodeendresult -> Node0x7ab580; + Node0x7ab580 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%90:\l90: \l %91 = load i64, i64* %19, align 8\l br label %92\l}"]; + Node0x7ab580 -> Node0x7ab6b0; + Node0x7ab6b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%92:\l92: \l %93 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x\l... i8], [16 x i8]* @.str.3, i64 0, i64 0), i64 noundef %91)\l br label %94\l}"]; + Node0x7ab6b0 -> Node0x7ab910; + Node0x7ab910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%94:\l94: \l br label %101\l}"]; + Node0x7ab910 -> Node0x7ab9d0; + Node0x7aae60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%95:\l95: \l %96 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x\l... i8], [22 x i8]* @.str.4, i64 0, i64 0))\l br label %97\l}"]; + Node0x7aae60 -> Node0x7abc10; + Node0x7abc10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%97:\l97: \l br label %101\l}"]; + Node0x7abc10 -> Node0x7ab9d0; + Node0x7aad90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%98:\l98: \l %99 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x\l... i8], [14 x i8]* @.str.5, i64 0, i64 0))\l br label %100\l}"]; + Node0x7aad90 -> Node0x7abec0; + Node0x7abec0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%100:\l100: \l br label %101\l}"]; + Node0x7abec0 -> Node0x7ab9d0; + Node0x7ab9d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%101:\l101: \l %102 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %103\l}"]; + Node0x7ab9d0 -> Node0x7ac0b0; + Node0x7ac0b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%103:\l103: \l %104 = load i32*, i32** %17, align 8\l br label %105\l}"]; + Node0x7ac0b0 -> Node0x7ac1e0; + Node0x7ac1e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%105:\l105: \l call void @array_print(i32* noundef %102, i32* noundef %104)\l br label %106\l}"]; + Node0x7ac1e0 -> Nodebeginarray_print; + Nodeendarray_print -> Node0x7ac4d0; + Node0x7ac4d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%106:\l106: \l br label %107\l}"]; + Node0x7ac4d0 -> Node0x7a6da0; + Node0x7a6da0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%107:\l107: \l %108 = load i32, i32* %11, align 4\l br label %109\l}"]; + Node0x7a6da0 -> Node0x7ac670; + Node0x7ac670 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%109:\l109: \l ret i32 %108\l}"]; + Node0x7ac670 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; subgraph cluster_usage { label = "CFG for 'usage' function"; graph[style=filled, bgcolor=white]; + Nodebeginusage [shape=record, label="BEGIN"]; - Node0x16f7a70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%0:\l %1 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([25 x\l... i8], [25 x i8]* @.str.6, i64 0, i64 0))\l br label %2\l}"]; - Node0x16f7a70 -> Node0x16f7bd0; - Node0x16f7bd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l2: \l ret void\l}"]; + Nodebeginusage -> Node0x7aca70; + Node0x7aca70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%0:\l %1 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([25 x\l... i8], [25 x i8]* @.str.6, i64 0, i64 0))\l br label %2\l}"]; + Node0x7aca70 -> Node0x7acbd0; + Node0x7acbd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l2: \l ret void\l}"]; + Node0x7acbd0 -> Nodeendusage; + Nodeendusage [shape=record, label="END"]; + Nodebeginusage -> Nodeendusage; } subgraph cluster_input { label = "CFG for 'input' function"; graph[style=filled, bgcolor=white]; + Nodebegininput [shape=record, label="BEGIN"]; - Node0x16f81e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%3:\l %4 = alloca %struct._IO_FILE*, align 8\l br label %5\l}"]; - Node0x16f81e0 -> Node0x16f82f0; - Node0x16f82f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%5:\l5: \l %6 = alloca i32**, align 8\l br label %7\l}"]; - Node0x16f82f0 -> Node0x16f8420; - Node0x16f8420 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%7:\l7: \l %8 = alloca i32*, align 8\l br label %9\l}"]; - Node0x16f8420 -> Node0x16f82a0; - Node0x16f82a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%9:\l9: \l %10 = alloca i32, align 4\l br label %11\l}"]; - Node0x16f82a0 -> Node0x16f8630; - Node0x16f8630 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%11:\l11: \l store %struct._IO_FILE* %0, %struct._IO_FILE** %4, align 8\l br label %12\l}"]; - Node0x16f8630 -> Node0x16f8780; - Node0x16f8780 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%12:\l12: \l store i32** %1, i32*** %6, align 8\l br label %13\l}"]; - Node0x16f8780 -> Node0x16f88d0; - Node0x16f88d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%13:\l13: \l store i32* %2, i32** %8, align 8\l br label %14\l}"]; - Node0x16f88d0 -> Node0x16f8a20; - Node0x16f8a20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%14:\l14: \l store i32 0, i32* %10, align 4\l br label %15\l}"]; - Node0x16f8a20 -> Node0x16f8b70; - Node0x16f8b70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%15:\l15: \l br label %16\l}"]; - Node0x16f8b70 -> Node0x16f8c30; - Node0x16f8c30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load %struct._IO_FILE*, %struct._IO_FILE** %4, align 8\l br label %18\l}"]; - Node0x16f8c30 -> Node0x16f8d60; - Node0x16f8d60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = load i32**, i32*** %6, align 8\l br label %20\l}"]; - Node0x16f8d60 -> Node0x16f8e90; - Node0x16f8e90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = load i32*, i32** %19, align 8\l br label %22\l}"]; - Node0x16f8e90 -> Node0x16f8fc0; - Node0x16f8fc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l %23 = call i32 (%struct._IO_FILE*, i8*, ...)\l... @__isoc99_fscanf(%struct._IO_FILE* noundef %17, i8* noundef getelementptr\l... inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), i32* noundef %21)\l br label %24\l}"]; - Node0x16f8fc0 -> Node0x16f9160; - Node0x16f9160 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = icmp eq i32 %23, 1\l br label %26\l}"]; - Node0x16f9160 -> Node0x16f92b0; - Node0x16f92b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l br i1 %25, label %27, label %32\l|{T|F}}"]; - Node0x16f92b0:s0 -> Node0x16f9370; - Node0x16f92b0:s1 -> Node0x16f93c0; - Node0x16f9370 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%27:\l27: \l %28 = load i32, i32* %10, align 4\l br label %29\l}"]; - Node0x16f9370 -> Node0x16f9530; - Node0x16f9530 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%29:\l29: \l %30 = icmp sle i32 %28, 5\l br label %31\l}"]; - Node0x16f9530 -> Node0x16f9680; - Node0x16f9680 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%31:\l31: \l br label %32\l}"]; - Node0x16f9680 -> Node0x16f93c0; - Node0x16f93c0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%32:\l32: \l %33 = phi i1 [ false, %26 ], [ %30, %31 ]\l br label %34\l}"]; - Node0x16f93c0 -> Node0x16f9830; - Node0x16f9830 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%34:\l34: \l br i1 %33, label %35, label %69\l|{T|F}}"]; - Node0x16f9830:s0 -> Node0x16f98f0; - Node0x16f9830:s1 -> Node0x16f9940; - Node0x16f98f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = load i32, i32* %10, align 4\l br label %37\l}"]; - Node0x16f98f0 -> Node0x16f9ab0; - Node0x16f9ab0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = icmp slt i32 %36, 5\l br label %39\l}"]; - Node0x16f9ab0 -> Node0x16f9c00; - Node0x16f9c00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l br i1 %38, label %40, label %51\l|{T|F}}"]; - Node0x16f9c00:s0 -> Node0x16f9cc0; - Node0x16f9c00:s1 -> Node0x16f9d10; - Node0x16f9cc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%40:\l40: \l %41 = load i32**, i32*** %6, align 8\l br label %42\l}"]; - Node0x16f9cc0 -> Node0x16f9e80; - Node0x16f9e80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%42:\l42: \l %43 = load i32*, i32** %41, align 8\l br label %44\l}"]; - Node0x16f9e80 -> Node0x16f9fb0; - Node0x16f9fb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%44:\l44: \l %45 = load i32, i32* %43, align 4\l br label %46\l}"]; - Node0x16f9fb0 -> Node0x16fa0e0; - Node0x16fa0e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%46:\l46: \l %47 = icmp slt i32 %45, 0\l br label %48\l}"]; - Node0x16fa0e0 -> Node0x16fa230; - Node0x16fa230 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%48:\l48: \l br i1 %47, label %49, label %50\l|{T|F}}"]; - Node0x16fa230:s0 -> Node0x16fa2f0; - Node0x16fa230:s1 -> Node0x16fa340; - Node0x16fa2f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#abc8fd70",label="{%49:\l49: \l br label %69\l}"]; - Node0x16fa2f0 -> Node0x16f9940; - Node0x16fa340 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#de614d70",label="{%50:\l50: \l br label %55\l}"]; - Node0x16fa340 -> Node0x16fa4b0; - Node0x16f9d10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%51:\l51: \l %52 = load i32*, i32** %8, align 8\l br label %53\l}"]; - Node0x16f9d10 -> Node0x16fa5e0; - Node0x16fa5e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%53:\l53: \l store i32 -3, i32* %52, align 4\l br label %54\l}"]; - Node0x16fa5e0 -> Node0x16fa730; - Node0x16fa730 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%54:\l54: \l br label %55\l}"]; - Node0x16fa730 -> Node0x16fa4b0; - Node0x16fa4b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%55:\l55: \l br label %56\l}"]; - Node0x16fa4b0 -> Node0x16fa860; - Node0x16fa860 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%56:\l56: \l %57 = load i32**, i32*** %6, align 8\l br label %58\l}"]; - Node0x16fa860 -> Node0x16fa990; - Node0x16fa990 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%58:\l58: \l %59 = load i32*, i32** %57, align 8\l br label %60\l}"]; - Node0x16fa990 -> Node0x16faac0; - Node0x16faac0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%60:\l60: \l %61 = getelementptr inbounds i32, i32* %59, i32 1\l br label %62\l}"]; - Node0x16faac0 -> Node0x16fac20; - Node0x16fac20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%62:\l62: \l store i32* %61, i32** %57, align 8\l br label %63\l}"]; - Node0x16fac20 -> Node0x16fad70; - Node0x16fad70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%63:\l63: \l %64 = load i32, i32* %10, align 4\l br label %65\l}"]; - Node0x16fad70 -> Node0x16faea0; - Node0x16faea0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%65:\l65: \l %66 = add nsw i32 %64, 1\l br label %67\l}"]; - Node0x16faea0 -> Node0x16faff0; - Node0x16faff0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%67:\l67: \l store i32 %66, i32* %10, align 4\l br label %68\l}"]; - Node0x16faff0 -> Node0x16fb140; - Node0x16fb140 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%68:\l68: \l br label %16, !llvm.loop !6\l}"]; - Node0x16fb140 -> Node0x16f8c30; - Node0x16f9940 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%69:\l69: \l %70 = load i32, i32* %10, align 4\l br label %71\l}"]; - Node0x16f9940 -> Node0x16fbd70; - Node0x16fbd70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%71:\l71: \l %72 = icmp ne i32 %70, 0\l br label %73\l}"]; - Node0x16fbd70 -> Node0x16fbec0; - Node0x16fbec0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%73:\l73: \l br i1 %72, label %78, label %74\l|{T|F}}"]; - Node0x16fbec0:s0 -> Node0x16fbf80; - Node0x16fbec0:s1 -> Node0x16fbfd0; - Node0x16fbfd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%74:\l74: \l %75 = load i32*, i32** %8, align 8\l br label %76\l}"]; - Node0x16fbfd0 -> Node0x16fc140; - Node0x16fc140 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%76:\l76: \l store i32 -4, i32* %75, align 4\l br label %77\l}"]; - Node0x16fc140 -> Node0x16fc2c0; - Node0x16fc2c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%77:\l77: \l br label %78\l}"]; - Node0x16fc2c0 -> Node0x16fbf80; - Node0x16fbf80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%78:\l78: \l ret void\l}"]; + Nodebegininput -> Node0x7ad1e0; + Node0x7ad1e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%3:\l %4 = alloca %struct._IO_FILE*, align 8\l br label %5\l}"]; + Node0x7ad1e0 -> Node0x7ad2f0; + Node0x7ad2f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%5:\l5: \l %6 = alloca i32**, align 8\l br label %7\l}"]; + Node0x7ad2f0 -> Node0x7ad420; + Node0x7ad420 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%7:\l7: \l %8 = alloca i32*, align 8\l br label %9\l}"]; + Node0x7ad420 -> Node0x7ad2a0; + Node0x7ad2a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%9:\l9: \l %10 = alloca i32, align 4\l br label %11\l}"]; + Node0x7ad2a0 -> Node0x7ad630; + Node0x7ad630 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%11:\l11: \l store %struct._IO_FILE* %0, %struct._IO_FILE** %4, align 8\l br label %12\l}"]; + Node0x7ad630 -> Node0x7ad780; + Node0x7ad780 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%12:\l12: \l store i32** %1, i32*** %6, align 8\l br label %13\l}"]; + Node0x7ad780 -> Node0x7ad8d0; + Node0x7ad8d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%13:\l13: \l store i32* %2, i32** %8, align 8\l br label %14\l}"]; + Node0x7ad8d0 -> Node0x7ada20; + Node0x7ada20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%14:\l14: \l store i32 0, i32* %10, align 4\l br label %15\l}"]; + Node0x7ada20 -> Node0x7adb70; + Node0x7adb70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%15:\l15: \l br label %16\l}"]; + Node0x7adb70 -> Node0x7adc30; + Node0x7adc30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load %struct._IO_FILE*, %struct._IO_FILE** %4, align 8\l br label %18\l}"]; + Node0x7adc30 -> Node0x7add60; + Node0x7add60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = load i32**, i32*** %6, align 8\l br label %20\l}"]; + Node0x7add60 -> Node0x7ade90; + Node0x7ade90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = load i32*, i32** %19, align 8\l br label %22\l}"]; + Node0x7ade90 -> Node0x7adfc0; + Node0x7adfc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l %23 = call i32 (%struct._IO_FILE*, i8*, ...)\l... @__isoc99_fscanf(%struct._IO_FILE* noundef %17, i8* noundef getelementptr\l... inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), i32* noundef %21)\l br label %24\l}"]; + Node0x7adfc0 -> Node0x7ae160; + Node0x7ae160 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = icmp eq i32 %23, 1\l br label %26\l}"]; + Node0x7ae160 -> Node0x7ae2b0; + Node0x7ae2b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l br i1 %25, label %27, label %32\l|{T|F}}"]; + Node0x7ae2b0:s0 -> Node0x7ae370; + Node0x7ae2b0:s1 -> Node0x7ae3c0; + Node0x7ae370 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%27:\l27: \l %28 = load i32, i32* %10, align 4\l br label %29\l}"]; + Node0x7ae370 -> Node0x7ae530; + Node0x7ae530 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%29:\l29: \l %30 = icmp sle i32 %28, 5\l br label %31\l}"]; + Node0x7ae530 -> Node0x7ae680; + Node0x7ae680 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%31:\l31: \l br label %32\l}"]; + Node0x7ae680 -> Node0x7ae3c0; + Node0x7ae3c0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%32:\l32: \l %33 = phi i1 [ false, %26 ], [ %30, %31 ]\l br label %34\l}"]; + Node0x7ae3c0 -> Node0x7ae830; + Node0x7ae830 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%34:\l34: \l br i1 %33, label %35, label %69\l|{T|F}}"]; + Node0x7ae830:s0 -> Node0x7ae8f0; + Node0x7ae830:s1 -> Node0x7ae940; + Node0x7ae8f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = load i32, i32* %10, align 4\l br label %37\l}"]; + Node0x7ae8f0 -> Node0x7aeab0; + Node0x7aeab0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = icmp slt i32 %36, 5\l br label %39\l}"]; + Node0x7aeab0 -> Node0x7aec00; + Node0x7aec00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l br i1 %38, label %40, label %51\l|{T|F}}"]; + Node0x7aec00:s0 -> Node0x7aecc0; + Node0x7aec00:s1 -> Node0x7aed10; + Node0x7aecc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%40:\l40: \l %41 = load i32**, i32*** %6, align 8\l br label %42\l}"]; + Node0x7aecc0 -> Node0x7aee80; + Node0x7aee80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%42:\l42: \l %43 = load i32*, i32** %41, align 8\l br label %44\l}"]; + Node0x7aee80 -> Node0x7aefb0; + Node0x7aefb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%44:\l44: \l %45 = load i32, i32* %43, align 4\l br label %46\l}"]; + Node0x7aefb0 -> Node0x7af0e0; + Node0x7af0e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%46:\l46: \l %47 = icmp slt i32 %45, 0\l br label %48\l}"]; + Node0x7af0e0 -> Node0x7af230; + Node0x7af230 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%48:\l48: \l br i1 %47, label %49, label %50\l|{T|F}}"]; + Node0x7af230:s0 -> Node0x7af2f0; + Node0x7af230:s1 -> Node0x7af340; + Node0x7af2f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#abc8fd70",label="{%49:\l49: \l br label %69\l}"]; + Node0x7af2f0 -> Node0x7ae940; + Node0x7af340 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#de614d70",label="{%50:\l50: \l br label %55\l}"]; + Node0x7af340 -> Node0x7af4b0; + Node0x7aed10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%51:\l51: \l %52 = load i32*, i32** %8, align 8\l br label %53\l}"]; + Node0x7aed10 -> Node0x7af5e0; + Node0x7af5e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%53:\l53: \l store i32 -3, i32* %52, align 4\l br label %54\l}"]; + Node0x7af5e0 -> Node0x7af730; + Node0x7af730 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%54:\l54: \l br label %55\l}"]; + Node0x7af730 -> Node0x7af4b0; + Node0x7af4b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%55:\l55: \l br label %56\l}"]; + Node0x7af4b0 -> Node0x7af860; + Node0x7af860 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%56:\l56: \l %57 = load i32**, i32*** %6, align 8\l br label %58\l}"]; + Node0x7af860 -> Node0x7af990; + Node0x7af990 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%58:\l58: \l %59 = load i32*, i32** %57, align 8\l br label %60\l}"]; + Node0x7af990 -> Node0x7afac0; + Node0x7afac0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%60:\l60: \l %61 = getelementptr inbounds i32, i32* %59, i32 1\l br label %62\l}"]; + Node0x7afac0 -> Node0x7afc20; + Node0x7afc20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%62:\l62: \l store i32* %61, i32** %57, align 8\l br label %63\l}"]; + Node0x7afc20 -> Node0x7afd70; + Node0x7afd70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%63:\l63: \l %64 = load i32, i32* %10, align 4\l br label %65\l}"]; + Node0x7afd70 -> Node0x7afea0; + Node0x7afea0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%65:\l65: \l %66 = add nsw i32 %64, 1\l br label %67\l}"]; + Node0x7afea0 -> Node0x7afff0; + Node0x7afff0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%67:\l67: \l store i32 %66, i32* %10, align 4\l br label %68\l}"]; + Node0x7afff0 -> Node0x7b0140; + Node0x7b0140 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%68:\l68: \l br label %16, !llvm.loop !6\l}"]; + Node0x7b0140 -> Node0x7adc30; + Node0x7ae940 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%69:\l69: \l %70 = load i32, i32* %10, align 4\l br label %71\l}"]; + Node0x7ae940 -> Node0x7b0d70; + Node0x7b0d70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%71:\l71: \l %72 = icmp ne i32 %70, 0\l br label %73\l}"]; + Node0x7b0d70 -> Node0x7b0ec0; + Node0x7b0ec0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%73:\l73: \l br i1 %72, label %78, label %74\l|{T|F}}"]; + Node0x7b0ec0:s0 -> Node0x7b0f80; + Node0x7b0ec0:s1 -> Node0x7b0fd0; + Node0x7b0fd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%74:\l74: \l %75 = load i32*, i32** %8, align 8\l br label %76\l}"]; + Node0x7b0fd0 -> Node0x7b1140; + Node0x7b1140 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%76:\l76: \l store i32 -4, i32* %75, align 4\l br label %77\l}"]; + Node0x7b1140 -> Node0x7b12c0; + Node0x7b12c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%77:\l77: \l br label %78\l}"]; + Node0x7b12c0 -> Node0x7b0f80; + Node0x7b0f80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%78:\l78: \l ret void\l}"]; + Node0x7b0f80 -> Nodeendinput; + Nodeendinput [shape=record, label="END"]; + Nodebegininput -> Nodeendinput; } subgraph cluster_result { label = "CFG for 'result' function"; graph[style=filled, bgcolor=white]; + Nodebeginresult [shape=record, label="BEGIN"]; - Node0x16fc720 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%3:\l %4 = alloca i32*, align 8\l br label %5\l}"]; - Node0x16fc720 -> Node0x16fc830; - Node0x16fc830 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%5:\l5: \l %6 = alloca i32*, align 8\l br label %7\l}"]; - Node0x16fc830 -> Node0x16fc960; - Node0x16fc960 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%7:\l7: \l %8 = alloca i64*, align 8\l br label %9\l}"]; - Node0x16fc960 -> Node0x16fc7e0; - Node0x16fc7e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%9:\l9: \l %10 = alloca i64, align 8\l br label %11\l}"]; - Node0x16fc7e0 -> Node0x16fcb70; - Node0x16fcb70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%11:\l11: \l store i32* %0, i32** %4, align 8\l br label %12\l}"]; - Node0x16fcb70 -> Node0x16fccc0; - Node0x16fccc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32* %1, i32** %6, align 8\l br label %13\l}"]; - Node0x16fccc0 -> Node0x16fce10; - Node0x16fce10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l store i64* %2, i64** %8, align 8\l br label %14\l}"]; - Node0x16fce10 -> Node0x16fcf60; - Node0x16fcf60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l store i64 1, i64* %10, align 8\l br label %15\l}"]; - Node0x16fcf60 -> Node0x16fd0b0; - Node0x16fd0b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l br label %16\l}"]; - Node0x16fd0b0 -> Node0x16fd170; - Node0x16fd170 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load i32*, i32** %4, align 8\l br label %18\l}"]; - Node0x16fd170 -> Node0x16fd2a0; - Node0x16fd2a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = load i32*, i32** %6, align 8\l br label %20\l}"]; - Node0x16fd2a0 -> Node0x16fd3d0; - Node0x16fd3d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = icmp ult i32* %17, %19\l br label %22\l}"]; - Node0x16fd3d0 -> Node0x16fd490; - Node0x16fd490 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l br i1 %21, label %23, label %50\l|{T|F}}"]; - Node0x16fd490:s0 -> Node0x16fd550; - Node0x16fd490:s1 -> Node0x16fd5a0; - Node0x16fd550 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%23:\l23: \l %24 = load i32*, i32** %4, align 8\l br label %25\l}"]; - Node0x16fd550 -> Node0x16fd710; - Node0x16fd710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = load i32, i32* %24, align 4\l br label %27\l}"]; - Node0x16fd710 -> Node0x16fd840; - Node0x16fd840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = sext i32 %26 to i64\l br label %29\l}"]; - Node0x16fd840 -> Node0x16fd970; - Node0x16fd970 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i64, i64* %10, align 8\l br label %31\l}"]; - Node0x16fd970 -> Node0x16fdaa0; - Node0x16fdaa0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = mul nsw i64 %30, %28\l br label %33\l}"]; - Node0x16fdaa0 -> Node0x16fdbf0; - Node0x16fdbf0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l store i64 %32, i64* %10, align 8\l br label %34\l}"]; - Node0x16fdbf0 -> Node0x16fdd40; - Node0x16fdd40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%34:\l34: \l %35 = load i64, i64* %10, align 8\l br label %36\l}"]; - Node0x16fdd40 -> Node0x16fde70; - Node0x16fde70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%36:\l36: \l %37 = load i64*, i64** %8, align 8\l br label %38\l}"]; - Node0x16fde70 -> Node0x16fdfa0; - Node0x16fdfa0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%38:\l38: \l %39 = load i64, i64* %37, align 8\l br label %40\l}"]; - Node0x16fdfa0 -> Node0x16fe0d0; - Node0x16fe0d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = add nsw i64 %39, %35\l br label %42\l}"]; - Node0x16fe0d0 -> Node0x16fe220; - Node0x16fe220 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l store i64 %41, i64* %37, align 8\l br label %43\l}"]; - Node0x16fe220 -> Node0x16fe370; - Node0x16fe370 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l br label %44\l}"]; - Node0x16fe370 -> Node0x16fe430; - Node0x16fe430 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = load i32*, i32** %4, align 8\l br label %46\l}"]; - Node0x16fe430 -> Node0x16fe560; - Node0x16fe560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = getelementptr inbounds i32, i32* %45, i32 1\l br label %48\l}"]; - Node0x16fe560 -> Node0x16fe6c0; - Node0x16fe6c0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l store i32* %47, i32** %4, align 8\l br label %49\l}"]; - Node0x16fe6c0 -> Node0x16fe810; - Node0x16fe810 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%49:\l49: \l br label %16, !llvm.loop !6\l}"]; - Node0x16fe810 -> Node0x16fd170; - Node0x16fd5a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%50:\l50: \l ret void\l}"]; + Nodebeginresult -> Node0x7b1720; + Node0x7b1720 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%3:\l %4 = alloca i32*, align 8\l br label %5\l}"]; + Node0x7b1720 -> Node0x7b1830; + Node0x7b1830 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%5:\l5: \l %6 = alloca i32*, align 8\l br label %7\l}"]; + Node0x7b1830 -> Node0x7b1960; + Node0x7b1960 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%7:\l7: \l %8 = alloca i64*, align 8\l br label %9\l}"]; + Node0x7b1960 -> Node0x7b17e0; + Node0x7b17e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%9:\l9: \l %10 = alloca i64, align 8\l br label %11\l}"]; + Node0x7b17e0 -> Node0x7b1b70; + Node0x7b1b70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%11:\l11: \l store i32* %0, i32** %4, align 8\l br label %12\l}"]; + Node0x7b1b70 -> Node0x7b1cc0; + Node0x7b1cc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32* %1, i32** %6, align 8\l br label %13\l}"]; + Node0x7b1cc0 -> Node0x7b1e10; + Node0x7b1e10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l store i64* %2, i64** %8, align 8\l br label %14\l}"]; + Node0x7b1e10 -> Node0x7b1f60; + Node0x7b1f60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l store i64 1, i64* %10, align 8\l br label %15\l}"]; + Node0x7b1f60 -> Node0x7b20b0; + Node0x7b20b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l br label %16\l}"]; + Node0x7b20b0 -> Node0x7b2170; + Node0x7b2170 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load i32*, i32** %4, align 8\l br label %18\l}"]; + Node0x7b2170 -> Node0x7b22a0; + Node0x7b22a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = load i32*, i32** %6, align 8\l br label %20\l}"]; + Node0x7b22a0 -> Node0x7b23d0; + Node0x7b23d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = icmp ult i32* %17, %19\l br label %22\l}"]; + Node0x7b23d0 -> Node0x7b2490; + Node0x7b2490 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l br i1 %21, label %23, label %50\l|{T|F}}"]; + Node0x7b2490:s0 -> Node0x7b2550; + Node0x7b2490:s1 -> Node0x7b25a0; + Node0x7b2550 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%23:\l23: \l %24 = load i32*, i32** %4, align 8\l br label %25\l}"]; + Node0x7b2550 -> Node0x7b2710; + Node0x7b2710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = load i32, i32* %24, align 4\l br label %27\l}"]; + Node0x7b2710 -> Node0x7b2840; + Node0x7b2840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = sext i32 %26 to i64\l br label %29\l}"]; + Node0x7b2840 -> Node0x7b2970; + Node0x7b2970 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i64, i64* %10, align 8\l br label %31\l}"]; + Node0x7b2970 -> Node0x7b2aa0; + Node0x7b2aa0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = mul nsw i64 %30, %28\l br label %33\l}"]; + Node0x7b2aa0 -> Node0x7b2bf0; + Node0x7b2bf0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l store i64 %32, i64* %10, align 8\l br label %34\l}"]; + Node0x7b2bf0 -> Node0x7b2d40; + Node0x7b2d40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%34:\l34: \l %35 = load i64, i64* %10, align 8\l br label %36\l}"]; + Node0x7b2d40 -> Node0x7b2e70; + Node0x7b2e70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%36:\l36: \l %37 = load i64*, i64** %8, align 8\l br label %38\l}"]; + Node0x7b2e70 -> Node0x7b2fa0; + Node0x7b2fa0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%38:\l38: \l %39 = load i64, i64* %37, align 8\l br label %40\l}"]; + Node0x7b2fa0 -> Node0x7b30d0; + Node0x7b30d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = add nsw i64 %39, %35\l br label %42\l}"]; + Node0x7b30d0 -> Node0x7b3220; + Node0x7b3220 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l store i64 %41, i64* %37, align 8\l br label %43\l}"]; + Node0x7b3220 -> Node0x7b3370; + Node0x7b3370 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l br label %44\l}"]; + Node0x7b3370 -> Node0x7b3430; + Node0x7b3430 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = load i32*, i32** %4, align 8\l br label %46\l}"]; + Node0x7b3430 -> Node0x7b3560; + Node0x7b3560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = getelementptr inbounds i32, i32* %45, i32 1\l br label %48\l}"]; + Node0x7b3560 -> Node0x7b36c0; + Node0x7b36c0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l store i32* %47, i32** %4, align 8\l br label %49\l}"]; + Node0x7b36c0 -> Node0x7b3810; + Node0x7b3810 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%49:\l49: \l br label %16, !llvm.loop !6\l}"]; + Node0x7b3810 -> Node0x7b2170; + Node0x7b25a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%50:\l50: \l ret void\l}"]; + Node0x7b25a0 -> Nodeendresult; + Nodeendresult [shape=record, label="END"]; + Nodebeginresult -> Nodeendresult; } subgraph cluster_array_print { label = "CFG for 'array_print' function"; graph[style=filled, bgcolor=white]; + Nodebeginarray_print [shape=record, label="BEGIN"]; - Node0x16feba0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l %3 = alloca i32*, align 8\l br label %4\l}"]; - Node0x16feba0 -> Node0x16fec60; - Node0x16fec60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32*, align 8\l br label %6\l}"]; - Node0x16fec60 -> Node0x16fede0; - Node0x16fede0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l store i32* %0, i32** %3, align 8\l br label %7\l}"]; - Node0x16fede0 -> Node0x16feea0; - Node0x16feea0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%7:\l7: \l store i32* %1, i32** %5, align 8\l br label %8\l}"]; - Node0x16feea0 -> Node0x16feff0; - Node0x16feff0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([8 x\l... i8], [8 x i8]* @.str.8, i64 0, i64 0))\l br label %10\l}"]; - Node0x16feff0 -> Node0x16ff270; - Node0x16ff270 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l br label %11\l}"]; - Node0x16ff270 -> Node0x16ff330; - Node0x16ff330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%11:\l11: \l %12 = load i32*, i32** %3, align 8\l br label %13\l}"]; - Node0x16ff330 -> Node0x16ff460; - Node0x16ff460 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%13:\l13: \l %14 = load i32*, i32** %5, align 8\l br label %15\l}"]; - Node0x16ff460 -> Node0x16ff590; - Node0x16ff590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l %16 = icmp ult i32* %12, %14\l br label %17\l}"]; - Node0x16ff590 -> Node0x16ff6e0; - Node0x16ff6e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l br i1 %16, label %18, label %31\l|{T|F}}"]; - Node0x16ff6e0:s0 -> Node0x16ff7a0; - Node0x16ff6e0:s1 -> Node0x16ff7f0; - Node0x16ff7a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%18:\l18: \l %19 = load i32*, i32** %3, align 8\l br label %20\l}"]; - Node0x16ff7a0 -> Node0x16ff9a0; - Node0x16ff9a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%20:\l20: \l %21 = load i32, i32* %19, align 4\l br label %22\l}"]; - Node0x16ff9a0 -> Node0x16ffad0; - Node0x16ffad0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%22:\l22: \l %23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x\l... i8], [4 x i8]* @.str.9, i64 0, i64 0), i32 noundef %21)\l br label %24\l}"]; - Node0x16ffad0 -> Node0x16ffca0; - Node0x16ffca0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%24:\l24: \l br label %25\l}"]; - Node0x16ffca0 -> Node0x16ffd60; - Node0x16ffd60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = load i32*, i32** %3, align 8\l br label %27\l}"]; - Node0x16ffd60 -> Node0x16ffe90; - Node0x16ffe90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = getelementptr inbounds i32, i32* %26, i32 1\l br label %29\l}"]; - Node0x16ffe90 -> Node0x16ffff0; - Node0x16ffff0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l store i32* %28, i32** %3, align 8\l br label %30\l}"]; - Node0x16ffff0 -> Node0x1700140; - Node0x1700140 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%30:\l30: \l br label %11, !llvm.loop !6\l}"]; - Node0x1700140 -> Node0x16ff330; - Node0x16ff7f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%31:\l31: \l %32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x\l... i8], [2 x i8]* @.str.2, i64 0, i64 0))\l br label %33\l}"]; - Node0x16ff7f0 -> Node0x1700420; - Node0x1700420 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%33:\l33: \l ret void\l}"]; + Nodebeginarray_print -> Node0x7b3ba0; + Node0x7b3ba0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l %3 = alloca i32*, align 8\l br label %4\l}"]; + Node0x7b3ba0 -> Node0x7b3c60; + Node0x7b3c60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32*, align 8\l br label %6\l}"]; + Node0x7b3c60 -> Node0x7b3de0; + Node0x7b3de0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l store i32* %0, i32** %3, align 8\l br label %7\l}"]; + Node0x7b3de0 -> Node0x7b3ea0; + Node0x7b3ea0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%7:\l7: \l store i32* %1, i32** %5, align 8\l br label %8\l}"]; + Node0x7b3ea0 -> Node0x7b3ff0; + Node0x7b3ff0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([8 x\l... i8], [8 x i8]* @.str.8, i64 0, i64 0))\l br label %10\l}"]; + Node0x7b3ff0 -> Node0x7b4270; + Node0x7b4270 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l br label %11\l}"]; + Node0x7b4270 -> Node0x7b4330; + Node0x7b4330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%11:\l11: \l %12 = load i32*, i32** %3, align 8\l br label %13\l}"]; + Node0x7b4330 -> Node0x7b4460; + Node0x7b4460 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%13:\l13: \l %14 = load i32*, i32** %5, align 8\l br label %15\l}"]; + Node0x7b4460 -> Node0x7b4590; + Node0x7b4590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l %16 = icmp ult i32* %12, %14\l br label %17\l}"]; + Node0x7b4590 -> Node0x7b46e0; + Node0x7b46e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l br i1 %16, label %18, label %31\l|{T|F}}"]; + Node0x7b46e0:s0 -> Node0x7b47a0; + Node0x7b46e0:s1 -> Node0x7b47f0; + Node0x7b47a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%18:\l18: \l %19 = load i32*, i32** %3, align 8\l br label %20\l}"]; + Node0x7b47a0 -> Node0x7b49a0; + Node0x7b49a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%20:\l20: \l %21 = load i32, i32* %19, align 4\l br label %22\l}"]; + Node0x7b49a0 -> Node0x7b4ad0; + Node0x7b4ad0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%22:\l22: \l %23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x\l... i8], [4 x i8]* @.str.9, i64 0, i64 0), i32 noundef %21)\l br label %24\l}"]; + Node0x7b4ad0 -> Node0x7b4ca0; + Node0x7b4ca0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%24:\l24: \l br label %25\l}"]; + Node0x7b4ca0 -> Node0x7b4d60; + Node0x7b4d60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = load i32*, i32** %3, align 8\l br label %27\l}"]; + Node0x7b4d60 -> Node0x7b4e90; + Node0x7b4e90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = getelementptr inbounds i32, i32* %26, i32 1\l br label %29\l}"]; + Node0x7b4e90 -> Node0x7b4ff0; + Node0x7b4ff0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l store i32* %28, i32** %3, align 8\l br label %30\l}"]; + Node0x7b4ff0 -> Node0x7b5140; + Node0x7b5140 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%30:\l30: \l br label %11, !llvm.loop !6\l}"]; + Node0x7b5140 -> Node0x7b4330; + Node0x7b47f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%31:\l31: \l %32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x\l... i8], [2 x i8]* @.str.2, i64 0, i64 0))\l br label %33\l}"]; + Node0x7b47f0 -> Node0x7b5420; + Node0x7b5420 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%33:\l33: \l ret void\l}"]; + Node0x7b5420 -> Nodeendarray_print; + Nodeendarray_print [shape=record, label="END"]; + Nodebeginarray_print -> Nodeendarray_print; } } diff --git a/front/tests/test_transl/.mainfile2.dot b/front/tests/test_transl/.mainfile2.dot index f7e8d2c..1088d17 100644 --- a/front/tests/test_transl/.mainfile2.dot +++ b/front/tests/test_transl/.mainfile2.dot @@ -1,56 +1,66 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0x205cd40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; - Node0x205cd40 -> Node0x205ce30; - Node0x205ce30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; - Node0x205ce30 -> Node0x205cfb0; - Node0x205cfb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i8**, align 8\l br label %8\l}"]; - Node0x205cfb0 -> Node0x205d0e0; - Node0x205d0e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; - Node0x205d0e0 -> Node0x205cef0; - Node0x205cef0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; - Node0x205cef0 -> Node0x205d2f0; - Node0x205d2f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; - Node0x205d2f0 -> Node0x205d420; - Node0x205d420 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l store i32 0, i32* %3, align 4\l br label %15\l}"]; - Node0x205d420 -> Node0x205d4e0; - Node0x205d4e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l store i32 %0, i32* %5, align 4\l br label %16\l}"]; - Node0x205d4e0 -> Node0x205d630; - Node0x205d630 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l store i8** %1, i8*** %7, align 8\l br label %17\l}"]; - Node0x205d630 -> Node0x205d6f0; - Node0x205d6f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l store i32 5, i32* %9, align 4\l br label %18\l}"]; - Node0x205d6f0 -> Node0x205d870; - Node0x205d870 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l store i32 6, i32* %11, align 4\l br label %19\l}"]; - Node0x205d870 -> Node0x205d9f0; - Node0x205d9f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%19:\l19: \l %20 = load i32, i32* %9, align 4\l br label %21\l}"]; - Node0x205d9f0 -> Node0x205db20; - Node0x205db20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l %22 = load i32, i32* %11, align 4\l br label %23\l}"]; - Node0x205db20 -> Node0x205dc50; - Node0x205dc50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l %24 = call i32 @f(i32 noundef %20, i32 noundef %22)\l br label %25\l}"]; - Node0x205dc50 -> Node0x205bde0 [style = dotted]; - Node0x205dc50 -> Node0x205de20; - Node0x205de20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%25:\l25: \l store i32 %24, i32* %13, align 4\l br label %26\l}"]; - Node0x205de20 -> Node0x205df70; - Node0x205df70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l ret i32 0\l}"]; + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x183bd40 + Node0x183bd40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x183bd40 -> Node0x183be30; + Node0x183be30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0x183be30 -> Node0x183bfb0; + Node0x183bfb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i8**, align 8\l br label %8\l}"]; + Node0x183bfb0 -> Node0x183c0e0; + Node0x183c0e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; + Node0x183c0e0 -> Node0x183bef0; + Node0x183bef0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0x183bef0 -> Node0x183c2f0; + Node0x183c2f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; + Node0x183c2f0 -> Node0x183c420; + Node0x183c420 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l store i32 0, i32* %3, align 4\l br label %15\l}"]; + Node0x183c420 -> Node0x183c4e0; + Node0x183c4e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l store i32 %0, i32* %5, align 4\l br label %16\l}"]; + Node0x183c4e0 -> Node0x183c630; + Node0x183c630 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l store i8** %1, i8*** %7, align 8\l br label %17\l}"]; + Node0x183c630 -> Node0x183c6f0; + Node0x183c6f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l store i32 5, i32* %9, align 4\l br label %18\l}"]; + Node0x183c6f0 -> Node0x183c870; + Node0x183c870 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l store i32 6, i32* %11, align 4\l br label %19\l}"]; + Node0x183c870 -> Node0x183c9f0; + Node0x183c9f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%19:\l19: \l %20 = load i32, i32* %9, align 4\l br label %21\l}"]; + Node0x183c9f0 -> Node0x183cb20; + Node0x183cb20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l %22 = load i32, i32* %11, align 4\l br label %23\l}"]; + Node0x183cb20 -> Node0x183cc50; + Node0x183cc50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l %24 = call i32 @f(i32 noundef %20, i32 noundef %22)\l br label %25\l}"]; + Node0x183cc50 -> Nodebeginf; + Nodeendf -> Node0x183ce20; + Node0x183ce20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%25:\l25: \l store i32 %24, i32* %13, align 4\l br label %26\l}"]; + Node0x183ce20 -> Node0x183cf70; + Node0x183cf70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l ret i32 0\l}"]; + Node0x183cf70 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; subgraph cluster_f { label = "CFG for 'f' function"; graph[style=filled, bgcolor=white]; + Nodebeginf [shape=record, label="BEGIN"]; - Node0x205bde0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; - Node0x205bde0 -> Node0x205c550; - Node0x205c550 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; - Node0x205c550 -> Node0x205c6d0; - Node0x205c6d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l store i32 %0, i32* %3, align 4\l br label %7\l}"]; - Node0x205c6d0 -> Node0x205c790; - Node0x205c790 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%7:\l7: \l store i32 %1, i32* %5, align 4\l br label %8\l}"]; - Node0x205c790 -> Node0x205c850; - Node0x205c850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = load i32, i32* %3, align 4\l br label %10\l}"]; - Node0x205c850 -> Node0x205c610; - Node0x205c610 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = load i32, i32* %5, align 4\l br label %12\l}"]; - Node0x205c610 -> Node0x205ca60; - Node0x205ca60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = add nsw i32 %9, %11\l br label %14\l}"]; - Node0x205ca60 -> Node0x205cb20; - Node0x205cb20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l ret i32 %13\l}"]; + Nodebeginf -> Node0x183ade0; + Node0x183ade0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x183ade0 -> Node0x183b550; + Node0x183b550 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0x183b550 -> Node0x183b6d0; + Node0x183b6d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l store i32 %0, i32* %3, align 4\l br label %7\l}"]; + Node0x183b6d0 -> Node0x183b790; + Node0x183b790 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%7:\l7: \l store i32 %1, i32* %5, align 4\l br label %8\l}"]; + Node0x183b790 -> Node0x183b850; + Node0x183b850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = load i32, i32* %3, align 4\l br label %10\l}"]; + Node0x183b850 -> Node0x183b610; + Node0x183b610 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = load i32, i32* %5, align 4\l br label %12\l}"]; + Node0x183b610 -> Node0x183ba60; + Node0x183ba60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = add nsw i32 %9, %11\l br label %14\l}"]; + Node0x183ba60 -> Node0x183bb20; + Node0x183bb20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l ret i32 %13\l}"]; + Node0x183bb20 -> Nodeendf; + Nodeendf [shape=record, label="END"]; + Nodebeginf -> Nodeendf; } } diff --git a/front/tests/test_transl/.mainfile3.dot b/front/tests/test_transl/.mainfile3.dot index 5e8a077..618bb37 100644 --- a/front/tests/test_transl/.mainfile3.dot +++ b/front/tests/test_transl/.mainfile3.dot @@ -1,63 +1,73 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0x1e1c8b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; - Node0x1e1c8b0 -> Node0x1e1d010; - Node0x1e1d010 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; - Node0x1e1d010 -> Node0x1e1d170; - Node0x1e1d170 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l store i32 0, i32* %1, align 4\l br label %5\l}"]; - Node0x1e1d170 -> Node0x1e1d280; - Node0x1e1d280 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%5:\l5: \l br label %6\l}"]; - Node0x1e1d280 -> Node0x1e1d340; - Node0x1e1d340 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = call i32 (i8*, ...) @__isoc99_scanf(i8* noundef getelementptr inbounds\l... ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32* noundef %3)\l br label %8\l}"]; - Node0x1e1d340 -> Node0x1e1d7e0; - Node0x1e1d7e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = icmp eq i32 %7, 1\l br label %10\l}"]; - Node0x1e1d7e0 -> Node0x1e1d230; - Node0x1e1d230 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l br i1 %9, label %11, label %18\l|{T|F}}"]; - Node0x1e1d230:s0 -> Node0x1e1d950; - Node0x1e1d230:s1 -> Node0x1e1d9a0; - Node0x1e1d950 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%11:\l11: \l %12 = load i32, i32* %3, align 4\l br label %13\l}"]; - Node0x1e1d950 -> Node0x1e1db50; - Node0x1e1db50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%13:\l13: \l %14 = call i32 @factorial(i32 noundef %12)\l br label %15\l}"]; - Node0x1e1db50 -> Node0x1e1f030 [style = dotted]; - Node0x1e1db50 -> Node0x1e1dd90; - Node0x1e1dd90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%15:\l15: \l %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x\l... i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 noundef %14)\l br label %17\l}"]; - Node0x1e1dd90 -> Node0x1e1e110; - Node0x1e1e110 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%17:\l17: \l br label %6, !llvm.loop !6\l}"]; - Node0x1e1e110 -> Node0x1e1d340; - Node0x1e1d9a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%18:\l18: \l ret i32 0\l}"]; + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0xcc58b0 + Node0xcc58b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0xcc58b0 -> Node0xcc6010; + Node0xcc6010 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0xcc6010 -> Node0xcc6170; + Node0xcc6170 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l store i32 0, i32* %1, align 4\l br label %5\l}"]; + Node0xcc6170 -> Node0xcc6280; + Node0xcc6280 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%5:\l5: \l br label %6\l}"]; + Node0xcc6280 -> Node0xcc6340; + Node0xcc6340 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = call i32 (i8*, ...) @__isoc99_scanf(i8* noundef getelementptr inbounds\l... ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32* noundef %3)\l br label %8\l}"]; + Node0xcc6340 -> Node0xcc67e0; + Node0xcc67e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = icmp eq i32 %7, 1\l br label %10\l}"]; + Node0xcc67e0 -> Node0xcc6230; + Node0xcc6230 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l br i1 %9, label %11, label %18\l|{T|F}}"]; + Node0xcc6230:s0 -> Node0xcc6950; + Node0xcc6230:s1 -> Node0xcc69a0; + Node0xcc6950 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%11:\l11: \l %12 = load i32, i32* %3, align 4\l br label %13\l}"]; + Node0xcc6950 -> Node0xcc6b50; + Node0xcc6b50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%13:\l13: \l %14 = call i32 @factorial(i32 noundef %12)\l br label %15\l}"]; + Node0xcc6b50 -> Nodebeginfactorial; + Nodeendfactorial -> Node0xcc6d90; + Node0xcc6d90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%15:\l15: \l %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x\l... i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 noundef %14)\l br label %17\l}"]; + Node0xcc6d90 -> Node0xcc7110; + Node0xcc7110 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%17:\l17: \l br label %6, !llvm.loop !6\l}"]; + Node0xcc7110 -> Node0xcc6340; + Node0xcc69a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%18:\l18: \l ret i32 0\l}"]; + Node0xcc69a0 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; subgraph cluster_factorial { label = "CFG for 'factorial' function"; graph[style=filled, bgcolor=white]; + Nodebeginfactorial [shape=record, label="BEGIN"]; - Node0x1e1f030 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%1:\l %2 = alloca i32, align 4\l br label %3\l}"]; - Node0x1e1f030 -> Node0x1e1f0f0; - Node0x1e1f0f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%3:\l3: \l store i32 %0, i32* %2, align 4\l br label %4\l}"]; - Node0x1e1f0f0 -> Node0x1e1f1b0; - Node0x1e1f1b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = load i32, i32* %2, align 4\l br label %6\l}"]; - Node0x1e1f1b0 -> Node0x1e1f330; - Node0x1e1f330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = icmp slt i32 %5, 2\l br label %8\l}"]; - Node0x1e1f330 -> Node0x1e1f480; - Node0x1e1f480 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l br i1 %7, label %9, label %10\l|{T|F}}"]; - Node0x1e1f480:s0 -> Node0x1e1f270; - Node0x1e1f480:s1 -> Node0x1e1f5d0; - Node0x1e1f270 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%9:\l9: \l br label %21\l}"]; - Node0x1e1f270 -> Node0x1e1f710; - Node0x1e1f5d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%10:\l10: \l %11 = load i32, i32* %2, align 4\l br label %12\l}"]; - Node0x1e1f5d0 -> Node0x1e1f840; - Node0x1e1f840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%12:\l12: \l %13 = load i32, i32* %2, align 4\l br label %14\l}"]; - Node0x1e1f840 -> Node0x1e1f970; - Node0x1e1f970 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%14:\l14: \l %15 = sub nsw i32 %13, 1\l br label %16\l}"]; - Node0x1e1f970 -> Node0x1e1fac0; - Node0x1e1fac0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%16:\l16: \l %17 = call i32 @factorial(i32 noundef %15)\l br label %18\l}"]; - Node0x1e1fac0 -> Node0x1e1f030 [style = dotted]; - Node0x1e1fac0 -> Node0x1e1fc70; - Node0x1e1fc70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%18:\l18: \l %19 = mul nsw i32 %11, %17\l br label %20\l}"]; - Node0x1e1fc70 -> Node0x1e1fd30; - Node0x1e1fd30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%20:\l20: \l br label %21\l}"]; - Node0x1e1fd30 -> Node0x1e1f710; - Node0x1e1f710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l %22 = phi i32 [ 1, %9 ], [ %19, %20 ]\l br label %23\l}"]; - Node0x1e1f710 -> Node0x1e1feb0; - Node0x1e1feb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l ret i32 %22\l}"]; + Nodebeginfactorial -> Node0xcc8030; + Node0xcc8030 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%1:\l %2 = alloca i32, align 4\l br label %3\l}"]; + Node0xcc8030 -> Node0xcc80f0; + Node0xcc80f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%3:\l3: \l store i32 %0, i32* %2, align 4\l br label %4\l}"]; + Node0xcc80f0 -> Node0xcc81b0; + Node0xcc81b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = load i32, i32* %2, align 4\l br label %6\l}"]; + Node0xcc81b0 -> Node0xcc8330; + Node0xcc8330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = icmp slt i32 %5, 2\l br label %8\l}"]; + Node0xcc8330 -> Node0xcc8480; + Node0xcc8480 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l br i1 %7, label %9, label %10\l|{T|F}}"]; + Node0xcc8480:s0 -> Node0xcc8270; + Node0xcc8480:s1 -> Node0xcc85d0; + Node0xcc8270 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%9:\l9: \l br label %21\l}"]; + Node0xcc8270 -> Node0xcc8710; + Node0xcc85d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%10:\l10: \l %11 = load i32, i32* %2, align 4\l br label %12\l}"]; + Node0xcc85d0 -> Node0xcc8840; + Node0xcc8840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%12:\l12: \l %13 = load i32, i32* %2, align 4\l br label %14\l}"]; + Node0xcc8840 -> Node0xcc8970; + Node0xcc8970 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%14:\l14: \l %15 = sub nsw i32 %13, 1\l br label %16\l}"]; + Node0xcc8970 -> Node0xcc8ac0; + Node0xcc8ac0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%16:\l16: \l %17 = call i32 @factorial(i32 noundef %15)\l br label %18\l}"]; + Node0xcc8ac0 -> Nodebeginfactorial; + Nodeendfactorial -> Node0xcc8c70; + Node0xcc8c70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%18:\l18: \l %19 = mul nsw i32 %11, %17\l br label %20\l}"]; + Node0xcc8c70 -> Node0xcc8d30; + Node0xcc8d30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%20:\l20: \l br label %21\l}"]; + Node0xcc8d30 -> Node0xcc8710; + Node0xcc8710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l %22 = phi i32 [ 1, %9 ], [ %19, %20 ]\l br label %23\l}"]; + Node0xcc8710 -> Node0xcc8eb0; + Node0xcc8eb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l ret i32 %22\l}"]; + Node0xcc8eb0 -> Nodeendfactorial; + Nodeendfactorial [shape=record, label="END"]; + Nodebeginfactorial -> Nodeendfactorial; } } diff --git a/front/tests/test_transl/.mainfile4.dot b/front/tests/test_transl/.mainfile4.dot index cf5db32..66ce3bb 100644 --- a/front/tests/test_transl/.mainfile4.dot +++ b/front/tests/test_transl/.mainfile4.dot @@ -1,66 +1,71 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0x1b6aea0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; - Node0x1b6aea0 -> Node0x1b6b600; - Node0x1b6b600 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l2: \l %3 = alloca i32**, align 8\l br label %4\l}"]; - Node0x1b6b600 -> Node0x1b6b760; - Node0x1b6b760 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32*, align 8\l br label %6\l}"]; - Node0x1b6b760 -> Node0x1b6b8e0; - Node0x1b6b8e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i32*, align 8\l br label %8\l}"]; - Node0x1b6b8e0 -> Node0x1b6ba10; - Node0x1b6ba10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca i32*, align 8\l br label %10\l}"]; - Node0x1b6ba10 -> Node0x1b6b820; - Node0x1b6b820 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; - Node0x1b6b820 -> Node0x1b6bc20; - Node0x1b6bc20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; - Node0x1b6bc20 -> Node0x1b6bd50; - Node0x1b6bd50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l store i32 0, i32* %1, align 4\l br label %15\l}"]; - Node0x1b6bd50 -> Node0x1b6be10; - Node0x1b6be10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l store i32** %7, i32*** %3, align 8\l br label %16\l}"]; - Node0x1b6be10 -> Node0x1b6bed0; - Node0x1b6bed0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load i32**, i32*** %3, align 8\l br label %18\l}"]; - Node0x1b6bed0 -> Node0x1b6c000; - Node0x1b6c000 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = icmp ne i32** %17, null\l br label %20\l}"]; - Node0x1b6c000 -> Node0x1b6c4d0; - Node0x1b6c4d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l br i1 %19, label %21, label %29\l|{T|F}}"]; - Node0x1b6c4d0:s0 -> Node0x1b6c590; - Node0x1b6c4d0:s1 -> Node0x1b6c5e0; - Node0x1b6c590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%21:\l21: \l %22 = load i32, i32* %11, align 4\l br label %23\l}"]; - Node0x1b6c590 -> Node0x1b6c790; - Node0x1b6c790 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%23:\l23: \l %24 = icmp ne i32 %22, 0\l br label %25\l}"]; - Node0x1b6c790 -> Node0x1b6c850; - Node0x1b6c850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%25:\l25: \l br i1 %24, label %26, label %28\l|{T|F}}"]; - Node0x1b6c850:s0 -> Node0x1b6c910; - Node0x1b6c850:s1 -> Node0x1b6c960; - Node0x1b6c910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%26:\l26: \l store i32* %11, i32** %5, align 8\l br label %27\l}"]; - Node0x1b6c910 -> Node0x1b6caa0; - Node0x1b6caa0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%27:\l27: \l br label %28\l}"]; - Node0x1b6caa0 -> Node0x1b6c960; - Node0x1b6c960 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%28:\l28: \l br label %32\l}"]; - Node0x1b6c960 -> Node0x1b6cbd0; - Node0x1b6c5e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%29:\l29: \l store i32** %9, i32*** %3, align 8\l br label %30\l}"]; - Node0x1b6c5e0 -> Node0x1b6cc90; - Node0x1b6cc90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%30:\l30: \l store i32* %13, i32** %5, align 8\l br label %31\l}"]; - Node0x1b6cc90 -> Node0x1b6cde0; - Node0x1b6cde0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%31:\l31: \l br label %32\l}"]; - Node0x1b6cde0 -> Node0x1b6cbd0; - Node0x1b6cbd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%32:\l32: \l %33 = load i32, i32* %13, align 4\l br label %34\l}"]; - Node0x1b6cbd0 -> Node0x1b6d190; - Node0x1b6d190 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%34:\l34: \l %35 = icmp ne i32 %33, 0\l br label %36\l}"]; - Node0x1b6d190 -> Node0x1b6d2e0; - Node0x1b6d2e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%36:\l36: \l br i1 %35, label %37, label %43\l|{T|F}}"]; - Node0x1b6d2e0:s0 -> Node0x1b6d3a0; - Node0x1b6d2e0:s1 -> Node0x1b6d3f0; - Node0x1b6d3a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%37:\l37: \l %38 = load i32*, i32** %5, align 8\l br label %39\l}"]; - Node0x1b6d3a0 -> Node0x1b6d560; - Node0x1b6d560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%39:\l39: \l %40 = load i32**, i32*** %3, align 8\l br label %41\l}"]; - Node0x1b6d560 -> Node0x1b6d690; - Node0x1b6d690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%41:\l41: \l store i32* %38, i32** %40, align 8\l br label %42\l}"]; - Node0x1b6d690 -> Node0x1b6d7e0; - Node0x1b6d7e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%42:\l42: \l br label %43\l}"]; - Node0x1b6d7e0 -> Node0x1b6d3f0; - Node0x1b6d3f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%43:\l43: \l %44 = load i32, i32* %1, align 4\l br label %45\l}"]; - Node0x1b6d3f0 -> Node0x1b6d980; - Node0x1b6d980 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%45:\l45: \l ret i32 %44\l}"]; + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x1549ea0 + Node0x1549ea0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x1549ea0 -> Node0x154a600; + Node0x154a600 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l2: \l %3 = alloca i32**, align 8\l br label %4\l}"]; + Node0x154a600 -> Node0x154a760; + Node0x154a760 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32*, align 8\l br label %6\l}"]; + Node0x154a760 -> Node0x154a8e0; + Node0x154a8e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i32*, align 8\l br label %8\l}"]; + Node0x154a8e0 -> Node0x154aa10; + Node0x154aa10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca i32*, align 8\l br label %10\l}"]; + Node0x154aa10 -> Node0x154a820; + Node0x154a820 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0x154a820 -> Node0x154ac20; + Node0x154ac20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; + Node0x154ac20 -> Node0x154ad50; + Node0x154ad50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l store i32 0, i32* %1, align 4\l br label %15\l}"]; + Node0x154ad50 -> Node0x154ae10; + Node0x154ae10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l store i32** %7, i32*** %3, align 8\l br label %16\l}"]; + Node0x154ae10 -> Node0x154aed0; + Node0x154aed0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load i32**, i32*** %3, align 8\l br label %18\l}"]; + Node0x154aed0 -> Node0x154b000; + Node0x154b000 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = icmp ne i32** %17, null\l br label %20\l}"]; + Node0x154b000 -> Node0x154b4d0; + Node0x154b4d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l br i1 %19, label %21, label %29\l|{T|F}}"]; + Node0x154b4d0:s0 -> Node0x154b590; + Node0x154b4d0:s1 -> Node0x154b5e0; + Node0x154b590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%21:\l21: \l %22 = load i32, i32* %11, align 4\l br label %23\l}"]; + Node0x154b590 -> Node0x154b790; + Node0x154b790 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%23:\l23: \l %24 = icmp ne i32 %22, 0\l br label %25\l}"]; + Node0x154b790 -> Node0x154b850; + Node0x154b850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%25:\l25: \l br i1 %24, label %26, label %28\l|{T|F}}"]; + Node0x154b850:s0 -> Node0x154b910; + Node0x154b850:s1 -> Node0x154b960; + Node0x154b910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%26:\l26: \l store i32* %11, i32** %5, align 8\l br label %27\l}"]; + Node0x154b910 -> Node0x154baa0; + Node0x154baa0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%27:\l27: \l br label %28\l}"]; + Node0x154baa0 -> Node0x154b960; + Node0x154b960 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%28:\l28: \l br label %32\l}"]; + Node0x154b960 -> Node0x154bbd0; + Node0x154b5e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%29:\l29: \l store i32** %9, i32*** %3, align 8\l br label %30\l}"]; + Node0x154b5e0 -> Node0x154bc90; + Node0x154bc90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%30:\l30: \l store i32* %13, i32** %5, align 8\l br label %31\l}"]; + Node0x154bc90 -> Node0x154bde0; + Node0x154bde0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%31:\l31: \l br label %32\l}"]; + Node0x154bde0 -> Node0x154bbd0; + Node0x154bbd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%32:\l32: \l %33 = load i32, i32* %13, align 4\l br label %34\l}"]; + Node0x154bbd0 -> Node0x154c190; + Node0x154c190 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%34:\l34: \l %35 = icmp ne i32 %33, 0\l br label %36\l}"]; + Node0x154c190 -> Node0x154c2e0; + Node0x154c2e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%36:\l36: \l br i1 %35, label %37, label %43\l|{T|F}}"]; + Node0x154c2e0:s0 -> Node0x154c3a0; + Node0x154c2e0:s1 -> Node0x154c3f0; + Node0x154c3a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%37:\l37: \l %38 = load i32*, i32** %5, align 8\l br label %39\l}"]; + Node0x154c3a0 -> Node0x154c560; + Node0x154c560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%39:\l39: \l %40 = load i32**, i32*** %3, align 8\l br label %41\l}"]; + Node0x154c560 -> Node0x154c690; + Node0x154c690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%41:\l41: \l store i32* %38, i32** %40, align 8\l br label %42\l}"]; + Node0x154c690 -> Node0x154c7e0; + Node0x154c7e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%42:\l42: \l br label %43\l}"]; + Node0x154c7e0 -> Node0x154c3f0; + Node0x154c3f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%43:\l43: \l %44 = load i32, i32* %1, align 4\l br label %45\l}"]; + Node0x154c3f0 -> Node0x154c980; + Node0x154c980 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%45:\l45: \l ret i32 %44\l}"]; + Node0x154c980 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; } diff --git a/front/tests/test_transl/outfilefile1.png b/front/tests/test_transl/outfilefile1.png new file mode 100644 index 0000000..7e78116 Binary files /dev/null and b/front/tests/test_transl/outfilefile1.png differ diff --git a/front/tests/test_transl/outfilefile2.png b/front/tests/test_transl/outfilefile2.png new file mode 100644 index 0000000..f84518f Binary files /dev/null and b/front/tests/test_transl/outfilefile2.png differ diff --git a/front/tests/test_transl/outfilefile3.png b/front/tests/test_transl/outfilefile3.png new file mode 100644 index 0000000..92e6ef2 Binary files /dev/null and b/front/tests/test_transl/outfilefile3.png differ diff --git a/front/tests/test_transl/outfilefile4.png b/front/tests/test_transl/outfilefile4.png new file mode 100644 index 0000000..6458cde Binary files /dev/null and b/front/tests/test_transl/outfilefile4.png differ diff --git a/front/tests/test_transl_core/.mainfile1.dot b/front/tests/test_transl_core/.mainfile1.dot index b57d796..1976998 100644 --- a/front/tests/test_transl_core/.mainfile1.dot +++ b/front/tests/test_transl_core/.mainfile1.dot @@ -1,368 +1,77 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0x1216320 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; - Node0x1216320 -> Node0x1216a90; - Node0x1216a90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; - Node0x1216a90 -> Node0x1216c10; - Node0x1216c10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i8**, align 8\l br label %8\l}"]; - Node0x1216c10 -> Node0x1216d40; - Node0x1216d40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca %struct._IO_FILE*, align 8\l br label %10\l}"]; - Node0x1216d40 -> Node0x1216b50; - Node0x1216b50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; - Node0x1216b50 -> Node0x1216f50; - Node0x1216f50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i8**, align 8\l br label %14\l}"]; - Node0x1216f50 -> Node0x1217080; - Node0x1217080 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l %15 = alloca [5 x i32], align 16\l br label %16\l}"]; - Node0x1217080 -> Node0x12171b0; - Node0x12171b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = alloca i32*, align 8\l br label %18\l}"]; - Node0x12171b0 -> Node0x12172e0; - Node0x12172e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = alloca i64, align 8\l br label %20\l}"]; - Node0x12172e0 -> Node0x1217410; - Node0x1217410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l store i32 0, i32* %3, align 4\l br label %21\l}"]; - Node0x1217410 -> Node0x12174d0; - Node0x12174d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l store i32 %0, i32* %5, align 4\l br label %22\l}"]; - Node0x12174d0 -> Node0x1217590; - Node0x1217590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l store i8** %1, i8*** %7, align 8\l br label %23\l}"]; - Node0x1217590 -> Node0x1217650; - Node0x1217650 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l store i32 0, i32* %11, align 4\l br label %24\l}"]; - Node0x1217650 -> Node0x1217710; - Node0x1217710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = load i32, i32* %5, align 4\l br label %26\l}"]; - Node0x1217710 -> Node0x1217840; - Node0x1217840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l %27 = icmp ne i32 %25, 2\l br label %28\l}"]; - Node0x1217840 -> Node0x1217930; - Node0x1217930 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%28:\l28: \l br i1 %27, label %29, label %31\l|{T|F}}"]; - Node0x1217930:s0 -> Node0x12179f0; - Node0x1217930:s1 -> Node0x1217a40; - Node0x12179f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%29:\l29: \l call void @usage()\l br label %30\l}"]; - Node0x12179f0 -> Node0x121da70 [style = dotted]; - Node0x12179f0 -> Node0x1217ce0; - Node0x1217ce0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%30:\l30: \l br label %107\l}"]; - Node0x1217ce0 -> Node0x1217da0; - Node0x1217a40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%31:\l31: \l %32 = load i8**, i8*** %7, align 8\l br label %33\l}"]; - Node0x1217a40 -> Node0x12180e0; - Node0x12180e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%33:\l33: \l store i8** %32, i8*** %13, align 8\l br label %34\l}"]; - Node0x12180e0 -> Node0x1218230; - Node0x1218230 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%34:\l34: \l %35 = load i8**, i8*** %13, align 8\l br label %36\l}"]; - Node0x1218230 -> Node0x1218360; - Node0x1218360 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%36:\l36: \l %37 = getelementptr inbounds i8*, i8** %35, i32 1\l br label %38\l}"]; - Node0x1218360 -> Node0x12184c0; - Node0x12184c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%38:\l38: \l store i8** %37, i8*** %13, align 8\l br label %39\l}"]; - Node0x12184c0 -> Node0x1218610; - Node0x1218610 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%39:\l39: \l %40 = load i8**, i8*** %13, align 8\l br label %41\l}"]; - Node0x1218610 -> Node0x1218740; - Node0x1218740 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%41:\l41: \l %42 = load i8*, i8** %40, align 8\l br label %43\l}"]; - Node0x1218740 -> Node0x1218870; - Node0x1218870 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%43:\l43: \l %44 = call noalias %struct._IO_FILE* @fopen(i8* noundef %42, i8* noundef\l... getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))\l br label %45\l}"]; - Node0x1218870 -> Node0x1218e30; - Node0x1218e30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%45:\l45: \l store %struct._IO_FILE* %44, %struct._IO_FILE** %9, align 8\l br label %46\l}"]; - Node0x1218e30 -> Node0x1218fc0; - Node0x1218fc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%46:\l46: \l %47 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %48\l}"]; - Node0x1218fc0 -> Node0x12190f0; - Node0x12190f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%48:\l48: \l %49 = icmp ne %struct._IO_FILE* %47, null\l br label %50\l}"]; - Node0x12190f0 -> Node0x1219650; - Node0x1219650 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%50:\l50: \l br i1 %49, label %69, label %51\l|{T|F}}"]; - Node0x1219650:s0 -> Node0x1219710; - Node0x1219650:s1 -> Node0x1219760; - Node0x1219760 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%51:\l51: \l %52 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8\l br label %53\l}"]; - Node0x1219760 -> Node0x1219910; - Node0x1219910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%53:\l53: \l %54 = load i8**, i8*** %13, align 8\l br label %55\l}"]; - Node0x1219910 -> Node0x1219a40; - Node0x1219a40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%55:\l55: \l %56 = call i32* @__errno_location()\l br label %57\l}"]; - Node0x1219a40 -> Node0x1219d60; - Node0x1219d60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%57:\l57: \l %58 = load i32, i32* %56, align 4\l br label %59\l}"]; - Node0x1219d60 -> Node0x1219e90; - Node0x1219e90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%59:\l59: \l %60 = call i8* @strerror(i32 noundef %58)\l br label %61\l}"]; - Node0x1219e90 -> Node0x121a150; - Node0x121a150 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%61:\l61: \l %62 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE*\l... noundef %52, i8* noundef getelementptr inbounds ([24 x i8], [24 x i8]*\l... @.str.1, i64 0, i64 0), i8** noundef %54, i8* noundef %60)\l br label %63\l}"]; - Node0x121a150 -> Node0x121a510; - Node0x121a510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%63:\l63: \l %64 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %65\l}"]; - Node0x121a510 -> Node0x121aa50; - Node0x121aa50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%65:\l65: \l %66 = call i32 @fclose(%struct._IO_FILE* noundef %64)\l br label %67\l}"]; - Node0x121aa50 -> Node0x121ad20; - Node0x121ad20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%67:\l67: \l store i32 -2, i32* %11, align 4\l br label %68\l}"]; - Node0x121ad20 -> Node0x121aea0; - Node0x121aea0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ecd3c570",label="{%68:\l68: \l br label %69\l}"]; - Node0x121aea0 -> Node0x1219710; - Node0x1219710 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%69:\l69: \l %70 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %71\l}"]; - Node0x1219710 -> Node0x121b090; - Node0x121b090 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%71:\l71: \l store i32* %70, i32** %17, align 8\l br label %72\l}"]; - Node0x121b090 -> Node0x121b1e0; - Node0x121b1e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%72:\l72: \l %73 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %74\l}"]; - Node0x121b1e0 -> Node0x121b310; - Node0x121b310 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%74:\l74: \l call void @input(%struct._IO_FILE* noundef %73, i32** noundef %17, i32*\l... noundef %11)\l br label %75\l}"]; - Node0x121b310 -> Node0x121e1e0 [style = dotted]; - Node0x121b310 -> Node0x121b560; - Node0x121b560 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%75:\l75: \l %76 = load %struct._IO_FILE*, %struct._IO_FILE** %9, align 8\l br label %77\l}"]; - Node0x121b560 -> Node0x121b690; - Node0x121b690 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%77:\l77: \l %78 = call i32 @fclose(%struct._IO_FILE* noundef %76)\l br label %79\l}"]; - Node0x121b690 -> Node0x121b840; - Node0x121b840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%79:\l79: \l %80 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x\l... i8], [2 x i8]* @.str.2, i64 0, i64 0))\l br label %81\l}"]; - Node0x121b840 -> Node0x121bba0; - Node0x121bba0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%81:\l81: \l %82 = load i32, i32* %11, align 4\l br label %83\l}"]; - Node0x121bba0 -> Node0x121bcd0; - Node0x121bcd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%83:\l83: \l switch i32 %82, label %98 [\l i32 0, label %84\l i32 -3, label %95\l ]\l|{def|0|-3}}"]; - Node0x121bcd0:s0 -> Node0x121bd90; - Node0x121bcd0:s1 -> Node0x121bde0; - Node0x121bcd0:s2 -> Node0x121be60; - Node0x121bde0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%84:\l84: \l store i64 0, i64* %19, align 8\l br label %85\l}"]; - Node0x121bde0 -> Node0x121c0a0; - Node0x121c0a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%85:\l85: \l %86 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %87\l}"]; - Node0x121c0a0 -> Node0x121c220; - Node0x121c220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%87:\l87: \l %88 = load i32*, i32** %17, align 8\l br label %89\l}"]; - Node0x121c220 -> Node0x121c350; - Node0x121c350 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%89:\l89: \l call void @result(i32* noundef %86, i32* noundef %88, i64* noundef %19)\l br label %90\l}"]; - Node0x121c350 -> Node0x1222720 [style = dotted]; - Node0x121c350 -> Node0x121c580; - Node0x121c580 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%90:\l90: \l %91 = load i64, i64* %19, align 8\l br label %92\l}"]; - Node0x121c580 -> Node0x121c6b0; - Node0x121c6b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%92:\l92: \l %93 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([16 x\l... i8], [16 x i8]* @.str.3, i64 0, i64 0), i64 noundef %91)\l br label %94\l}"]; - Node0x121c6b0 -> Node0x121c910; - Node0x121c910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%94:\l94: \l br label %101\l}"]; - Node0x121c910 -> Node0x121c9d0; - Node0x121be60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%95:\l95: \l %96 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([22 x\l... i8], [22 x i8]* @.str.4, i64 0, i64 0))\l br label %97\l}"]; - Node0x121be60 -> Node0x121cc10; - Node0x121cc10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%97:\l97: \l br label %101\l}"]; - Node0x121cc10 -> Node0x121c9d0; - Node0x121bd90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%98:\l98: \l %99 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([14 x\l... i8], [14 x i8]* @.str.5, i64 0, i64 0))\l br label %100\l}"]; - Node0x121bd90 -> Node0x121cec0; - Node0x121cec0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e5d8d170",label="{%100:\l100: \l br label %101\l}"]; - Node0x121cec0 -> Node0x121c9d0; - Node0x121c9d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%101:\l101: \l %102 = getelementptr inbounds [5 x i32], [5 x i32]* %15, i64 0, i64 0\l br label %103\l}"]; - Node0x121c9d0 -> Node0x121d0b0; - Node0x121d0b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%103:\l103: \l %104 = load i32*, i32** %17, align 8\l br label %105\l}"]; - Node0x121d0b0 -> Node0x121d1e0; - Node0x121d1e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%105:\l105: \l call void @array_print(i32* noundef %102, i32* noundef %104)\l br label %106\l}"]; - Node0x121d1e0 -> Node0x1224ba0 [style = dotted]; - Node0x121d1e0 -> Node0x121d4d0; - Node0x121d4d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%106:\l106: \l br label %107\l}"]; - Node0x121d4d0 -> Node0x1217da0; - Node0x1217da0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%107:\l107: \l %108 = load i32, i32* %11, align 4\l br label %109\l}"]; - Node0x1217da0 -> Node0x121d670; - Node0x121d670 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%109:\l109: \l ret i32 %108\l}"]; - subgraph cluster_usage { - label = "CFG for 'usage' function"; - graph[style=filled, bgcolor=white]; - - Node0x121da70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%0:\l %1 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([25 x\l... i8], [25 x i8]* @.str.6, i64 0, i64 0))\l br label %2\l}"]; - Node0x121da70 -> Node0x121dbd0; - Node0x121dbd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l2: \l ret void\l}"]; - } - subgraph cluster_input { - label = "CFG for 'input' function"; - graph[style=filled, bgcolor=white]; - - Node0x121e1e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%3:\l %4 = alloca %struct._IO_FILE*, align 8\l br label %5\l}"]; - Node0x121e1e0 -> Node0x121e2f0; - Node0x121e2f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%5:\l5: \l %6 = alloca i32**, align 8\l br label %7\l}"]; - Node0x121e2f0 -> Node0x121e420; - Node0x121e420 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%7:\l7: \l %8 = alloca i32*, align 8\l br label %9\l}"]; - Node0x121e420 -> Node0x121e2a0; - Node0x121e2a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%9:\l9: \l %10 = alloca i32, align 4\l br label %11\l}"]; - Node0x121e2a0 -> Node0x121e630; - Node0x121e630 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%11:\l11: \l store %struct._IO_FILE* %0, %struct._IO_FILE** %4, align 8\l br label %12\l}"]; - Node0x121e630 -> Node0x121e780; - Node0x121e780 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%12:\l12: \l store i32** %1, i32*** %6, align 8\l br label %13\l}"]; - Node0x121e780 -> Node0x121e8d0; - Node0x121e8d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%13:\l13: \l store i32* %2, i32** %8, align 8\l br label %14\l}"]; - Node0x121e8d0 -> Node0x121ea20; - Node0x121ea20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%14:\l14: \l store i32 0, i32* %10, align 4\l br label %15\l}"]; - Node0x121ea20 -> Node0x121eb70; - Node0x121eb70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%15:\l15: \l br label %16\l}"]; - Node0x121eb70 -> Node0x121ec30; - Node0x121ec30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load %struct._IO_FILE*, %struct._IO_FILE** %4, align 8\l br label %18\l}"]; - Node0x121ec30 -> Node0x121ed60; - Node0x121ed60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = load i32**, i32*** %6, align 8\l br label %20\l}"]; - Node0x121ed60 -> Node0x121ee90; - Node0x121ee90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = load i32*, i32** %19, align 8\l br label %22\l}"]; - Node0x121ee90 -> Node0x121efc0; - Node0x121efc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l %23 = call i32 (%struct._IO_FILE*, i8*, ...)\l... @__isoc99_fscanf(%struct._IO_FILE* noundef %17, i8* noundef getelementptr\l... inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), i32* noundef %21)\l br label %24\l}"]; - Node0x121efc0 -> Node0x121f160; - Node0x121f160 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = icmp eq i32 %23, 1\l br label %26\l}"]; - Node0x121f160 -> Node0x121f2b0; - Node0x121f2b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l br i1 %25, label %27, label %32\l|{T|F}}"]; - Node0x121f2b0:s0 -> Node0x121f370; - Node0x121f2b0:s1 -> Node0x121f3c0; - Node0x121f370 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%27:\l27: \l %28 = load i32, i32* %10, align 4\l br label %29\l}"]; - Node0x121f370 -> Node0x121f530; - Node0x121f530 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%29:\l29: \l %30 = icmp sle i32 %28, 5\l br label %31\l}"]; - Node0x121f530 -> Node0x121f680; - Node0x121f680 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%31:\l31: \l br label %32\l}"]; - Node0x121f680 -> Node0x121f3c0; - Node0x121f3c0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%32:\l32: \l %33 = phi i1 [ false, %26 ], [ %30, %31 ]\l br label %34\l}"]; - Node0x121f3c0 -> Node0x121f830; - Node0x121f830 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%34:\l34: \l br i1 %33, label %35, label %69\l|{T|F}}"]; - Node0x121f830:s0 -> Node0x121f8f0; - Node0x121f830:s1 -> Node0x121f940; - Node0x121f8f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = load i32, i32* %10, align 4\l br label %37\l}"]; - Node0x121f8f0 -> Node0x121fab0; - Node0x121fab0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = icmp slt i32 %36, 5\l br label %39\l}"]; - Node0x121fab0 -> Node0x121fc00; - Node0x121fc00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l br i1 %38, label %40, label %51\l|{T|F}}"]; - Node0x121fc00:s0 -> Node0x121fcc0; - Node0x121fc00:s1 -> Node0x121fd10; - Node0x121fcc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%40:\l40: \l %41 = load i32**, i32*** %6, align 8\l br label %42\l}"]; - Node0x121fcc0 -> Node0x121fe80; - Node0x121fe80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%42:\l42: \l %43 = load i32*, i32** %41, align 8\l br label %44\l}"]; - Node0x121fe80 -> Node0x121ffb0; - Node0x121ffb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%44:\l44: \l %45 = load i32, i32* %43, align 4\l br label %46\l}"]; - Node0x121ffb0 -> Node0x12200e0; - Node0x12200e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%46:\l46: \l %47 = icmp slt i32 %45, 0\l br label %48\l}"]; - Node0x12200e0 -> Node0x1220230; - Node0x1220230 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%48:\l48: \l br i1 %47, label %49, label %50\l|{T|F}}"]; - Node0x1220230:s0 -> Node0x12202f0; - Node0x1220230:s1 -> Node0x1220340; - Node0x12202f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#abc8fd70",label="{%49:\l49: \l br label %69\l}"]; - Node0x12202f0 -> Node0x121f940; - Node0x1220340 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#de614d70",label="{%50:\l50: \l br label %55\l}"]; - Node0x1220340 -> Node0x12204b0; - Node0x121fd10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%51:\l51: \l %52 = load i32*, i32** %8, align 8\l br label %53\l}"]; - Node0x121fd10 -> Node0x12205e0; - Node0x12205e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%53:\l53: \l store i32 -3, i32* %52, align 4\l br label %54\l}"]; - Node0x12205e0 -> Node0x1220730; - Node0x1220730 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dc5d4a70",label="{%54:\l54: \l br label %55\l}"]; - Node0x1220730 -> Node0x12204b0; - Node0x12204b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%55:\l55: \l br label %56\l}"]; - Node0x12204b0 -> Node0x1220860; - Node0x1220860 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%56:\l56: \l %57 = load i32**, i32*** %6, align 8\l br label %58\l}"]; - Node0x1220860 -> Node0x1220990; - Node0x1220990 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%58:\l58: \l %59 = load i32*, i32** %57, align 8\l br label %60\l}"]; - Node0x1220990 -> Node0x1220ac0; - Node0x1220ac0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%60:\l60: \l %61 = getelementptr inbounds i32, i32* %59, i32 1\l br label %62\l}"]; - Node0x1220ac0 -> Node0x1220c20; - Node0x1220c20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%62:\l62: \l store i32* %61, i32** %57, align 8\l br label %63\l}"]; - Node0x1220c20 -> Node0x1220d70; - Node0x1220d70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%63:\l63: \l %64 = load i32, i32* %10, align 4\l br label %65\l}"]; - Node0x1220d70 -> Node0x1220ea0; - Node0x1220ea0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%65:\l65: \l %66 = add nsw i32 %64, 1\l br label %67\l}"]; - Node0x1220ea0 -> Node0x1220ff0; - Node0x1220ff0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%67:\l67: \l store i32 %66, i32* %10, align 4\l br label %68\l}"]; - Node0x1220ff0 -> Node0x1221140; - Node0x1221140 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%68:\l68: \l br label %16, !llvm.loop !6\l}"]; - Node0x1221140 -> Node0x121ec30; - Node0x121f940 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%69:\l69: \l %70 = load i32, i32* %10, align 4\l br label %71\l}"]; - Node0x121f940 -> Node0x1221d70; - Node0x1221d70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%71:\l71: \l %72 = icmp ne i32 %70, 0\l br label %73\l}"]; - Node0x1221d70 -> Node0x1221ec0; - Node0x1221ec0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%73:\l73: \l br i1 %72, label %78, label %74\l|{T|F}}"]; - Node0x1221ec0:s0 -> Node0x1221f80; - Node0x1221ec0:s1 -> Node0x1221fd0; - Node0x1221fd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%74:\l74: \l %75 = load i32*, i32** %8, align 8\l br label %76\l}"]; - Node0x1221fd0 -> Node0x1222140; - Node0x1222140 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%76:\l76: \l store i32 -4, i32* %75, align 4\l br label %77\l}"]; - Node0x1222140 -> Node0x12222c0; - Node0x12222c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b2ccfb70",label="{%77:\l77: \l br label %78\l}"]; - Node0x12222c0 -> Node0x1221f80; - Node0x1221f80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dedcdb70",label="{%78:\l78: \l ret void\l}"]; - } - subgraph cluster_result { - label = "CFG for 'result' function"; - graph[style=filled, bgcolor=white]; - - Node0x1222720 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%3:\l %4 = alloca i32*, align 8\l br label %5\l}"]; - Node0x1222720 -> Node0x1222830; - Node0x1222830 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%5:\l5: \l %6 = alloca i32*, align 8\l br label %7\l}"]; - Node0x1222830 -> Node0x1222960; - Node0x1222960 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%7:\l7: \l %8 = alloca i64*, align 8\l br label %9\l}"]; - Node0x1222960 -> Node0x12227e0; - Node0x12227e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%9:\l9: \l %10 = alloca i64, align 8\l br label %11\l}"]; - Node0x12227e0 -> Node0x1222b70; - Node0x1222b70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%11:\l11: \l store i32* %0, i32** %4, align 8\l br label %12\l}"]; - Node0x1222b70 -> Node0x1222cc0; - Node0x1222cc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32* %1, i32** %6, align 8\l br label %13\l}"]; - Node0x1222cc0 -> Node0x1222e10; - Node0x1222e10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l store i64* %2, i64** %8, align 8\l br label %14\l}"]; - Node0x1222e10 -> Node0x1222f60; - Node0x1222f60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l store i64 1, i64* %10, align 8\l br label %15\l}"]; - Node0x1222f60 -> Node0x12230b0; - Node0x12230b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l br label %16\l}"]; - Node0x12230b0 -> Node0x1223170; - Node0x1223170 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load i32*, i32** %4, align 8\l br label %18\l}"]; - Node0x1223170 -> Node0x12232a0; - Node0x12232a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = load i32*, i32** %6, align 8\l br label %20\l}"]; - Node0x12232a0 -> Node0x12233d0; - Node0x12233d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = icmp ult i32* %17, %19\l br label %22\l}"]; - Node0x12233d0 -> Node0x1223490; - Node0x1223490 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l br i1 %21, label %23, label %50\l|{T|F}}"]; - Node0x1223490:s0 -> Node0x1223550; - Node0x1223490:s1 -> Node0x12235a0; - Node0x1223550 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%23:\l23: \l %24 = load i32*, i32** %4, align 8\l br label %25\l}"]; - Node0x1223550 -> Node0x1223710; - Node0x1223710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = load i32, i32* %24, align 4\l br label %27\l}"]; - Node0x1223710 -> Node0x1223840; - Node0x1223840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = sext i32 %26 to i64\l br label %29\l}"]; - Node0x1223840 -> Node0x1223970; - Node0x1223970 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i64, i64* %10, align 8\l br label %31\l}"]; - Node0x1223970 -> Node0x1223aa0; - Node0x1223aa0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = mul nsw i64 %30, %28\l br label %33\l}"]; - Node0x1223aa0 -> Node0x1223bf0; - Node0x1223bf0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l store i64 %32, i64* %10, align 8\l br label %34\l}"]; - Node0x1223bf0 -> Node0x1223d40; - Node0x1223d40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%34:\l34: \l %35 = load i64, i64* %10, align 8\l br label %36\l}"]; - Node0x1223d40 -> Node0x1223e70; - Node0x1223e70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%36:\l36: \l %37 = load i64*, i64** %8, align 8\l br label %38\l}"]; - Node0x1223e70 -> Node0x1223fa0; - Node0x1223fa0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%38:\l38: \l %39 = load i64, i64* %37, align 8\l br label %40\l}"]; - Node0x1223fa0 -> Node0x12240d0; - Node0x12240d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = add nsw i64 %39, %35\l br label %42\l}"]; - Node0x12240d0 -> Node0x1224220; - Node0x1224220 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l store i64 %41, i64* %37, align 8\l br label %43\l}"]; - Node0x1224220 -> Node0x1224370; - Node0x1224370 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l br label %44\l}"]; - Node0x1224370 -> Node0x1224430; - Node0x1224430 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = load i32*, i32** %4, align 8\l br label %46\l}"]; - Node0x1224430 -> Node0x1224560; - Node0x1224560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = getelementptr inbounds i32, i32* %45, i32 1\l br label %48\l}"]; - Node0x1224560 -> Node0x12246c0; - Node0x12246c0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l store i32* %47, i32** %4, align 8\l br label %49\l}"]; - Node0x12246c0 -> Node0x1224810; - Node0x1224810 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%49:\l49: \l br label %16, !llvm.loop !6\l}"]; - Node0x1224810 -> Node0x1223170; - Node0x12235a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%50:\l50: \l ret void\l}"]; - } - subgraph cluster_array_print { - label = "CFG for 'array_print' function"; - graph[style=filled, bgcolor=white]; - - Node0x1224ba0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l %3 = alloca i32*, align 8\l br label %4\l}"]; - Node0x1224ba0 -> Node0x1224c60; - Node0x1224c60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32*, align 8\l br label %6\l}"]; - Node0x1224c60 -> Node0x1224de0; - Node0x1224de0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l store i32* %0, i32** %3, align 8\l br label %7\l}"]; - Node0x1224de0 -> Node0x1224ea0; - Node0x1224ea0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%7:\l7: \l store i32* %1, i32** %5, align 8\l br label %8\l}"]; - Node0x1224ea0 -> Node0x1224ff0; - Node0x1224ff0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([8 x\l... i8], [8 x i8]* @.str.8, i64 0, i64 0))\l br label %10\l}"]; - Node0x1224ff0 -> Node0x1225270; - Node0x1225270 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l br label %11\l}"]; - Node0x1225270 -> Node0x1225330; - Node0x1225330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%11:\l11: \l %12 = load i32*, i32** %3, align 8\l br label %13\l}"]; - Node0x1225330 -> Node0x1225460; - Node0x1225460 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%13:\l13: \l %14 = load i32*, i32** %5, align 8\l br label %15\l}"]; - Node0x1225460 -> Node0x1225590; - Node0x1225590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l %16 = icmp ult i32* %12, %14\l br label %17\l}"]; - Node0x1225590 -> Node0x12256e0; - Node0x12256e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l br i1 %16, label %18, label %31\l|{T|F}}"]; - Node0x12256e0:s0 -> Node0x12257a0; - Node0x12256e0:s1 -> Node0x12257f0; - Node0x12257a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%18:\l18: \l %19 = load i32*, i32** %3, align 8\l br label %20\l}"]; - Node0x12257a0 -> Node0x12259a0; - Node0x12259a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%20:\l20: \l %21 = load i32, i32* %19, align 4\l br label %22\l}"]; - Node0x12259a0 -> Node0x1225ad0; - Node0x1225ad0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%22:\l22: \l %23 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x\l... i8], [4 x i8]* @.str.9, i64 0, i64 0), i32 noundef %21)\l br label %24\l}"]; - Node0x1225ad0 -> Node0x1225ca0; - Node0x1225ca0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%24:\l24: \l br label %25\l}"]; - Node0x1225ca0 -> Node0x1225d60; - Node0x1225d60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = load i32*, i32** %3, align 8\l br label %27\l}"]; - Node0x1225d60 -> Node0x1225e90; - Node0x1225e90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = getelementptr inbounds i32, i32* %26, i32 1\l br label %29\l}"]; - Node0x1225e90 -> Node0x1225ff0; - Node0x1225ff0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l store i32* %28, i32** %3, align 8\l br label %30\l}"]; - Node0x1225ff0 -> Node0x1226140; - Node0x1226140 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%30:\l30: \l br label %11, !llvm.loop !6\l}"]; - Node0x1226140 -> Node0x1225330; - Node0x12257f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%31:\l31: \l %32 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([2 x\l... i8], [2 x i8]* @.str.2, i64 0, i64 0))\l br label %33\l}"]; - Node0x12257f0 -> Node0x1226420; - Node0x1226420 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%33:\l33: \l ret void\l}"]; - } + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x2366040 + Node0x2366040 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x2366040 -> Node0x23667a0; + Node0x23667a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x23667a0 -> Node0x2366900; + Node0x2366900 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0x2366900 -> Node0x2366a80; + Node0x2366a80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i8*, align 8\l br label %8\l}"]; + Node0x2366a80 -> Node0x2366bb0; + Node0x2366bb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; + Node0x2366bb0 -> Node0x23669c0; + Node0x23669c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l store i32 0, i32* %1, align 4\l br label %11\l}"]; + Node0x23669c0 -> Node0x2366d50; + Node0x2366d50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%11:\l11: \l store i32 1000, i32* %3, align 4\l br label %12\l}"]; + Node0x2366d50 -> Node0x2366e40; + Node0x2366e40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32 500, i32* %5, align 4\l br label %13\l}"]; + Node0x2366e40 -> Node0x2366f30; + Node0x2366f30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l %14 = call i8* @llvm.stacksave()\l br label %15\l}"]; + Node0x2366f30 -> Node0x2367150; + Node0x2367150 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l store i8* %14, i8** %7, align 8\l br label %16\l}"]; + Node0x2367150 -> Node0x2367210; + Node0x2367210 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l %17 = alloca i32, i64 1000, align 16\l br label %18\l}"]; + Node0x2367210 -> Node0x2367370; + Node0x2367370 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%18:\l18: \l store i32 0, i32* %9, align 4\l br label %19\l}"]; + Node0x2367370 -> Node0x2367430; + Node0x2367430 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l br label %20\l}"]; + Node0x2367430 -> Node0x23674f0; + Node0x23674f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = load i32, i32* %9, align 4\l br label %22\l}"]; + Node0x23674f0 -> Node0x2367620; + Node0x2367620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l %23 = icmp slt i32 %21, 1000\l br label %24\l}"]; + Node0x2367620 -> Node0x2367770; + Node0x2367770 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l br i1 %23, label %25, label %47\l|{T|F}}"]; + Node0x2367770:s0 -> Node0x2367830; + Node0x2367770:s1 -> Node0x2367880; + Node0x2367830 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = getelementptr inbounds i32, i32* %17, i64 500\l br label %27\l}"]; + Node0x2367830 -> Node0x2367a90; + Node0x2367a90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = load i32, i32* %26, align 16\l br label %29\l}"]; + Node0x2367a90 -> Node0x2367bc0; + Node0x2367bc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i32, i32* %9, align 4\l br label %31\l}"]; + Node0x2367bc0 -> Node0x2367cf0; + Node0x2367cf0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = mul nsw i32 %28, %30\l br label %33\l}"]; + Node0x2367cf0 -> Node0x2368050; + Node0x2368050 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = load i32, i32* %9, align 4\l br label %35\l}"]; + Node0x2368050 -> Node0x2368180; + Node0x2368180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = sext i32 %34 to i64\l br label %37\l}"]; + Node0x2368180 -> Node0x23682b0; + Node0x23682b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = getelementptr inbounds i32, i32* %17, i64 %36\l br label %39\l}"]; + Node0x23682b0 -> Node0x2368410; + Node0x2368410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l store i32 %32, i32* %38, align 4\l br label %40\l}"]; + Node0x2368410 -> Node0x2368560; + Node0x2368560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l br label %41\l}"]; + Node0x2368560 -> Node0x2368620; + Node0x2368620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%41:\l41: \l %42 = load i32, i32* %9, align 4\l br label %43\l}"]; + Node0x2368620 -> Node0x2368750; + Node0x2368750 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l %44 = add nsw i32 %42, 1\l br label %45\l}"]; + Node0x2368750 -> Node0x23688a0; + Node0x23688a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%45:\l45: \l store i32 %44, i32* %9, align 4\l br label %46\l}"]; + Node0x23688a0 -> Node0x23689f0; + Node0x23689f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l br label %20, !llvm.loop !6\l}"]; + Node0x23689f0 -> Node0x23674f0; + Node0x2367880 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%47:\l47: \l store i32 0, i32* %1, align 4\l br label %48\l}"]; + Node0x2367880 -> Node0x2369680; + Node0x2369680 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%48:\l48: \l %49 = load i8*, i8** %7, align 8\l br label %50\l}"]; + Node0x2369680 -> Node0x23697b0; + Node0x23697b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%50:\l50: \l call void @llvm.stackrestore(i8* %49)\l br label %51\l}"]; + Node0x23697b0 -> Node0x2369ab0; + Node0x2369ab0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%51:\l51: \l %52 = load i32, i32* %1, align 4\l br label %53\l}"]; + Node0x2369ab0 -> Node0x2369be0; + Node0x2369be0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%53:\l53: \l ret i32 %52\l}"]; + Node0x2369be0 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; } diff --git a/front/tests/test_transl_core/.mainfile2.dot b/front/tests/test_transl_core/.mainfile2.dot index 4c0428f..fa7e6d7 100644 --- a/front/tests/test_transl_core/.mainfile2.dot +++ b/front/tests/test_transl_core/.mainfile2.dot @@ -1,27 +1,130 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0x900b30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l %3 = alloca i32, align 4\l br label %4\l}"]; - Node0x900b30 -> Node0x9012a0; - Node0x9012a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; - Node0x9012a0 -> Node0x901420; - Node0x901420 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i8**, align 8\l br label %8\l}"]; - Node0x901420 -> Node0x901550; - Node0x901550 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; - Node0x901550 -> Node0x901360; - Node0x901360 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l store i32 0, i32* %3, align 4\l br label %11\l}"]; - Node0x901360 -> Node0x9016f0; - Node0x9016f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%11:\l11: \l store i32 %0, i32* %5, align 4\l br label %12\l}"]; - Node0x9016f0 -> Node0x9017b0; - Node0x9017b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l store i8** %1, i8*** %7, align 8\l br label %13\l}"]; - Node0x9017b0 -> Node0x901870; - Node0x901870 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%13:\l13: \l store i32 17, i32* %9, align 4\l br label %14\l}"]; - Node0x901870 -> Node0x901960; - Node0x901960 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l %15 = load i32, i32* %9, align 4\l br label %16\l}"]; - Node0x901960 -> Node0x901a90; - Node0x901a90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = add nsw i32 %15, 1\l br label %18\l}"]; - Node0x901a90 -> Node0x901b50; - Node0x901b50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l store i32 %17, i32* %9, align 4\l br label %19\l}"]; - Node0x901b50 -> Node0x901c10; - Node0x901c10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%19:\l19: \l ret i32 0\l}"]; + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0xf38660 + Node0xf38660 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0xf38660 -> Node0xf38dc0; + Node0xf38dc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0xf38dc0 -> Node0xf38f20; + Node0xf38f20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0xf38f20 -> Node0xf390a0; + Node0xf390a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i8*, align 8\l br label %8\l}"]; + Node0xf390a0 -> Node0xf391d0; + Node0xf391d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca float, align 4\l br label %10\l}"]; + Node0xf391d0 -> Node0xf38fe0; + Node0xf38fe0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0xf38fe0 -> Node0xf393e0; + Node0xf393e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; + Node0xf393e0 -> Node0xf39510; + Node0xf39510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l store i32 0, i32* %1, align 4\l br label %15\l}"]; + Node0xf39510 -> Node0xf395d0; + Node0xf395d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l store i32 1000, i32* %3, align 4\l br label %16\l}"]; + Node0xf395d0 -> Node0xf396c0; + Node0xf396c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l store i32 500, i32* %5, align 4\l br label %17\l}"]; + Node0xf396c0 -> Node0xf397b0; + Node0xf397b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%17:\l17: \l %18 = call i8* @llvm.stacksave()\l br label %19\l}"]; + Node0xf397b0 -> Node0xf399d0; + Node0xf399d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l store i8* %18, i8** %7, align 8\l br label %20\l}"]; + Node0xf399d0 -> Node0xf39a90; + Node0xf39a90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%20:\l20: \l %21 = alloca float, i64 1000, align 16\l br label %22\l}"]; + Node0xf39a90 -> Node0xf39bf0; + Node0xf39bf0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%22:\l22: \l %23 = getelementptr inbounds float, float* %21, i64 500\l br label %24\l}"]; + Node0xf39bf0 -> Node0xf39d80; + Node0xf39d80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%24:\l24: \l %25 = load float, float* %23, align 16\l br label %26\l}"]; + Node0xf39d80 -> Node0xf39eb0; + Node0xf39eb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%26:\l26: \l store float %25, float* %9, align 4\l br label %27\l}"]; + Node0xf39eb0 -> Node0xf39f70; + Node0xf39f70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%27:\l27: \l store i32 0, i32* %11, align 4\l br label %28\l}"]; + Node0xf39f70 -> Node0xf3a0c0; + Node0xf3a0c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%28:\l28: \l br label %29\l}"]; + Node0xf3a0c0 -> Node0xf3a180; + Node0xf3a180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%29:\l29: \l %30 = load i32, i32* %11, align 4\l br label %31\l}"]; + Node0xf3a180 -> Node0xf3a2b0; + Node0xf3a2b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%31:\l31: \l %32 = icmp sle i32 %30, 500\l br label %33\l}"]; + Node0xf3a2b0 -> Node0xf3a610; + Node0xf3a610 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%33:\l33: \l br i1 %32, label %34, label %56\l|{T|F}}"]; + Node0xf3a610:s0 -> Node0xf3a6d0; + Node0xf3a610:s1 -> Node0xf3a720; + Node0xf3a6d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%34:\l34: \l %35 = load float, float* %9, align 4\l br label %36\l}"]; + Node0xf3a6d0 -> Node0xf3a8d0; + Node0xf3a8d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%36:\l36: \l %37 = load i32, i32* %11, align 4\l br label %38\l}"]; + Node0xf3a8d0 -> Node0xf3aa00; + Node0xf3aa00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%38:\l38: \l %39 = sitofp i32 %37 to float\l br label %40\l}"]; + Node0xf3aa00 -> Node0xf3ab30; + Node0xf3ab30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = fmul float %35, %39\l br label %42\l}"]; + Node0xf3ab30 -> Node0xf3ac80; + Node0xf3ac80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l %43 = load i32, i32* %11, align 4\l br label %44\l}"]; + Node0xf3ac80 -> Node0xf3adb0; + Node0xf3adb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = sext i32 %43 to i64\l br label %46\l}"]; + Node0xf3adb0 -> Node0xf3aee0; + Node0xf3aee0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = getelementptr inbounds float, float* %21, i64 %45\l br label %48\l}"]; + Node0xf3aee0 -> Node0xf3b040; + Node0xf3b040 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l store float %41, float* %47, align 4\l br label %49\l}"]; + Node0xf3b040 -> Node0xf3b190; + Node0xf3b190 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%49:\l49: \l br label %50\l}"]; + Node0xf3b190 -> Node0xf3b250; + Node0xf3b250 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l %51 = load i32, i32* %11, align 4\l br label %52\l}"]; + Node0xf3b250 -> Node0xf3b380; + Node0xf3b380 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%52:\l52: \l %53 = add nsw i32 %51, 1\l br label %54\l}"]; + Node0xf3b380 -> Node0xf3b4d0; + Node0xf3b4d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%54:\l54: \l store i32 %53, i32* %11, align 4\l br label %55\l}"]; + Node0xf3b4d0 -> Node0xf3b620; + Node0xf3b620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%55:\l55: \l br label %29, !llvm.loop !6\l}"]; + Node0xf3b620 -> Node0xf3a180; + Node0xf3a720 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%56:\l56: \l %57 = getelementptr inbounds float, float* %21, i64 500\l br label %58\l}"]; + Node0xf3a720 -> Node0xf3c2c0; + Node0xf3c2c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%58:\l58: \l %59 = load float, float* %57, align 16\l br label %60\l}"]; + Node0xf3c2c0 -> Node0xf3c3f0; + Node0xf3c3f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%60:\l60: \l store float %59, float* %9, align 4\l br label %61\l}"]; + Node0xf3c3f0 -> Node0xf3c540; + Node0xf3c540 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%61:\l61: \l store i32 501, i32* %13, align 4\l br label %62\l}"]; + Node0xf3c540 -> Node0xf3c6c0; + Node0xf3c6c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%62:\l62: \l br label %63\l}"]; + Node0xf3c6c0 -> Node0xf3c780; + Node0xf3c780 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%63:\l63: \l %64 = load i32, i32* %13, align 4\l br label %65\l}"]; + Node0xf3c780 -> Node0xf3ccc0; + Node0xf3ccc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%65:\l65: \l %66 = icmp slt i32 %64, 1000\l br label %67\l}"]; + Node0xf3ccc0 -> Node0xf3ce10; + Node0xf3ce10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%67:\l67: \l br i1 %66, label %68, label %90\l|{T|F}}"]; + Node0xf3ce10:s0 -> Node0xf3ced0; + Node0xf3ce10:s1 -> Node0xf3cf20; + Node0xf3ced0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%68:\l68: \l %69 = load float, float* %9, align 4\l br label %70\l}"]; + Node0xf3ced0 -> Node0xf3d0d0; + Node0xf3d0d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%70:\l70: \l %71 = load i32, i32* %13, align 4\l br label %72\l}"]; + Node0xf3d0d0 -> Node0xf3d200; + Node0xf3d200 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%72:\l72: \l %73 = sitofp i32 %71 to float\l br label %74\l}"]; + Node0xf3d200 -> Node0xf3d330; + Node0xf3d330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%74:\l74: \l %75 = fmul float %69, %73\l br label %76\l}"]; + Node0xf3d330 -> Node0xf3d480; + Node0xf3d480 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%76:\l76: \l %77 = load i32, i32* %13, align 4\l br label %78\l}"]; + Node0xf3d480 -> Node0xf3d5b0; + Node0xf3d5b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%78:\l78: \l %79 = sext i32 %77 to i64\l br label %80\l}"]; + Node0xf3d5b0 -> Node0xf3d6e0; + Node0xf3d6e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%80:\l80: \l %81 = getelementptr inbounds float, float* %21, i64 %79\l br label %82\l}"]; + Node0xf3d6e0 -> Node0xf3d840; + Node0xf3d840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%82:\l82: \l store float %75, float* %81, align 4\l br label %83\l}"]; + Node0xf3d840 -> Node0xf3d990; + Node0xf3d990 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%83:\l83: \l br label %84\l}"]; + Node0xf3d990 -> Node0xf3da50; + Node0xf3da50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%84:\l84: \l %85 = load i32, i32* %13, align 4\l br label %86\l}"]; + Node0xf3da50 -> Node0xf3db80; + Node0xf3db80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%86:\l86: \l %87 = add nsw i32 %85, 1\l br label %88\l}"]; + Node0xf3db80 -> Node0xf3dcd0; + Node0xf3dcd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%88:\l88: \l store i32 %87, i32* %13, align 4\l br label %89\l}"]; + Node0xf3dcd0 -> Node0xf3de20; + Node0xf3de20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%89:\l89: \l br label %63, !llvm.loop !8\l}"]; + Node0xf3de20 -> Node0xf3c780; + Node0xf3cf20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%90:\l90: \l store i32 0, i32* %1, align 4\l br label %91\l}"]; + Node0xf3cf20 -> Node0xf3e0a0; + Node0xf3e0a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%91:\l91: \l %92 = load i8*, i8** %7, align 8\l br label %93\l}"]; + Node0xf3e0a0 -> Node0xf3e1d0; + Node0xf3e1d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%93:\l93: \l call void @llvm.stackrestore(i8* %92)\l br label %94\l}"]; + Node0xf3e1d0 -> Node0xf3e4f0; + Node0xf3e4f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%94:\l94: \l %95 = load i32, i32* %1, align 4\l br label %96\l}"]; + Node0xf3e4f0 -> Node0xf3e620; + Node0xf3e620 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%96:\l96: \l ret i32 %95\l}"]; + Node0xf3e620 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; } diff --git a/front/tests/test_transl_core/.mainfile3.dot b/front/tests/test_transl_core/.mainfile3.dot index 9efa2de..9086752 100644 --- a/front/tests/test_transl_core/.mainfile3.dot +++ b/front/tests/test_transl_core/.mainfile3.dot @@ -1,63 +1,84 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0xbeb8b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; - Node0xbeb8b0 -> Node0xbec010; - Node0xbec010 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; - Node0xbec010 -> Node0xbec170; - Node0xbec170 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l store i32 0, i32* %1, align 4\l br label %5\l}"]; - Node0xbec170 -> Node0xbec280; - Node0xbec280 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%5:\l5: \l br label %6\l}"]; - Node0xbec280 -> Node0xbec340; - Node0xbec340 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = call i32 (i8*, ...) @__isoc99_scanf(i8* noundef getelementptr inbounds\l... ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32* noundef %3)\l br label %8\l}"]; - Node0xbec340 -> Node0xbec7e0; - Node0xbec7e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = icmp eq i32 %7, 1\l br label %10\l}"]; - Node0xbec7e0 -> Node0xbec230; - Node0xbec230 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l br i1 %9, label %11, label %18\l|{T|F}}"]; - Node0xbec230:s0 -> Node0xbec950; - Node0xbec230:s1 -> Node0xbec9a0; - Node0xbec950 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%11:\l11: \l %12 = load i32, i32* %3, align 4\l br label %13\l}"]; - Node0xbec950 -> Node0xbecb50; - Node0xbecb50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%13:\l13: \l %14 = call i32 @factorial(i32 noundef %12)\l br label %15\l}"]; - Node0xbecb50 -> Node0xbee030 [style = dotted]; - Node0xbecb50 -> Node0xbecd90; - Node0xbecd90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%15:\l15: \l %16 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x\l... i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 noundef %14)\l br label %17\l}"]; - Node0xbecd90 -> Node0xbed110; - Node0xbed110 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%17:\l17: \l br label %6, !llvm.loop !6\l}"]; - Node0xbed110 -> Node0xbec340; - Node0xbec9a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%18:\l18: \l ret i32 0\l}"]; - subgraph cluster_factorial { - label = "CFG for 'factorial' function"; - graph[style=filled, bgcolor=white]; - - Node0xbee030 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%1:\l %2 = alloca i32, align 4\l br label %3\l}"]; - Node0xbee030 -> Node0xbee0f0; - Node0xbee0f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%3:\l3: \l store i32 %0, i32* %2, align 4\l br label %4\l}"]; - Node0xbee0f0 -> Node0xbee1b0; - Node0xbee1b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = load i32, i32* %2, align 4\l br label %6\l}"]; - Node0xbee1b0 -> Node0xbee330; - Node0xbee330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = icmp slt i32 %5, 2\l br label %8\l}"]; - Node0xbee330 -> Node0xbee480; - Node0xbee480 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l br i1 %7, label %9, label %10\l|{T|F}}"]; - Node0xbee480:s0 -> Node0xbee270; - Node0xbee480:s1 -> Node0xbee5d0; - Node0xbee270 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%9:\l9: \l br label %21\l}"]; - Node0xbee270 -> Node0xbee710; - Node0xbee5d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%10:\l10: \l %11 = load i32, i32* %2, align 4\l br label %12\l}"]; - Node0xbee5d0 -> Node0xbee840; - Node0xbee840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%12:\l12: \l %13 = load i32, i32* %2, align 4\l br label %14\l}"]; - Node0xbee840 -> Node0xbee970; - Node0xbee970 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%14:\l14: \l %15 = sub nsw i32 %13, 1\l br label %16\l}"]; - Node0xbee970 -> Node0xbeeac0; - Node0xbeeac0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%16:\l16: \l %17 = call i32 @factorial(i32 noundef %15)\l br label %18\l}"]; - Node0xbeeac0 -> Node0xbee030 [style = dotted]; - Node0xbeeac0 -> Node0xbeec70; - Node0xbeec70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%18:\l18: \l %19 = mul nsw i32 %11, %17\l br label %20\l}"]; - Node0xbeec70 -> Node0xbeed30; - Node0xbeed30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f59c7d70",label="{%20:\l20: \l br label %21\l}"]; - Node0xbeed30 -> Node0xbee710; - Node0xbee710 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l %22 = phi i32 [ 1, %9 ], [ %19, %20 ]\l br label %23\l}"]; - Node0xbee710 -> Node0xbeeeb0; - Node0xbeeeb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%23:\l23: \l ret i32 %22\l}"]; - } + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x1921110 + Node0x1921110 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x1921110 -> Node0x1921870; + Node0x1921870 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x1921870 -> Node0x19219d0; + Node0x19219d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%4:\l4: \l %5 = alloca i8*, align 8\l br label %6\l}"]; + Node0x19219d0 -> Node0x1921b50; + Node0x1921b50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%6:\l6: \l %7 = alloca i32, align 4\l br label %8\l}"]; + Node0x1921b50 -> Node0x1921c80; + Node0x1921c80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%8:\l8: \l store i32 0, i32* %1, align 4\l br label %9\l}"]; + Node0x1921c80 -> Node0x1921a90; + Node0x1921a90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%9:\l9: \l store i32 1000, i32* %3, align 4\l br label %10\l}"]; + Node0x1921a90 -> Node0x1921de0; + Node0x1921de0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%10:\l10: \l %11 = call i8* @llvm.stacksave()\l br label %12\l}"]; + Node0x1921de0 -> Node0x1922000; + Node0x1922000 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%12:\l12: \l store i8* %11, i8** %5, align 8\l br label %13\l}"]; + Node0x1922000 -> Node0x19220c0; + Node0x19220c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%13:\l13: \l %14 = alloca i32, i64 1000, align 16\l br label %15\l}"]; + Node0x19220c0 -> Node0x1922220; + Node0x1922220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%15:\l15: \l store i32 0, i32* %7, align 4\l br label %16\l}"]; + Node0x1922220 -> Node0x19222e0; + Node0x19222e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%16:\l16: \l br label %17\l}"]; + Node0x19222e0 -> Node0x19223a0; + Node0x19223a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l %18 = load i32, i32* %7, align 4\l br label %19\l}"]; + Node0x19223a0 -> Node0x19224d0; + Node0x19224d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%19:\l19: \l %20 = icmp slt i32 %18, 1000\l br label %21\l}"]; + Node0x19224d0 -> Node0x1922590; + Node0x1922590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l br i1 %20, label %22, label %52\l|{T|F}}"]; + Node0x1922590:s0 -> Node0x1922650; + Node0x1922590:s1 -> Node0x19226a0; + Node0x1922650 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%22:\l22: \l %23 = load i32, i32* %7, align 4\l br label %24\l}"]; + Node0x1922650 -> Node0x1922850; + Node0x1922850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%24:\l24: \l %25 = sext i32 %23 to i64\l br label %26\l}"]; + Node0x1922850 -> Node0x1922980; + Node0x1922980 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%26:\l26: \l %27 = getelementptr inbounds i32, i32* %14, i64 %25\l br label %28\l}"]; + Node0x1922980 -> Node0x1922ae0; + Node0x1922ae0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%28:\l28: \l %29 = load i32, i32* %27, align 4\l br label %30\l}"]; + Node0x1922ae0 -> Node0x1922c10; + Node0x1922c10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%30:\l30: \l %31 = add nsw i32 %29, 17\l br label %32\l}"]; + Node0x1922c10 -> Node0x1922d90; + Node0x1922d90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%32:\l32: \l store i32 %31, i32* %27, align 4\l br label %33\l}"]; + Node0x1922d90 -> Node0x19230f0; + Node0x19230f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = load i32, i32* %7, align 4\l br label %35\l}"]; + Node0x19230f0 -> Node0x1923220; + Node0x1923220 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = sext i32 %34 to i64\l br label %37\l}"]; + Node0x1923220 -> Node0x1923350; + Node0x1923350 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = getelementptr inbounds i32, i32* %14, i64 %36\l br label %39\l}"]; + Node0x1923350 -> Node0x19234b0; + Node0x19234b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l %40 = load i32, i32* %38, align 4\l br label %41\l}"]; + Node0x19234b0 -> Node0x19235e0; + Node0x19235e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%41:\l41: \l %42 = icmp sgt i32 %40, 0\l br label %43\l}"]; + Node0x19235e0 -> Node0x1923730; + Node0x1923730 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l br i1 %42, label %44, label %45\l|{T|F}}"]; + Node0x1923730:s0 -> Node0x19237f0; + Node0x1923730:s1 -> Node0x1923840; + Node0x19237f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%44:\l44: \l br label %52\l}"]; + Node0x19237f0 -> Node0x19226a0; + Node0x1923840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%45:\l45: \l br label %46\l}"]; + Node0x1923840 -> Node0x19239f0; + Node0x19239f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = load i32, i32* %7, align 4\l br label %48\l}"]; + Node0x19239f0 -> Node0x1923b20; + Node0x1923b20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l %49 = add nsw i32 %47, 1\l br label %50\l}"]; + Node0x1923b20 -> Node0x1923c70; + Node0x1923c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l store i32 %49, i32* %7, align 4\l br label %51\l}"]; + Node0x1923c70 -> Node0x1923dc0; + Node0x1923dc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%51:\l51: \l br label %17, !llvm.loop !6\l}"]; + Node0x1923dc0 -> Node0x19223a0; + Node0x19226a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%52:\l52: \l store i32 0, i32* %1, align 4\l br label %53\l}"]; + Node0x19226a0 -> Node0x1924a10; + Node0x1924a10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%53:\l53: \l %54 = load i8*, i8** %5, align 8\l br label %55\l}"]; + Node0x1924a10 -> Node0x1924b40; + Node0x1924b40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%55:\l55: \l call void @llvm.stackrestore(i8* %54)\l br label %56\l}"]; + Node0x1924b40 -> Node0x1924e40; + Node0x1924e40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%56:\l56: \l %57 = load i32, i32* %1, align 4\l br label %58\l}"]; + Node0x1924e40 -> Node0x1924f70; + Node0x1924f70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%58:\l58: \l ret i32 %57\l}"]; + Node0x1924f70 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; } diff --git a/front/tests/test_transl_core/.mainfile4.dot b/front/tests/test_transl_core/.mainfile4.dot index 24f1fb3..f0afb6b 100644 --- a/front/tests/test_transl_core/.mainfile4.dot +++ b/front/tests/test_transl_core/.mainfile4.dot @@ -1,66 +1,176 @@ digraph "CFG for 'main' function" { label="CFG for 'main' function"; - Node0x1cbfea0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; - Node0x1cbfea0 -> Node0x1cc0600; - Node0x1cc0600 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%2:\l2: \l %3 = alloca i32**, align 8\l br label %4\l}"]; - Node0x1cc0600 -> Node0x1cc0760; - Node0x1cc0760 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%4:\l4: \l %5 = alloca i32*, align 8\l br label %6\l}"]; - Node0x1cc0760 -> Node0x1cc08e0; - Node0x1cc08e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%6:\l6: \l %7 = alloca i32*, align 8\l br label %8\l}"]; - Node0x1cc08e0 -> Node0x1cc0a10; - Node0x1cc0a10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%8:\l8: \l %9 = alloca i32*, align 8\l br label %10\l}"]; - Node0x1cc0a10 -> Node0x1cc0820; - Node0x1cc0820 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; - Node0x1cc0820 -> Node0x1cc0c20; - Node0x1cc0c20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; - Node0x1cc0c20 -> Node0x1cc0d50; - Node0x1cc0d50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%14:\l14: \l store i32 0, i32* %1, align 4\l br label %15\l}"]; - Node0x1cc0d50 -> Node0x1cc0e10; - Node0x1cc0e10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%15:\l15: \l store i32** %7, i32*** %3, align 8\l br label %16\l}"]; - Node0x1cc0e10 -> Node0x1cc0ed0; - Node0x1cc0ed0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%16:\l16: \l %17 = load i32**, i32*** %3, align 8\l br label %18\l}"]; - Node0x1cc0ed0 -> Node0x1cc1000; - Node0x1cc1000 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%18:\l18: \l %19 = icmp ne i32** %17, null\l br label %20\l}"]; - Node0x1cc1000 -> Node0x1cc14d0; - Node0x1cc14d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l br i1 %19, label %21, label %29\l|{T|F}}"]; - Node0x1cc14d0:s0 -> Node0x1cc1590; - Node0x1cc14d0:s1 -> Node0x1cc15e0; - Node0x1cc1590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%21:\l21: \l %22 = load i32, i32* %11, align 4\l br label %23\l}"]; - Node0x1cc1590 -> Node0x1cc1790; - Node0x1cc1790 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%23:\l23: \l %24 = icmp ne i32 %22, 0\l br label %25\l}"]; - Node0x1cc1790 -> Node0x1cc1850; - Node0x1cc1850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%25:\l25: \l br i1 %24, label %26, label %28\l|{T|F}}"]; - Node0x1cc1850:s0 -> Node0x1cc1910; - Node0x1cc1850:s1 -> Node0x1cc1960; - Node0x1cc1910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%26:\l26: \l store i32* %11, i32** %5, align 8\l br label %27\l}"]; - Node0x1cc1910 -> Node0x1cc1aa0; - Node0x1cc1aa0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%27:\l27: \l br label %28\l}"]; - Node0x1cc1aa0 -> Node0x1cc1960; - Node0x1cc1960 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%28:\l28: \l br label %32\l}"]; - Node0x1cc1960 -> Node0x1cc1bd0; - Node0x1cc15e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%29:\l29: \l store i32** %9, i32*** %3, align 8\l br label %30\l}"]; - Node0x1cc15e0 -> Node0x1cc1c90; - Node0x1cc1c90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%30:\l30: \l store i32* %13, i32** %5, align 8\l br label %31\l}"]; - Node0x1cc1c90 -> Node0x1cc1de0; - Node0x1cc1de0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b39670",label="{%31:\l31: \l br label %32\l}"]; - Node0x1cc1de0 -> Node0x1cc1bd0; - Node0x1cc1bd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%32:\l32: \l %33 = load i32, i32* %13, align 4\l br label %34\l}"]; - Node0x1cc1bd0 -> Node0x1cc2190; - Node0x1cc2190 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%34:\l34: \l %35 = icmp ne i32 %33, 0\l br label %36\l}"]; - Node0x1cc2190 -> Node0x1cc22e0; - Node0x1cc22e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%36:\l36: \l br i1 %35, label %37, label %43\l|{T|F}}"]; - Node0x1cc22e0:s0 -> Node0x1cc23a0; - Node0x1cc22e0:s1 -> Node0x1cc23f0; - Node0x1cc23a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%37:\l37: \l %38 = load i32*, i32** %5, align 8\l br label %39\l}"]; - Node0x1cc23a0 -> Node0x1cc2560; - Node0x1cc2560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%39:\l39: \l %40 = load i32**, i32*** %3, align 8\l br label %41\l}"]; - Node0x1cc2560 -> Node0x1cc2690; - Node0x1cc2690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%41:\l41: \l store i32* %38, i32** %40, align 8\l br label %42\l}"]; - Node0x1cc2690 -> Node0x1cc27e0; - Node0x1cc27e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#e8765c70",label="{%42:\l42: \l br label %43\l}"]; - Node0x1cc27e0 -> Node0x1cc23f0; - Node0x1cc23f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%43:\l43: \l %44 = load i32, i32* %1, align 4\l br label %45\l}"]; - Node0x1cc23f0 -> Node0x1cc2980; - Node0x1cc2980 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%45:\l45: \l ret i32 %44\l}"]; + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x1651b90 + Node0x1651b90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x1651b90 -> Node0x16522f0; + Node0x16522f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x16522f0 -> Node0x1652450; + Node0x1652450 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i8*, align 8\l br label %6\l}"]; + Node0x1652450 -> Node0x16525d0; + Node0x16525d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i32, align 4\l br label %8\l}"]; + Node0x16525d0 -> Node0x1652700; + Node0x1652700 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; + Node0x1652700 -> Node0x1652510; + Node0x1652510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0x1652510 -> Node0x1652910; + Node0x1652910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32 0, i32* %1, align 4\l br label %13\l}"]; + Node0x1652910 -> Node0x16529d0; + Node0x16529d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l store i32 1000, i32* %3, align 4\l br label %14\l}"]; + Node0x16529d0 -> Node0x1652ac0; + Node0x1652ac0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l %15 = call i8* @llvm.stacksave()\l br label %16\l}"]; + Node0x1652ac0 -> Node0x1652ce0; + Node0x1652ce0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l store i8* %15, i8** %5, align 8\l br label %17\l}"]; + Node0x1652ce0 -> Node0x1652da0; + Node0x1652da0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%17:\l17: \l %18 = alloca i32, i64 1000, align 16\l br label %19\l}"]; + Node0x1652da0 -> Node0x1652f00; + Node0x1652f00 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l %20 = alloca i32, i64 1000, align 16\l br label %21\l}"]; + Node0x1652f00 -> Node0x1653030; + Node0x1653030 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%21:\l21: \l store i32 1000, i32* %7, align 4\l br label %22\l}"]; + Node0x1653030 -> Node0x16530f0; + Node0x16530f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%22:\l22: \l store i32 0, i32* %9, align 4\l br label %23\l}"]; + Node0x16530f0 -> Node0x16531b0; + Node0x16531b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%23:\l23: \l br label %24\l}"]; + Node0x16531b0 -> Node0x1653270; + Node0x1653270 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = load i32, i32* %9, align 4\l br label %26\l}"]; + Node0x1653270 -> Node0x16533a0; + Node0x16533a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l %27 = icmp slt i32 %25, 1000\l br label %28\l}"]; + Node0x16533a0 -> Node0x16534f0; + Node0x16534f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%28:\l28: \l br i1 %27, label %29, label %99\l|{T|F}}"]; + Node0x16534f0:s0 -> Node0x16535b0; + Node0x16534f0:s1 -> Node0x1653600; + Node0x16535b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i32, i32* %9, align 4\l br label %31\l}"]; + Node0x16535b0 -> Node0x16537b0; + Node0x16537b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = sext i32 %30 to i64\l br label %33\l}"]; + Node0x16537b0 -> Node0x1653af0; + Node0x1653af0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = getelementptr inbounds i32, i32* %18, i64 %32\l br label %35\l}"]; + Node0x1653af0 -> Node0x1653c50; + Node0x1653c50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = load i32, i32* %34, align 4\l br label %37\l}"]; + Node0x1653c50 -> Node0x1653d80; + Node0x1653d80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = add nsw i32 %36, 17\l br label %39\l}"]; + Node0x1653d80 -> Node0x1653f00; + Node0x1653f00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l store i32 %38, i32* %34, align 4\l br label %40\l}"]; + Node0x1653f00 -> Node0x1654050; + Node0x1654050 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = load i32, i32* %9, align 4\l br label %42\l}"]; + Node0x1654050 -> Node0x1654180; + Node0x1654180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l %43 = sext i32 %41 to i64\l br label %44\l}"]; + Node0x1654180 -> Node0x16542b0; + Node0x16542b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = getelementptr inbounds i32, i32* %18, i64 %43\l br label %46\l}"]; + Node0x16542b0 -> Node0x1654410; + Node0x1654410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = load i32, i32* %45, align 4\l br label %48\l}"]; + Node0x1654410 -> Node0x1654540; + Node0x1654540 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l %49 = icmp sgt i32 %47, 0\l br label %50\l}"]; + Node0x1654540 -> Node0x1654690; + Node0x1654690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l br i1 %49, label %51, label %61\l|{T|F}}"]; + Node0x1654690:s0 -> Node0x1654750; + Node0x1654690:s1 -> Node0x16547a0; + Node0x1654750 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%51:\l51: \l %52 = load i32, i32* %9, align 4\l br label %53\l}"]; + Node0x1654750 -> Node0x1654950; + Node0x1654950 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%53:\l53: \l %54 = load i32, i32* %9, align 4\l br label %55\l}"]; + Node0x1654950 -> Node0x1654a80; + Node0x1654a80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%55:\l55: \l %56 = sext i32 %54 to i64\l br label %57\l}"]; + Node0x1654a80 -> Node0x1654bb0; + Node0x1654bb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%57:\l57: \l %58 = getelementptr inbounds i32, i32* %20, i64 %56\l br label %59\l}"]; + Node0x1654bb0 -> Node0x1654d10; + Node0x1654d10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%59:\l59: \l store i32 %52, i32* %58, align 4\l br label %60\l}"]; + Node0x1654d10 -> Node0x1654e60; + Node0x1654e60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%60:\l60: \l br label %69\l}"]; + Node0x1654e60 -> Node0x1654f20; + Node0x16547a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%61:\l61: \l %62 = load i32, i32* %9, align 4\l br label %63\l}"]; + Node0x16547a0 -> Node0x1655050; + Node0x1655050 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%63:\l63: \l %64 = sext i32 %62 to i64\l br label %65\l}"]; + Node0x1655050 -> Node0x1655590; + Node0x1655590 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%65:\l65: \l %66 = getelementptr inbounds i32, i32* %20, i64 %64\l br label %67\l}"]; + Node0x1655590 -> Node0x16556f0; + Node0x16556f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%67:\l67: \l store i32 1000, i32* %66, align 4\l br label %68\l}"]; + Node0x16556f0 -> Node0x1655840; + Node0x1655840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%68:\l68: \l br label %69\l}"]; + Node0x1655840 -> Node0x1654f20; + Node0x1654f20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%69:\l69: \l %70 = load i32, i32* %9, align 4\l br label %71\l}"]; + Node0x1654f20 -> Node0x16559e0; + Node0x16559e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%71:\l71: \l %72 = sext i32 %70 to i64\l br label %73\l}"]; + Node0x16559e0 -> Node0x1655b10; + Node0x1655b10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%73:\l73: \l %74 = getelementptr inbounds i32, i32* %20, i64 %72\l br label %75\l}"]; + Node0x1655b10 -> Node0x1655c70; + Node0x1655c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%75:\l75: \l %76 = load i32, i32* %74, align 4\l br label %77\l}"]; + Node0x1655c70 -> Node0x1655da0; + Node0x1655da0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%77:\l77: \l %78 = load i32, i32* %7, align 4\l br label %79\l}"]; + Node0x1655da0 -> Node0x1655ed0; + Node0x1655ed0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%79:\l79: \l %80 = icmp slt i32 %76, %78\l br label %81\l}"]; + Node0x1655ed0 -> Node0x1656020; + Node0x1656020 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%81:\l81: \l br i1 %80, label %82, label %92\l|{T|F}}"]; + Node0x1656020:s0 -> Node0x16560e0; + Node0x1656020:s1 -> Node0x1656130; + Node0x16560e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%82:\l82: \l %83 = load i32, i32* %9, align 4\l br label %84\l}"]; + Node0x16560e0 -> Node0x16562a0; + Node0x16562a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%84:\l84: \l %85 = sext i32 %83 to i64\l br label %86\l}"]; + Node0x16562a0 -> Node0x16563d0; + Node0x16563d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%86:\l86: \l %87 = getelementptr inbounds i32, i32* %20, i64 %85\l br label %88\l}"]; + Node0x16563d0 -> Node0x1656530; + Node0x1656530 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%88:\l88: \l %89 = load i32, i32* %87, align 4\l br label %90\l}"]; + Node0x1656530 -> Node0x1656660; + Node0x1656660 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%90:\l90: \l store i32 %89, i32* %7, align 4\l br label %91\l}"]; + Node0x1656660 -> Node0x16567b0; + Node0x16567b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%91:\l91: \l br label %92\l}"]; + Node0x16567b0 -> Node0x1656130; + Node0x1656130 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%92:\l92: \l br label %93\l}"]; + Node0x1656130 -> Node0x16568e0; + Node0x16568e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%93:\l93: \l %94 = load i32, i32* %9, align 4\l br label %95\l}"]; + Node0x16568e0 -> Node0x1656a10; + Node0x1656a10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%95:\l95: \l %96 = add nsw i32 %94, 1\l br label %97\l}"]; + Node0x1656a10 -> Node0x1656b60; + Node0x1656b60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%97:\l97: \l store i32 %96, i32* %9, align 4\l br label %98\l}"]; + Node0x1656b60 -> Node0x1656cb0; + Node0x1656cb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%98:\l98: \l br label %24, !llvm.loop !6\l}"]; + Node0x1656cb0 -> Node0x1653270; + Node0x1653600 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%99:\l99: \l %100 = load i32, i32* %7, align 4\l br label %101\l}"]; + Node0x1653600 -> Node0x16578e0; + Node0x16578e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%101:\l101: \l %102 = add nsw i32 %100, 1\l br label %103\l}"]; + Node0x16578e0 -> Node0x1657a30; + Node0x1657a30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%103:\l103: \l store i32 %102, i32* %11, align 4\l br label %104\l}"]; + Node0x1657a30 -> Node0x1657b80; + Node0x1657b80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%104:\l104: \l br label %105\l}"]; + Node0x1657b80 -> Node0x1657c40; + Node0x1657c40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%105:\l105: \l %106 = load i32, i32* %11, align 4\l br label %107\l}"]; + Node0x1657c40 -> Node0x1657d70; + Node0x1657d70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%107:\l107: \l %108 = icmp slt i32 %106, 1000\l br label %109\l}"]; + Node0x1657d70 -> Node0x1657ec0; + Node0x1657ec0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%109:\l109: \l br i1 %108, label %110, label %128\l|{T|F}}"]; + Node0x1657ec0:s0 -> Node0x1657f80; + Node0x1657ec0:s1 -> Node0x1657fd0; + Node0x1657f80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%110:\l110: \l %111 = load i32, i32* %11, align 4\l br label %112\l}"]; + Node0x1657f80 -> Node0x1658180; + Node0x1658180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%112:\l112: \l %113 = sext i32 %111 to i64\l br label %114\l}"]; + Node0x1658180 -> Node0x16582b0; + Node0x16582b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%114:\l114: \l %115 = getelementptr inbounds i32, i32* %18, i64 %113\l br label %116\l}"]; + Node0x16582b0 -> Node0x1658410; + Node0x1658410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%116:\l116: \l %117 = load i32, i32* %115, align 4\l br label %118\l}"]; + Node0x1658410 -> Node0x1658540; + Node0x1658540 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%118:\l118: \l %119 = sub nsw i32 %117, 17\l br label %120\l}"]; + Node0x1658540 -> Node0x1658690; + Node0x1658690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%120:\l120: \l store i32 %119, i32* %115, align 4\l br label %121\l}"]; + Node0x1658690 -> Node0x16587e0; + Node0x16587e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%121:\l121: \l br label %122\l}"]; + Node0x16587e0 -> Node0x16588a0; + Node0x16588a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%122:\l122: \l %123 = load i32, i32* %11, align 4\l br label %124\l}"]; + Node0x16588a0 -> Node0x16589d0; + Node0x16589d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%124:\l124: \l %125 = add nsw i32 %123, 1\l br label %126\l}"]; + Node0x16589d0 -> Node0x1658b20; + Node0x1658b20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%126:\l126: \l store i32 %125, i32* %11, align 4\l br label %127\l}"]; + Node0x1658b20 -> Node0x1658c70; + Node0x1658c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%127:\l127: \l br label %105, !llvm.loop !8\l}"]; + Node0x1658c70 -> Node0x1657c40; + Node0x1657fd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%128:\l128: \l store i32 0, i32* %1, align 4\l br label %129\l}"]; + Node0x1657fd0 -> Node0x1659700; + Node0x1659700 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%129:\l129: \l %130 = load i8*, i8** %5, align 8\l br label %131\l}"]; + Node0x1659700 -> Node0x1659830; + Node0x1659830 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%131:\l131: \l call void @llvm.stackrestore(i8* %130)\l br label %132\l}"]; + Node0x1659830 -> Node0x1659b50; + Node0x1659b50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%132:\l132: \l %133 = load i32, i32* %1, align 4\l br label %134\l}"]; + Node0x1659b50 -> Node0x1659c80; + Node0x1659c80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%134:\l134: \l ret i32 %133\l}"]; + Node0x1659c80 -> Nodeendmain; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain; } diff --git a/front/tests/test_transl_core/.markmainfile1.dot b/front/tests/test_transl_core/.markmainfile1.dot new file mode 100644 index 0000000..feb0562 --- /dev/null +++ b/front/tests/test_transl_core/.markmainfile1.dot @@ -0,0 +1,77 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x2366040 [label="z"]; + Node0x2366040 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x2366040 -> Node0x23667a0 [label="z"]; + Node0x23667a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x23667a0 -> Node0x2366900 [label="z"]; + Node0x2366900 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0x2366900 -> Node0x2366a80 [label="z"]; + Node0x2366a80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i8*, align 8\l br label %8\l}"]; + Node0x2366a80 -> Node0x2366bb0 [label="z"]; + Node0x2366bb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; + Node0x2366bb0 -> Node0x23669c0 [label="z"]; + Node0x23669c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l store i32 0, i32* %1, align 4\l br label %11\l}"]; + Node0x23669c0 -> Node0x2366d50 [label="z"]; + Node0x2366d50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%11:\l11: \l store i32 1000, i32* %3, align 4\l br label %12\l}"]; + Node0x2366d50 -> Node0x2366e40 [label="z"]; + Node0x2366e40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32 500, i32* %5, align 4\l br label %13\l}"]; + Node0x2366e40 -> Node0x2366f30 [label="a"]; + Node0x2366f30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l %14 = call i8* @llvm.stacksave()\l br label %15\l}"]; + Node0x2366f30 -> Node0x2367150 [label="e"]; + Node0x2367150 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l store i8* %14, i8** %7, align 8\l br label %16\l}"]; + Node0x2367150 -> Node0x2367210 [label="z"]; + Node0x2367210 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l %17 = alloca i32, i64 1000, align 16\l br label %18\l}"]; + Node0x2367210 -> Node0x2367370 [label="z"]; + Node0x2367370 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%18:\l18: \l store i32 0, i32* %9, align 4\l br label %19\l}"]; + Node0x2367370 -> Node0x2367430 [label="z"]; + Node0x2367430 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l br label %20\l}"]; + Node0x2367430 -> Node0x23674f0 [label="z"]; + Node0x23674f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = load i32, i32* %9, align 4\l br label %22\l}"]; + Node0x23674f0 -> Node0x2367620 [label="p"]; + Node0x2367620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l %23 = icmp slt i32 %21, 1000\l br label %24\l}"]; + Node0x2367620 -> Node0x2367770 [label="c"]; + Node0x2367770 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l br i1 %23, label %25, label %47\l|{T|F}}"]; + Node0x2367770 -> Node0x2367830 [label="k"]; + Node0x2367770 -> Node0x2367880 [label="k"]; + Node0x2367830 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = getelementptr inbounds i32, i32* %17, i64 500\l br label %27\l}"]; + Node0x2367830 -> Node0x2367a90 [label="t"]; + Node0x2367a90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = load i32, i32* %26, align 16\l br label %29\l}"]; + Node0x2367a90 -> Node0x2367bc0 [label="z"]; + Node0x2367bc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i32, i32* %9, align 4\l br label %31\l}"]; + Node0x2367bc0 -> Node0x2367cf0 [label="z"]; + Node0x2367cf0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = mul nsw i32 %28, %30\l br label %33\l}"]; + Node0x2367cf0 -> Node0x2368050 [label="z"]; + Node0x2368050 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = load i32, i32* %9, align 4\l br label %35\l}"]; + Node0x2368050 -> Node0x2368180 [label="r"]; + Node0x2368180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = sext i32 %34 to i64\l br label %37\l}"]; + Node0x2368180 -> Node0x23682b0 [label="u"]; + Node0x23682b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = getelementptr inbounds i32, i32* %17, i64 %36\l br label %39\l}"]; + Node0x23682b0 -> Node0x2368410 [label="f"]; + Node0x2368410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l store i32 %32, i32* %38, align 4\l br label %40\l}"]; + Node0x2368410 -> Node0x2368560 [label="z"]; + Node0x2368560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l br label %41\l}"]; + Node0x2368560 -> Node0x2368620 [label="z"]; + Node0x2368620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%41:\l41: \l %42 = load i32, i32* %9, align 4\l br label %43\l}"]; + Node0x2368620 -> Node0x2368750 [label="z"]; + Node0x2368750 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l %44 = add nsw i32 %42, 1\l br label %45\l}"]; + Node0x2368750 -> Node0x23688a0 [label="z"]; + Node0x23688a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%45:\l45: \l store i32 %44, i32* %9, align 4\l br label %46\l}"]; + Node0x23688a0 -> Node0x23689f0 [label="z"]; + Node0x23689f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l br label %20, !llvm.loop !6\l}"]; + Node0x23689f0 -> Node0x23674f0 [label="o"]; + Node0x2367880 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%47:\l47: \l store i32 0, i32* %1, align 4\l br label %48\l}"]; + Node0x2367880 -> Node0x2369680 [label="z"]; + Node0x2369680 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%48:\l48: \l %49 = load i8*, i8** %7, align 8\l br label %50\l}"]; + Node0x2369680 -> Node0x23697b0 [label="a"]; + Node0x23697b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%50:\l50: \l call void @llvm.stackrestore(i8* %49)\l br label %51\l}"]; + Node0x23697b0 -> Node0x2369ab0 [label="e"]; + Node0x2369ab0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%51:\l51: \l %52 = load i32, i32* %1, align 4\l br label %53\l}"]; + Node0x2369ab0 -> Node0x2369be0 [label="z"]; + Node0x2369be0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%53:\l53: \l ret i32 %52\l}"]; + Node0x2369be0 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/test_transl_core/.markmainfile2.dot b/front/tests/test_transl_core/.markmainfile2.dot new file mode 100644 index 0000000..261953e --- /dev/null +++ b/front/tests/test_transl_core/.markmainfile2.dot @@ -0,0 +1,130 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0xf38660 [label="z"]; + Node0xf38660 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0xf38660 -> Node0xf38dc0 [label="z"]; + Node0xf38dc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0xf38dc0 -> Node0xf38f20 [label="z"]; + Node0xf38f20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0xf38f20 -> Node0xf390a0 [label="z"]; + Node0xf390a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i8*, align 8\l br label %8\l}"]; + Node0xf390a0 -> Node0xf391d0 [label="z"]; + Node0xf391d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca float, align 4\l br label %10\l}"]; + Node0xf391d0 -> Node0xf38fe0 [label="z"]; + Node0xf38fe0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0xf38fe0 -> Node0xf393e0 [label="z"]; + Node0xf393e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; + Node0xf393e0 -> Node0xf39510 [label="z"]; + Node0xf39510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l store i32 0, i32* %1, align 4\l br label %15\l}"]; + Node0xf39510 -> Node0xf395d0 [label="z"]; + Node0xf395d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l store i32 1000, i32* %3, align 4\l br label %16\l}"]; + Node0xf395d0 -> Node0xf396c0 [label="z"]; + Node0xf396c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l store i32 500, i32* %5, align 4\l br label %17\l}"]; + Node0xf396c0 -> Node0xf397b0 [label="a"]; + Node0xf397b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%17:\l17: \l %18 = call i8* @llvm.stacksave()\l br label %19\l}"]; + Node0xf397b0 -> Node0xf399d0 [label="e"]; + Node0xf399d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l store i8* %18, i8** %7, align 8\l br label %20\l}"]; + Node0xf399d0 -> Node0xf39a90 [label="z"]; + Node0xf39a90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%20:\l20: \l %21 = alloca float, i64 1000, align 16\l br label %22\l}"]; + Node0xf39a90 -> Node0xf39bf0 [label="z"]; + Node0xf39bf0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%22:\l22: \l %23 = getelementptr inbounds float, float* %21, i64 500\l br label %24\l}"]; + Node0xf39bf0 -> Node0xf39d80 [label="t"]; + Node0xf39d80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%24:\l24: \l %25 = load float, float* %23, align 16\l br label %26\l}"]; + Node0xf39d80 -> Node0xf39eb0 [label="z"]; + Node0xf39eb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%26:\l26: \l store float %25, float* %9, align 4\l br label %27\l}"]; + Node0xf39eb0 -> Node0xf39f70 [label="z"]; + Node0xf39f70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%27:\l27: \l store i32 0, i32* %11, align 4\l br label %28\l}"]; + Node0xf39f70 -> Node0xf3a0c0 [label="z"]; + Node0xf3a0c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%28:\l28: \l br label %29\l}"]; + Node0xf3a0c0 -> Node0xf3a180 [label="z"]; + Node0xf3a180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%29:\l29: \l %30 = load i32, i32* %11, align 4\l br label %31\l}"]; + Node0xf3a180 -> Node0xf3a2b0 [label="p"]; + Node0xf3a2b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%31:\l31: \l %32 = icmp sle i32 %30, 500\l br label %33\l}"]; + Node0xf3a2b0 -> Node0xf3a610 [label="c"]; + Node0xf3a610 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%33:\l33: \l br i1 %32, label %34, label %56\l|{T|F}}"]; + Node0xf3a610 -> Node0xf3a6d0 [label="k"]; + Node0xf3a610 -> Node0xf3a720 [label="k"]; + Node0xf3a6d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%34:\l34: \l %35 = load float, float* %9, align 4\l br label %36\l}"]; + Node0xf3a6d0 -> Node0xf3a8d0 [label="z"]; + Node0xf3a8d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%36:\l36: \l %37 = load i32, i32* %11, align 4\l br label %38\l}"]; + Node0xf3a8d0 -> Node0xf3aa00 [label="z"]; + Node0xf3aa00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%38:\l38: \l %39 = sitofp i32 %37 to float\l br label %40\l}"]; + Node0xf3aa00 -> Node0xf3ab30 [label="z"]; + Node0xf3ab30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = fmul float %35, %39\l br label %42\l}"]; + Node0xf3ab30 -> Node0xf3ac80 [label="z"]; + Node0xf3ac80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l %43 = load i32, i32* %11, align 4\l br label %44\l}"]; + Node0xf3ac80 -> Node0xf3adb0 [label="r"]; + Node0xf3adb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = sext i32 %43 to i64\l br label %46\l}"]; + Node0xf3adb0 -> Node0xf3aee0 [label="u"]; + Node0xf3aee0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = getelementptr inbounds float, float* %21, i64 %45\l br label %48\l}"]; + Node0xf3aee0 -> Node0xf3b040 [label="f"]; + Node0xf3b040 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l store float %41, float* %47, align 4\l br label %49\l}"]; + Node0xf3b040 -> Node0xf3b190 [label="z"]; + Node0xf3b190 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%49:\l49: \l br label %50\l}"]; + Node0xf3b190 -> Node0xf3b250 [label="z"]; + Node0xf3b250 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l %51 = load i32, i32* %11, align 4\l br label %52\l}"]; + Node0xf3b250 -> Node0xf3b380 [label="z"]; + Node0xf3b380 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%52:\l52: \l %53 = add nsw i32 %51, 1\l br label %54\l}"]; + Node0xf3b380 -> Node0xf3b4d0 [label="z"]; + Node0xf3b4d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%54:\l54: \l store i32 %53, i32* %11, align 4\l br label %55\l}"]; + Node0xf3b4d0 -> Node0xf3b620 [label="z"]; + Node0xf3b620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%55:\l55: \l br label %29, !llvm.loop !6\l}"]; + Node0xf3b620 -> Node0xf3a180 [label="o"]; + Node0xf3a720 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%56:\l56: \l %57 = getelementptr inbounds float, float* %21, i64 500\l br label %58\l}"]; + Node0xf3a720 -> Node0xf3c2c0 [label="t"]; + Node0xf3c2c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%58:\l58: \l %59 = load float, float* %57, align 16\l br label %60\l}"]; + Node0xf3c2c0 -> Node0xf3c3f0 [label="z"]; + Node0xf3c3f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%60:\l60: \l store float %59, float* %9, align 4\l br label %61\l}"]; + Node0xf3c3f0 -> Node0xf3c540 [label="z"]; + Node0xf3c540 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%61:\l61: \l store i32 501, i32* %13, align 4\l br label %62\l}"]; + Node0xf3c540 -> Node0xf3c6c0 [label="z"]; + Node0xf3c6c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%62:\l62: \l br label %63\l}"]; + Node0xf3c6c0 -> Node0xf3c780 [label="z"]; + Node0xf3c780 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%63:\l63: \l %64 = load i32, i32* %13, align 4\l br label %65\l}"]; + Node0xf3c780 -> Node0xf3ccc0 [label="p"]; + Node0xf3ccc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%65:\l65: \l %66 = icmp slt i32 %64, 1000\l br label %67\l}"]; + Node0xf3ccc0 -> Node0xf3ce10 [label="c"]; + Node0xf3ce10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%67:\l67: \l br i1 %66, label %68, label %90\l|{T|F}}"]; + Node0xf3ce10 -> Node0xf3ced0 [label="k"]; + Node0xf3ce10 -> Node0xf3cf20 [label="k"]; + Node0xf3ced0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%68:\l68: \l %69 = load float, float* %9, align 4\l br label %70\l}"]; + Node0xf3ced0 -> Node0xf3d0d0 [label="z"]; + Node0xf3d0d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%70:\l70: \l %71 = load i32, i32* %13, align 4\l br label %72\l}"]; + Node0xf3d0d0 -> Node0xf3d200 [label="z"]; + Node0xf3d200 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%72:\l72: \l %73 = sitofp i32 %71 to float\l br label %74\l}"]; + Node0xf3d200 -> Node0xf3d330 [label="z"]; + Node0xf3d330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%74:\l74: \l %75 = fmul float %69, %73\l br label %76\l}"]; + Node0xf3d330 -> Node0xf3d480 [label="z"]; + Node0xf3d480 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%76:\l76: \l %77 = load i32, i32* %13, align 4\l br label %78\l}"]; + Node0xf3d480 -> Node0xf3d5b0 [label="r"]; + Node0xf3d5b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%78:\l78: \l %79 = sext i32 %77 to i64\l br label %80\l}"]; + Node0xf3d5b0 -> Node0xf3d6e0 [label="u"]; + Node0xf3d6e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%80:\l80: \l %81 = getelementptr inbounds float, float* %21, i64 %79\l br label %82\l}"]; + Node0xf3d6e0 -> Node0xf3d840 [label="f"]; + Node0xf3d840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%82:\l82: \l store float %75, float* %81, align 4\l br label %83\l}"]; + Node0xf3d840 -> Node0xf3d990 [label="z"]; + Node0xf3d990 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%83:\l83: \l br label %84\l}"]; + Node0xf3d990 -> Node0xf3da50 [label="z"]; + Node0xf3da50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%84:\l84: \l %85 = load i32, i32* %13, align 4\l br label %86\l}"]; + Node0xf3da50 -> Node0xf3db80 [label="z"]; + Node0xf3db80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%86:\l86: \l %87 = add nsw i32 %85, 1\l br label %88\l}"]; + Node0xf3db80 -> Node0xf3dcd0 [label="z"]; + Node0xf3dcd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%88:\l88: \l store i32 %87, i32* %13, align 4\l br label %89\l}"]; + Node0xf3dcd0 -> Node0xf3de20 [label="z"]; + Node0xf3de20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%89:\l89: \l br label %63, !llvm.loop !8\l}"]; + Node0xf3de20 -> Node0xf3c780 [label="o"]; + Node0xf3cf20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%90:\l90: \l store i32 0, i32* %1, align 4\l br label %91\l}"]; + Node0xf3cf20 -> Node0xf3e0a0 [label="z"]; + Node0xf3e0a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%91:\l91: \l %92 = load i8*, i8** %7, align 8\l br label %93\l}"]; + Node0xf3e0a0 -> Node0xf3e1d0 [label="a"]; + Node0xf3e1d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%93:\l93: \l call void @llvm.stackrestore(i8* %92)\l br label %94\l}"]; + Node0xf3e1d0 -> Node0xf3e4f0 [label="e"]; + Node0xf3e4f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%94:\l94: \l %95 = load i32, i32* %1, align 4\l br label %96\l}"]; + Node0xf3e4f0 -> Node0xf3e620 [label="z"]; + Node0xf3e620 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%96:\l96: \l ret i32 %95\l}"]; + Node0xf3e620 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/test_transl_core/.markmainfile3.dot b/front/tests/test_transl_core/.markmainfile3.dot new file mode 100644 index 0000000..5b14aa7 --- /dev/null +++ b/front/tests/test_transl_core/.markmainfile3.dot @@ -0,0 +1,84 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x1921110 [label="z"]; + Node0x1921110 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x1921110 -> Node0x1921870 [label="z"]; + Node0x1921870 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x1921870 -> Node0x19219d0 [label="z"]; + Node0x19219d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%4:\l4: \l %5 = alloca i8*, align 8\l br label %6\l}"]; + Node0x19219d0 -> Node0x1921b50 [label="z"]; + Node0x1921b50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%6:\l6: \l %7 = alloca i32, align 4\l br label %8\l}"]; + Node0x1921b50 -> Node0x1921c80 [label="z"]; + Node0x1921c80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%8:\l8: \l store i32 0, i32* %1, align 4\l br label %9\l}"]; + Node0x1921c80 -> Node0x1921a90 [label="z"]; + Node0x1921a90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%9:\l9: \l store i32 1000, i32* %3, align 4\l br label %10\l}"]; + Node0x1921a90 -> Node0x1921de0 [label="a"]; + Node0x1921de0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%10:\l10: \l %11 = call i8* @llvm.stacksave()\l br label %12\l}"]; + Node0x1921de0 -> Node0x1922000 [label="e"]; + Node0x1922000 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%12:\l12: \l store i8* %11, i8** %5, align 8\l br label %13\l}"]; + Node0x1922000 -> Node0x19220c0 [label="z"]; + Node0x19220c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%13:\l13: \l %14 = alloca i32, i64 1000, align 16\l br label %15\l}"]; + Node0x19220c0 -> Node0x1922220 [label="z"]; + Node0x1922220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%15:\l15: \l store i32 0, i32* %7, align 4\l br label %16\l}"]; + Node0x1922220 -> Node0x19222e0 [label="z"]; + Node0x19222e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%16:\l16: \l br label %17\l}"]; + Node0x19222e0 -> Node0x19223a0 [label="z"]; + Node0x19223a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l %18 = load i32, i32* %7, align 4\l br label %19\l}"]; + Node0x19223a0 -> Node0x19224d0 [label="p"]; + Node0x19224d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%19:\l19: \l %20 = icmp slt i32 %18, 1000\l br label %21\l}"]; + Node0x19224d0 -> Node0x1922590 [label="c"]; + Node0x1922590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l br i1 %20, label %22, label %52\l|{T|F}}"]; + Node0x1922590 -> Node0x1922650 [label="k"]; + Node0x1922590 -> Node0x19226a0 [label="k"]; + Node0x1922650 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%22:\l22: \l %23 = load i32, i32* %7, align 4\l br label %24\l}"]; + Node0x1922650 -> Node0x1922850 [label="r"]; + Node0x1922850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%24:\l24: \l %25 = sext i32 %23 to i64\l br label %26\l}"]; + Node0x1922850 -> Node0x1922980 [label="u"]; + Node0x1922980 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%26:\l26: \l %27 = getelementptr inbounds i32, i32* %14, i64 %25\l br label %28\l}"]; + Node0x1922980 -> Node0x1922ae0 [label="n"]; + Node0x1922ae0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%28:\l28: \l %29 = load i32, i32* %27, align 4\l br label %30\l}"]; + Node0x1922ae0 -> Node0x1922c10 [label="z"]; + Node0x1922c10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%30:\l30: \l %31 = add nsw i32 %29, 17\l br label %32\l}"]; + Node0x1922c10 -> Node0x1922d90 [label="z"]; + Node0x1922d90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%32:\l32: \l store i32 %31, i32* %27, align 4\l br label %33\l}"]; + Node0x1922d90 -> Node0x19230f0 [label="z"]; + Node0x19230f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = load i32, i32* %7, align 4\l br label %35\l}"]; + Node0x19230f0 -> Node0x1923220 [label="r"]; + Node0x1923220 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = sext i32 %34 to i64\l br label %37\l}"]; + Node0x1923220 -> Node0x1923350 [label="u"]; + Node0x1923350 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = getelementptr inbounds i32, i32* %14, i64 %36\l br label %39\l}"]; + Node0x1923350 -> Node0x19234b0 [label="n"]; + Node0x19234b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l %40 = load i32, i32* %38, align 4\l br label %41\l}"]; + Node0x19234b0 -> Node0x19235e0 [label="z"]; + Node0x19235e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%41:\l41: \l %42 = icmp sgt i32 %40, 0\l br label %43\l}"]; + Node0x19235e0 -> Node0x1923730 [label="c"]; + Node0x1923730 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l br i1 %42, label %44, label %45\l|{T|F}}"]; + Node0x1923730 -> Node0x19237f0 [label="k"]; + Node0x1923730 -> Node0x1923840 [label="k"]; + Node0x19237f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%44:\l44: \l br label %52\l}"]; + Node0x19237f0 -> Node0x19226a0 [label="z"]; + Node0x1923840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%45:\l45: \l br label %46\l}"]; + Node0x1923840 -> Node0x19239f0 [label="z"]; + Node0x19239f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = load i32, i32* %7, align 4\l br label %48\l}"]; + Node0x19239f0 -> Node0x1923b20 [label="z"]; + Node0x1923b20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l %49 = add nsw i32 %47, 1\l br label %50\l}"]; + Node0x1923b20 -> Node0x1923c70 [label="z"]; + Node0x1923c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l store i32 %49, i32* %7, align 4\l br label %51\l}"]; + Node0x1923c70 -> Node0x1923dc0 [label="z"]; + Node0x1923dc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%51:\l51: \l br label %17, !llvm.loop !6\l}"]; + Node0x1923dc0 -> Node0x19223a0 [label="o"]; + Node0x19226a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%52:\l52: \l store i32 0, i32* %1, align 4\l br label %53\l}"]; + Node0x19226a0 -> Node0x1924a10 [label="z"]; + Node0x1924a10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%53:\l53: \l %54 = load i8*, i8** %5, align 8\l br label %55\l}"]; + Node0x1924a10 -> Node0x1924b40 [label="a"]; + Node0x1924b40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%55:\l55: \l call void @llvm.stackrestore(i8* %54)\l br label %56\l}"]; + Node0x1924b40 -> Node0x1924e40 [label="e"]; + Node0x1924e40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%56:\l56: \l %57 = load i32, i32* %1, align 4\l br label %58\l}"]; + Node0x1924e40 -> Node0x1924f70 [label="z"]; + Node0x1924f70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%58:\l58: \l ret i32 %57\l}"]; + Node0x1924f70 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/test_transl_core/.markmainfile4.dot b/front/tests/test_transl_core/.markmainfile4.dot new file mode 100644 index 0000000..19c577d --- /dev/null +++ b/front/tests/test_transl_core/.markmainfile4.dot @@ -0,0 +1,176 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x1651b90 [label="z"]; + Node0x1651b90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x1651b90 -> Node0x16522f0 [label="z"]; + Node0x16522f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x16522f0 -> Node0x1652450 [label="z"]; + Node0x1652450 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i8*, align 8\l br label %6\l}"]; + Node0x1652450 -> Node0x16525d0 [label="z"]; + Node0x16525d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i32, align 4\l br label %8\l}"]; + Node0x16525d0 -> Node0x1652700 [label="z"]; + Node0x1652700 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; + Node0x1652700 -> Node0x1652510 [label="z"]; + Node0x1652510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0x1652510 -> Node0x1652910 [label="z"]; + Node0x1652910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32 0, i32* %1, align 4\l br label %13\l}"]; + Node0x1652910 -> Node0x16529d0 [label="z"]; + Node0x16529d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l store i32 1000, i32* %3, align 4\l br label %14\l}"]; + Node0x16529d0 -> Node0x1652ac0 [label="a"]; + Node0x1652ac0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l %15 = call i8* @llvm.stacksave()\l br label %16\l}"]; + Node0x1652ac0 -> Node0x1652ce0 [label="e"]; + Node0x1652ce0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l store i8* %15, i8** %5, align 8\l br label %17\l}"]; + Node0x1652ce0 -> Node0x1652da0 [label="z"]; + Node0x1652da0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%17:\l17: \l %18 = alloca i32, i64 1000, align 16\l br label %19\l}"]; + Node0x1652da0 -> Node0x1652f00 [label="z"]; + Node0x1652f00 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l %20 = alloca i32, i64 1000, align 16\l br label %21\l}"]; + Node0x1652f00 -> Node0x1653030 [label="z"]; + Node0x1653030 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%21:\l21: \l store i32 1000, i32* %7, align 4\l br label %22\l}"]; + Node0x1653030 -> Node0x16530f0 [label="z"]; + Node0x16530f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%22:\l22: \l store i32 0, i32* %9, align 4\l br label %23\l}"]; + Node0x16530f0 -> Node0x16531b0 [label="z"]; + Node0x16531b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%23:\l23: \l br label %24\l}"]; + Node0x16531b0 -> Node0x1653270 [label="z"]; + Node0x1653270 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = load i32, i32* %9, align 4\l br label %26\l}"]; + Node0x1653270 -> Node0x16533a0 [label="p"]; + Node0x16533a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l %27 = icmp slt i32 %25, 1000\l br label %28\l}"]; + Node0x16533a0 -> Node0x16534f0 [label="c"]; + Node0x16534f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%28:\l28: \l br i1 %27, label %29, label %99\l|{T|F}}"]; + Node0x16534f0 -> Node0x16535b0 [label="k"]; + Node0x16534f0 -> Node0x1653600 [label="k"]; + Node0x16535b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i32, i32* %9, align 4\l br label %31\l}"]; + Node0x16535b0 -> Node0x16537b0 [label="r"]; + Node0x16537b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = sext i32 %30 to i64\l br label %33\l}"]; + Node0x16537b0 -> Node0x1653af0 [label="u"]; + Node0x1653af0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = getelementptr inbounds i32, i32* %18, i64 %32\l br label %35\l}"]; + Node0x1653af0 -> Node0x1653c50 [label="n"]; + Node0x1653c50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = load i32, i32* %34, align 4\l br label %37\l}"]; + Node0x1653c50 -> Node0x1653d80 [label="z"]; + Node0x1653d80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = add nsw i32 %36, 17\l br label %39\l}"]; + Node0x1653d80 -> Node0x1653f00 [label="z"]; + Node0x1653f00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l store i32 %38, i32* %34, align 4\l br label %40\l}"]; + Node0x1653f00 -> Node0x1654050 [label="z"]; + Node0x1654050 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = load i32, i32* %9, align 4\l br label %42\l}"]; + Node0x1654050 -> Node0x1654180 [label="r"]; + Node0x1654180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l %43 = sext i32 %41 to i64\l br label %44\l}"]; + Node0x1654180 -> Node0x16542b0 [label="u"]; + Node0x16542b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = getelementptr inbounds i32, i32* %18, i64 %43\l br label %46\l}"]; + Node0x16542b0 -> Node0x1654410 [label="n"]; + Node0x1654410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = load i32, i32* %45, align 4\l br label %48\l}"]; + Node0x1654410 -> Node0x1654540 [label="z"]; + Node0x1654540 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l %49 = icmp sgt i32 %47, 0\l br label %50\l}"]; + Node0x1654540 -> Node0x1654690 [label="c"]; + Node0x1654690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l br i1 %49, label %51, label %61\l|{T|F}}"]; + Node0x1654690 -> Node0x1654750 [label="k"]; + Node0x1654690 -> Node0x16547a0 [label="k"]; + Node0x1654750 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%51:\l51: \l %52 = load i32, i32* %9, align 4\l br label %53\l}"]; + Node0x1654750 -> Node0x1654950 [label="z"]; + Node0x1654950 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%53:\l53: \l %54 = load i32, i32* %9, align 4\l br label %55\l}"]; + Node0x1654950 -> Node0x1654a80 [label="r"]; + Node0x1654a80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%55:\l55: \l %56 = sext i32 %54 to i64\l br label %57\l}"]; + Node0x1654a80 -> Node0x1654bb0 [label="u"]; + Node0x1654bb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%57:\l57: \l %58 = getelementptr inbounds i32, i32* %20, i64 %56\l br label %59\l}"]; + Node0x1654bb0 -> Node0x1654d10 [label="f"]; + Node0x1654d10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%59:\l59: \l store i32 %52, i32* %58, align 4\l br label %60\l}"]; + Node0x1654d10 -> Node0x1654e60 [label="z"]; + Node0x1654e60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%60:\l60: \l br label %69\l}"]; + Node0x1654e60 -> Node0x1654f20 [label="z"]; + Node0x16547a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%61:\l61: \l %62 = load i32, i32* %9, align 4\l br label %63\l}"]; + Node0x16547a0 -> Node0x1655050 [label="r"]; + Node0x1655050 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%63:\l63: \l %64 = sext i32 %62 to i64\l br label %65\l}"]; + Node0x1655050 -> Node0x1655590 [label="u"]; + Node0x1655590 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%65:\l65: \l %66 = getelementptr inbounds i32, i32* %20, i64 %64\l br label %67\l}"]; + Node0x1655590 -> Node0x16556f0 [label="f"]; + Node0x16556f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%67:\l67: \l store i32 1000, i32* %66, align 4\l br label %68\l}"]; + Node0x16556f0 -> Node0x1655840 [label="z"]; + Node0x1655840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%68:\l68: \l br label %69\l}"]; + Node0x1655840 -> Node0x1654f20 [label="z"]; + Node0x1654f20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%69:\l69: \l %70 = load i32, i32* %9, align 4\l br label %71\l}"]; + Node0x1654f20 -> Node0x16559e0 [label="r"]; + Node0x16559e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%71:\l71: \l %72 = sext i32 %70 to i64\l br label %73\l}"]; + Node0x16559e0 -> Node0x1655b10 [label="u"]; + Node0x1655b10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%73:\l73: \l %74 = getelementptr inbounds i32, i32* %20, i64 %72\l br label %75\l}"]; + Node0x1655b10 -> Node0x1655c70 [label="n"]; + Node0x1655c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%75:\l75: \l %76 = load i32, i32* %74, align 4\l br label %77\l}"]; + Node0x1655c70 -> Node0x1655da0 [label="z"]; + Node0x1655da0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%77:\l77: \l %78 = load i32, i32* %7, align 4\l br label %79\l}"]; + Node0x1655da0 -> Node0x1655ed0 [label="z"]; + Node0x1655ed0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%79:\l79: \l %80 = icmp slt i32 %76, %78\l br label %81\l}"]; + Node0x1655ed0 -> Node0x1656020 [label="c"]; + Node0x1656020 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%81:\l81: \l br i1 %80, label %82, label %92\l|{T|F}}"]; + Node0x1656020 -> Node0x16560e0 [label="k"]; + Node0x1656020 -> Node0x1656130 [label="k"]; + Node0x16560e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%82:\l82: \l %83 = load i32, i32* %9, align 4\l br label %84\l}"]; + Node0x16560e0 -> Node0x16562a0 [label="r"]; + Node0x16562a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%84:\l84: \l %85 = sext i32 %83 to i64\l br label %86\l}"]; + Node0x16562a0 -> Node0x16563d0 [label="u"]; + Node0x16563d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%86:\l86: \l %87 = getelementptr inbounds i32, i32* %20, i64 %85\l br label %88\l}"]; + Node0x16563d0 -> Node0x1656530 [label="n"]; + Node0x1656530 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%88:\l88: \l %89 = load i32, i32* %87, align 4\l br label %90\l}"]; + Node0x1656530 -> Node0x1656660 [label="z"]; + Node0x1656660 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%90:\l90: \l store i32 %89, i32* %7, align 4\l br label %91\l}"]; + Node0x1656660 -> Node0x16567b0 [label="z"]; + Node0x16567b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%91:\l91: \l br label %92\l}"]; + Node0x16567b0 -> Node0x1656130 [label="z"]; + Node0x1656130 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%92:\l92: \l br label %93\l}"]; + Node0x1656130 -> Node0x16568e0 [label="z"]; + Node0x16568e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%93:\l93: \l %94 = load i32, i32* %9, align 4\l br label %95\l}"]; + Node0x16568e0 -> Node0x1656a10 [label="z"]; + Node0x1656a10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%95:\l95: \l %96 = add nsw i32 %94, 1\l br label %97\l}"]; + Node0x1656a10 -> Node0x1656b60 [label="z"]; + Node0x1656b60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%97:\l97: \l store i32 %96, i32* %9, align 4\l br label %98\l}"]; + Node0x1656b60 -> Node0x1656cb0 [label="z"]; + Node0x1656cb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%98:\l98: \l br label %24, !llvm.loop !6\l}"]; + Node0x1656cb0 -> Node0x1653270 [label="o"]; + Node0x1653600 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%99:\l99: \l %100 = load i32, i32* %7, align 4\l br label %101\l}"]; + Node0x1653600 -> Node0x16578e0 [label="z"]; + Node0x16578e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%101:\l101: \l %102 = add nsw i32 %100, 1\l br label %103\l}"]; + Node0x16578e0 -> Node0x1657a30 [label="z"]; + Node0x1657a30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%103:\l103: \l store i32 %102, i32* %11, align 4\l br label %104\l}"]; + Node0x1657a30 -> Node0x1657b80 [label="z"]; + Node0x1657b80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%104:\l104: \l br label %105\l}"]; + Node0x1657b80 -> Node0x1657c40 [label="z"]; + Node0x1657c40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%105:\l105: \l %106 = load i32, i32* %11, align 4\l br label %107\l}"]; + Node0x1657c40 -> Node0x1657d70 [label="p"]; + Node0x1657d70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%107:\l107: \l %108 = icmp slt i32 %106, 1000\l br label %109\l}"]; + Node0x1657d70 -> Node0x1657ec0 [label="c"]; + Node0x1657ec0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%109:\l109: \l br i1 %108, label %110, label %128\l|{T|F}}"]; + Node0x1657ec0 -> Node0x1657f80 [label="k"]; + Node0x1657ec0 -> Node0x1657fd0 [label="k"]; + Node0x1657f80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%110:\l110: \l %111 = load i32, i32* %11, align 4\l br label %112\l}"]; + Node0x1657f80 -> Node0x1658180 [label="r"]; + Node0x1658180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%112:\l112: \l %113 = sext i32 %111 to i64\l br label %114\l}"]; + Node0x1658180 -> Node0x16582b0 [label="u"]; + Node0x16582b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%114:\l114: \l %115 = getelementptr inbounds i32, i32* %18, i64 %113\l br label %116\l}"]; + Node0x16582b0 -> Node0x1658410 [label="n"]; + Node0x1658410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%116:\l116: \l %117 = load i32, i32* %115, align 4\l br label %118\l}"]; + Node0x1658410 -> Node0x1658540 [label="z"]; + Node0x1658540 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%118:\l118: \l %119 = sub nsw i32 %117, 17\l br label %120\l}"]; + Node0x1658540 -> Node0x1658690 [label="z"]; + Node0x1658690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%120:\l120: \l store i32 %119, i32* %115, align 4\l br label %121\l}"]; + Node0x1658690 -> Node0x16587e0 [label="z"]; + Node0x16587e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%121:\l121: \l br label %122\l}"]; + Node0x16587e0 -> Node0x16588a0 [label="z"]; + Node0x16588a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%122:\l122: \l %123 = load i32, i32* %11, align 4\l br label %124\l}"]; + Node0x16588a0 -> Node0x16589d0 [label="z"]; + Node0x16589d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%124:\l124: \l %125 = add nsw i32 %123, 1\l br label %126\l}"]; + Node0x16589d0 -> Node0x1658b20 [label="z"]; + Node0x1658b20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%126:\l126: \l store i32 %125, i32* %11, align 4\l br label %127\l}"]; + Node0x1658b20 -> Node0x1658c70 [label="z"]; + Node0x1658c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%127:\l127: \l br label %105, !llvm.loop !8\l}"]; + Node0x1658c70 -> Node0x1657c40 [label="o"]; + Node0x1657fd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%128:\l128: \l store i32 0, i32* %1, align 4\l br label %129\l}"]; + Node0x1657fd0 -> Node0x1659700 [label="z"]; + Node0x1659700 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%129:\l129: \l %130 = load i8*, i8** %5, align 8\l br label %131\l}"]; + Node0x1659700 -> Node0x1659830 [label="a"]; + Node0x1659830 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%131:\l131: \l call void @llvm.stackrestore(i8* %130)\l br label %132\l}"]; + Node0x1659830 -> Node0x1659b50 [label="e"]; + Node0x1659b50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%132:\l132: \l %133 = load i32, i32* %1, align 4\l br label %134\l}"]; + Node0x1659b50 -> Node0x1659c80 [label="z"]; + Node0x1659c80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%134:\l134: \l ret i32 %133\l}"]; + Node0x1659c80 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/test_transl_core/Diploma_tests.txt b/front/tests/test_transl_core/Diploma_tests.txt new file mode 100644 index 0000000..e3f3abb --- /dev/null +++ b/front/tests/test_transl_core/Diploma_tests.txt @@ -0,0 +1,7 @@ +Тесты, использующиеся в дипломе: +Пример 1 +file1.c, grammatics1 +file2.c, grammatics2 +Пример 2 +file3.c, grammatics3 +file4.c, grammatics4 \ No newline at end of file diff --git a/front/tests/test_transl_core/file1.c b/front/tests/test_transl_core/file1.c index 61e8b41..6fd2873 100644 --- a/front/tests/test_transl_core/file1.c +++ b/front/tests/test_transl_core/file1.c @@ -1,102 +1,9 @@ -#include -#include -#include -#include -#define MAXLENGTH 5 -#define OK 0 -#define ERROR_INPUT_FILE -1 -#define ERROR_FOUND_FILE -2 -#define MORE_ERROR_ELEMENTS -3 -#define ZERO_ERROR_ELEMENTS -4 - -void usage(void); -void input(FILE*, int**, int*); -void result(int*, int*, long long int*); -void array_print(int const*, int const*); - -int main(int argc, char** argv) -{ - FILE *f; - int rc = OK; - if (argc != 2) - usage(); - else - { - char** link_argv = argv; - link_argv++; - f = fopen(*link_argv, "r"); - int a[MAXLENGTH]; - // - if (!f) - { - fprintf(stderr, "File %s not found! %s!\n", link_argv, strerror(errno)); - fclose(f); - rc = ERROR_FOUND_FILE; - } - // - int* pa = a; - input(f, &pa, &rc); - fclose(f); - printf("\n"); - switch(rc) - { - case OK: - { - long long int res = 0; - result(a, pa, &res); - printf("result is %lld\n", res); - break; - } - case MORE_ERROR_ELEMENTS: - printf("More than 100 items!\n"); - break; - default: - printf("Empty array!\n"); - } - array_print(a, pa); - } - return rc; -} - -void usage(void) -{ - printf("example.exe \n"); -} - -void input(FILE*f, int** pa, int* rc) -{ - int i = 0; - for (; (fscanf(f, "%d", *pa) == 1) && (i <= MAXLENGTH); ++*pa, ++i) - { - if (i < MAXLENGTH) - { - if (**(pa) < 0) - break; - } - else - { - *rc = MORE_ERROR_ELEMENTS; - } - } - if (!i) - *rc = ZERO_ERROR_ELEMENTS; -} - -void result(int* pa, int* pb, long long int* sum) -{ - long long int squre = 1; - for (; pa < pb; ++pa) - { - squre *= *pa; - *sum += squre; - } -} - -void array_print(int const* pa, int const* pb) -{ - - printf("ARRAY:\n"); - for (; pa < pb; ++pa) - printf("%d ", *pa); - printf("\n"); +#include +int main() { + const int LEN = 1000, x = LEN/2; + int a[LEN]; + for (int i = 0; i < LEN; i++) { + a[i] = a[x] * i; + } + return 0; } \ No newline at end of file diff --git a/front/tests/test_transl_core/file2.c b/front/tests/test_transl_core/file2.c index 8f609cc..74b0b3b 100644 --- a/front/tests/test_transl_core/file2.c +++ b/front/tests/test_transl_core/file2.c @@ -1,7 +1,13 @@ #include - -int main(int argc, char* argv[]) { - int a = 17; - a = a + 1; +int main() { + const int LEN = 1000, x = LEN/2; + float a[LEN], t = a[x]; + for (int i = 0; i <= x; i++) { + a[i] = t * i; + } + t = a[x]; + for (int i = x + 1; i < LEN; i++) { + a[i] = t * i; + } return 0; -} +} \ No newline at end of file diff --git a/front/tests/test_transl_core/file3.c b/front/tests/test_transl_core/file3.c index 65154d7..41b8356 100644 --- a/front/tests/test_transl_core/file3.c +++ b/front/tests/test_transl_core/file3.c @@ -1,15 +1,11 @@ #include - -static int factorial (int n) -{ - return (n < 2) ? 1 : n * factorial (n - 1); +int main() { + const int LEN = 1000; + int a[LEN]; + for (int i = 0; i < LEN; i++) { + a[i] += 17; + if (a[i] > 0) break; + } + return 0; } -int main (void) -{ - int n; - while (scanf ("%d", &n) == 1) { - printf ("%d\n", factorial (n)); - } - return 0; -} diff --git a/front/tests/test_transl_core/file4.c b/front/tests/test_transl_core/file4.c index 4278282..0dd734c 100644 --- a/front/tests/test_transl_core/file4.c +++ b/front/tests/test_transl_core/file4.c @@ -1,20 +1,17 @@ #include -int main(){ - int **p, *q; - int *a, *b, c, d; - - p = &a; - - if (p) { - if (c) { - q = &c; +int main() { + const int LEN = 1000; + int a[LEN], ind[LEN], min = LEN; + for (int i = 0; i < LEN; i++) { + a[i] += 17; + if (a[i] > 0) { + ind[i] = i; + } else ind[i] = LEN; + if (ind[i] < min) min = ind[i]; } - } - else{ - p = &b; - q = &d; - } - if (d) { - *p = q; - } + for (int i = min + 1; i < LEN; i++) { + a[i] -= 17; + } + return 0; } + diff --git a/front/tests/test_transl_core/grammatics1 b/front/tests/test_transl_core/grammatics1 new file mode 100644 index 0000000..5684e83 --- /dev/null +++ b/front/tests/test_transl_core/grammatics1 @@ -0,0 +1,28 @@ +21 +S A B +A p +B D E +D c +E F G +F k +G C I +C z +C C C +C 0 +I J K +J t +K C L +L M N +M r +N O P +O u +P Q R +Q f +R C T +T o + + + + + + diff --git a/front/tests/test_transl_core/grammatics2 b/front/tests/test_transl_core/grammatics2 new file mode 100644 index 0000000..5abb110 --- /dev/null +++ b/front/tests/test_transl_core/grammatics2 @@ -0,0 +1,38 @@ +37 +S A B +A t +B C D +C z +C C C +C 0 +D E F +E p +F G H +G c +H I J +I k +J C K +K L M +L r +M N O +N u +O P Q +P f +Q C R +R T U +T o +U E V +V G W +W I X +X C Y +Y Z AA +Z t +AA C BB +BB E CC +CC G DD +DD I EE +EE C FF +FF L GG +GG N HH +HH P II +II C T diff --git a/front/tests/test_transl_core/grammatics3 b/front/tests/test_transl_core/grammatics3 new file mode 100644 index 0000000..fbc92fc --- /dev/null +++ b/front/tests/test_transl_core/grammatics3 @@ -0,0 +1,30 @@ +29 +S A B +A o +B D E +D p +E F G +F c +C z +C a +C e +C C C +C 0 +G H I +H k +I C J +J K L +K r +L M N +M u +N O P +O n +P C Q +Q K R +R M T +T O U +U C V +V F W +W H X +X C Y +Y m \ No newline at end of file diff --git a/front/tests/test_transl_core/grammatics4 b/front/tests/test_transl_core/grammatics4 new file mode 100644 index 0000000..026c9ae --- /dev/null +++ b/front/tests/test_transl_core/grammatics4 @@ -0,0 +1,51 @@ +50 +S A B +A r +B D E +D u +E F G +F n +C z +C C C +C 0 +G C H +H A I +I D J +J F K +K C L +L M N +M c +N O P +O k +P C Q +Q A R +R D T +T U V +U f +V C W +W A X +X D Y +Y F Z +Z C AA +AA M BB +BB O CC +CC C DD +DD A EE +EE D FF +FF F GG +GG C HH +HH II JJ +II o +JJ KK LL +KK p +LL M MM +MM O NN +NN C OO +OO KK PP +PP M QQ +QQ O RR +RR C TT +TT A UU +UU D VV +VV F WW +WW C II diff --git a/front/tests/test_transl_core/graphfile1 b/front/tests/test_transl_core/graphfile1 index 646e86c..89e971b 100644 --- a/front/tests/test_transl_core/graphfile1 +++ b/front/tests/test_transl_core/graphfile1 @@ -1,183 +1,69 @@ 1 -1 -S a +21 +S A B +A p +B D E +D c +E F G +F k +G C I +C z +C C C +C 0 +I J K +J t +K C L +L M N +M r +N O P +O u +P Q R +Q f +R C T +T o -167 177 -Node0x121632 Node0x1216a9 Node0x1216b5 Node0x1216c1 Node0x1216d4 Node0x1216f5 Node0x121708 Node0x12171b Node0x12172e Node0x121741 Node0x12174d Node0x121759 Node0x121765 Node0x121771 Node0x121784 Node0x121793 Node0x12179f Node0x1217a4 Node0x1217ce Node0x1217da Node0x12180e Node0x121823 Node0x121836 Node0x12184c Node0x121861 Node0x121874 Node0x121887 Node0x1218e3 Node0x1218fc Node0x12190f Node0x121965 Node0x121971 Node0x121976 Node0x121991 Node0x1219a4 Node0x1219d6 Node0x1219e9 Node0x121a15 Node0x121a51 Node0x121aa5 Node0x121ad2 Node0x121aea Node0x121b09 Node0x121b1e Node0x121b31 Node0x121b56 Node0x121b69 Node0x121b84 Node0x121bba Node0x121bcd Node0x121bd9 Node0x121bde Node0x121be6 Node0x121c0a Node0x121c22 Node0x121c35 Node0x121c58 Node0x121c6b Node0x121c91 Node0x121c9d Node0x121cc1 Node0x121cec Node0x121d0b Node0x121d1e Node0x121d4d Node0x121d67 Node0x121da7 Node0x121dbd Node0x121e1e Node0x121e2a Node0x121e2f Node0x121e42 Node0x121e63 Node0x121e78 Node0x121e8d Node0x121ea2 Node0x121eb7 Node0x121ec3 Node0x121ed6 Node0x121ee9 Node0x121efc Node0x121f16 Node0x121f2b Node0x121f37 Node0x121f3c Node0x121f53 Node0x121f68 Node0x121f83 Node0x121f8f Node0x121f94 Node0x121fab Node0x121fc0 Node0x121fcc Node0x121fd1 Node0x121fe8 Node0x121ffb Node0x12200e Node0x122023 Node0x12202f Node0x122034 Node0x12204b Node0x12205e Node0x122073 Node0x122086 Node0x122099 Node0x1220ac Node0x1220c2 Node0x1220d7 Node0x1220ea Node0x1220ff Node0x122114 Node0x1221d7 Node0x1221ec Node0x1221f8 Node0x1221fd Node0x122214 Node0x12222c Node0x122272 Node0x12227e Node0x122283 Node0x122296 Node0x1222b7 Node0x1222cc Node0x1222e1 Node0x1222f6 Node0x12230b Node0x122317 Node0x12232a Node0x12233d Node0x122349 Node0x122355 Node0x12235a Node0x122371 Node0x122384 Node0x122397 Node0x1223aa Node0x1223bf Node0x1223d4 Node0x1223e7 Node0x1223fa Node0x12240d Node0x122422 Node0x122437 Node0x122443 Node0x122456 Node0x12246c Node0x122481 Node0x1224ba Node0x1224c6 Node0x1224de Node0x1224ea Node0x1224ff Node0x122527 Node0x122533 Node0x122546 Node0x122559 Node0x12256e Node0x12257a Node0x12257f Node0x12259a Node0x1225ad Node0x1225ca Node0x1225d6 Node0x1225e9 Node0x1225ff Node0x122614 Node0x122642 -0 1 a -1 2 a -2 3 -3 4 b -4 5 -5 6 a -6 7 -7 8 + + + + + + +36 37 +Node0x2366040 Node0x23667a0 Node0x2366900 Node0x23669c0 Node0x2366a80 Node0x2366bb0 Node0x2366d50 Node0x2366e40 Node0x2366f30 Node0x2367150 Node0x2367210 Node0x2367370 Node0x2367430 Node0x23674f0 Node0x2367620 Node0x2367770 Node0x2367830 Node0x2367880 Node0x2367a90 Node0x2367bc0 Node0x2367cf0 Node0x2368050 Node0x2368180 Node0x23682b0 Node0x2368410 Node0x2368560 Node0x2368620 Node0x2368750 Node0x23688a0 Node0x23689f0 Node0x2369680 Node0x23697b0 Node0x2369ab0 Node0x2369be0 Nodebeginmain Nodeendmain +0 1 z +1 2 z +2 3 z +3 4 z +4 5 z +5 6 z +6 7 z +7 8 z 8 9 a -9 10 b -10 11 a -11 12 -12 13 -13 14 b -14 15 -15 16 -15 18 a -16 66 -16 17 b -17 64 -18 19 -19 20 -20 21 a -21 22 -22 23 -23 24 a -24 25 a -25 26 a -26 27 -27 28 b -28 29 a -29 40 b -29 30 b -30 31 b -31 32 -32 33 -33 34 a -34 35 b -35 36 -36 37 -37 38 b -38 39 -39 40 b -40 41 a -41 42 -42 43 b -43 68 -43 44 -44 45 a -45 46 -46 47 a -47 48 a -48 58 a -48 49 b -48 56 -49 50 a -50 51 a -51 52 -52 117 b -52 53 -53 54 b -54 55 -55 60 b -56 57 a -57 60 -58 59 -59 60 -60 61 -61 62 -62 147 -62 63 a -63 64 a -64 65 b -66 67 a -68 69 b -69 70 b -70 71 b -71 72 -72 73 a -73 74 a -74 75 a -75 76 b -76 77 a -77 78 b -78 79 -79 80 -80 81 a -81 82 a -82 83 a -82 86 -83 84 -84 85 -85 86 b -86 87 -87 88 b -87 110 b -88 89 b -89 90 -90 91 a -90 98 a -91 92 b -92 93 a -93 94 -94 95 a -95 96 b -95 97 a -96 110 a -97 101 a -98 99 -99 100 a -100 101 a -101 102 -102 103 b -103 104 b -104 105 a -105 106 a -106 107 a -107 108 -108 109 a -109 77 b -110 111 -111 112 a -112 116 b -112 113 a -113 114 -114 115 b -115 116 a -117 118 a -118 119 a -119 120 b -120 121 -121 122 -122 123 b -123 124 a -124 125 a -125 126 a -126 127 b -127 128 a -128 129 a -129 130 b -129 146 -130 131 b -131 132 b -132 133 b -133 134 a -134 135 a -135 136 b -136 137 -137 138 a -138 139 -139 140 a -140 141 b -141 142 b -142 143 b -143 144 b -144 145 -145 126 b -147 148 -148 149 a -149 150 b -150 151 a -151 152 -152 153 a -153 154 a -154 155 b -155 156 a -156 157 b -156 165 b -157 158 -158 159 b -159 160 -160 161 a -161 162 a -162 163 a -163 164 -164 153 a -165 166 +9 10 e +10 11 z +11 12 z +12 13 z +13 14 z +14 15 p +15 16 c +16 17 k +16 30 k +17 18 t +18 19 z +19 20 z +20 21 z +21 22 r +22 23 u +23 24 f +24 25 z +25 26 z +26 27 z +27 28 z +28 29 z +29 14 o +30 31 z +31 32 a +32 33 e +33 34 z +34 35 m +0 35 z diff --git a/front/tests/test_transl_core/graphfile2 b/front/tests/test_transl_core/graphfile2 index bd42255..1cd5585 100644 --- a/front/tests/test_transl_core/graphfile2 +++ b/front/tests/test_transl_core/graphfile2 @@ -1,17 +1,106 @@ 1 -1 -S a +37 +S A B +A t +B C D +C z +C C C +C 0 +D E F +E p +F G H +G c +H I J +I k +J C K +K L M +L r +M N O +N u +O P Q +P f +Q C R +R T U +T o +U E V +V G W +W I X +X C Y +Y Z AA +Z t +AA C BB +BB E CC +CC G DD +DD I EE +EE C FF +FF L GG +GG N HH +HH P II +II C T -12 11 -Node0x900b3 Node0x9012a Node0x90136 Node0x90142 Node0x90155 Node0x9016f Node0x9017b Node0x90187 Node0x90196 Node0x901a9 Node0x901b5 Node0x901c1 -0 1 a -1 2 a -2 3 a -3 4 a -4 5 a -5 6 a -6 7 a -7 8 a -8 9 b -9 10 +62 64 +Node0xf38660 Node0xf38dc0 Node0xf38f20 Node0xf38fe0 Node0xf390a0 Node0xf391d0 Node0xf393e0 Node0xf39510 Node0xf395d0 Node0xf396c0 Node0xf397b0 Node0xf399d0 Node0xf39a90 Node0xf39bf0 Node0xf39d80 Node0xf39eb0 Node0xf39f70 Node0xf3a0c0 Node0xf3a180 Node0xf3a2b0 Node0xf3a610 Node0xf3a6d0 Node0xf3a720 Node0xf3a8d0 Node0xf3aa00 Node0xf3ab30 Node0xf3ac80 Node0xf3adb0 Node0xf3aee0 Node0xf3b040 Node0xf3b190 Node0xf3b250 Node0xf3b380 Node0xf3b4d0 Node0xf3b620 Node0xf3c2c0 Node0xf3c3f0 Node0xf3c540 Node0xf3c6c0 Node0xf3c780 Node0xf3ccc0 Node0xf3ce10 Node0xf3ced0 Node0xf3cf20 Node0xf3d0d0 Node0xf3d200 Node0xf3d330 Node0xf3d480 Node0xf3d5b0 Node0xf3d6e0 Node0xf3d840 Node0xf3d990 Node0xf3da50 Node0xf3db80 Node0xf3dcd0 Node0xf3de20 Node0xf3e0a0 Node0xf3e1d0 Node0xf3e4f0 Node0xf3e620 Nodebeginmain Nodeendmain +0 1 z +1 2 z +2 3 z +3 4 z +4 5 z +5 6 z +6 7 z +7 8 z +8 9 z +9 10 z 10 11 a +11 12 e +12 13 z +13 14 z +14 15 t +15 16 z +16 17 z +17 18 z +18 19 z +19 20 p +20 21 c +21 22 k +21 35 k +22 23 z +23 24 z +24 25 z +25 26 z +26 27 r +27 28 u +28 29 f +29 30 z +30 31 z +31 32 z +32 33 z +33 34 z +34 19 o +35 36 t +36 37 z +37 38 z +38 39 z +39 40 z +40 41 p +41 42 c +42 43 k +42 56 k +43 44 z +44 45 z +45 46 z +46 47 z +47 48 r +48 49 u +49 50 f +50 51 z +51 52 z +52 53 z +53 54 z +54 55 z +55 40 o +56 57 z +57 58 a +58 59 e +59 60 z +60 61 m +0 61 z diff --git a/front/tests/test_transl_core/graphfile3 b/front/tests/test_transl_core/graphfile3 index 843fa48..191e161 100644 --- a/front/tests/test_transl_core/graphfile3 +++ b/front/tests/test_transl_core/graphfile3 @@ -1,34 +1,75 @@ 1 -1 -S a +29 +S A B +A o +B D E +D p +E F G +F c +C z +C a +C e +C C C +C 0 +G H I +H k +I C J +J K L +K r +L M N +M u +N O P +O n +P C Q +Q K R +R M T +T O U +U C V +V F W +W H X +X C Y +Y m -26 28 -Node0xbeb8b Node0xbec01 Node0xbec17 Node0xbec23 Node0xbec28 Node0xbec34 Node0xbec7e Node0xbec95 Node0xbec9a Node0xbecb5 Node0xbecd9 Node0xbed11 Node0xbee03 Node0xbee0f Node0xbee1b Node0xbee27 Node0xbee33 Node0xbee48 Node0xbee5d Node0xbee71 Node0xbee84 Node0xbee97 Node0xbeeac Node0xbeec7 Node0xbeed3 Node0xbeeeb -0 1 -1 2 -2 3 b -3 4 b -4 5 -5 6 b -6 7 -6 11 -7 8 -8 12 a -8 9 b -9 10 -10 4 a -12 13 b -13 14 a -14 15 b -15 16 b -16 17 a -16 18 a -17 24 a -18 19 a -19 20 a -20 21 a -21 12 -21 22 -22 23 a -23 24 -24 25 a +39 41 +Node0x1921110 Node0x1921870 Node0x19219d0 Node0x1921a90 Node0x1921b50 Node0x1921c80 Node0x1921de0 Node0x1922000 Node0x19220c0 Node0x1922220 Node0x19222e0 Node0x19223a0 Node0x19224d0 Node0x1922590 Node0x1922650 Node0x19226a0 Node0x1922850 Node0x1922980 Node0x1922ae0 Node0x1922c10 Node0x1922d90 Node0x19230f0 Node0x1923220 Node0x1923350 Node0x19234b0 Node0x19235e0 Node0x1923730 Node0x19237f0 Node0x1923840 Node0x19239f0 Node0x1923b20 Node0x1923c70 Node0x1923dc0 Node0x1924a10 Node0x1924b40 Node0x1924e40 Node0x1924f70 Nodebeginmain Nodeendmain +0 1 z +1 2 z +2 3 z +3 4 z +4 5 z +5 6 z +6 7 a +7 8 e +8 9 z +9 10 z +10 11 z +11 12 z +12 13 p +13 14 c +14 15 k +14 33 k +15 16 r +16 17 u +17 18 n +18 19 z +19 20 z +20 21 z +21 22 r +22 23 u +23 24 n +24 25 z +25 26 c +26 27 k +26 28 k +27 33 z +28 29 z +29 30 z +30 31 z +31 32 z +32 12 o +33 34 z +34 35 a +35 36 e +36 37 z +37 38 m +0 38 z diff --git a/front/tests/test_transl_core/graphfile4 b/front/tests/test_transl_core/graphfile4 index a758609..6fbf42d 100644 --- a/front/tests/test_transl_core/graphfile4 +++ b/front/tests/test_transl_core/graphfile4 @@ -1,38 +1,143 @@ 1 -1 -S a +50 +S A B +A r +B D E +D u +E F G +F n +C z +C C C +C 0 +G C H +H A I +I D J +J F K +K C L +L M N +M c +N O P +O k +P C Q +Q A R +R D T +T U V +U f +V C W +W A X +X D Y +Y F Z +Z C AA +AA M BB +BB O CC +CC C DD +DD A EE +EE D FF +FF F GG +GG C HH +HH II JJ +II o +JJ KK LL +KK p +LL M MM +MM O NN +NN C OO +OO KK PP +PP M QQ +QQ O RR +RR C TT +TT A UU +UU D VV +VV F WW +WW C II -30 32 -Node0x1cbfea Node0x1cc060 Node0x1cc076 Node0x1cc082 Node0x1cc08e Node0x1cc0a1 Node0x1cc0c2 Node0x1cc0d5 Node0x1cc0e1 Node0x1cc0ed Node0x1cc100 Node0x1cc14d Node0x1cc159 Node0x1cc15e Node0x1cc179 Node0x1cc185 Node0x1cc191 Node0x1cc196 Node0x1cc1aa Node0x1cc1bd Node0x1cc1c9 Node0x1cc1de Node0x1cc219 Node0x1cc22e Node0x1cc23a Node0x1cc23f Node0x1cc256 Node0x1cc269 Node0x1cc27e Node0x1cc298 -0 1 -1 2 b -2 3 -3 4 -4 5 -5 6 -6 7 b -7 8 -8 9 -9 10 -10 11 a -11 12 -11 18 b -12 13 a -13 14 -14 15 b -14 17 b -15 16 a -16 17 -17 21 b -18 19 -19 20 b -20 21 a -21 22 a -22 23 a -23 24 -23 28 -24 25 a -25 26 -26 27 a -27 28 -28 29 b +84 88 +Node0x1651b90 Node0x16522f0 Node0x1652450 Node0x1652510 Node0x16525d0 Node0x1652700 Node0x1652910 Node0x16529d0 Node0x1652ac0 Node0x1652ce0 Node0x1652da0 Node0x1652f00 Node0x1653030 Node0x16530f0 Node0x16531b0 Node0x1653270 Node0x16533a0 Node0x16534f0 Node0x16535b0 Node0x1653600 Node0x16537b0 Node0x1653af0 Node0x1653c50 Node0x1653d80 Node0x1653f00 Node0x1654050 Node0x1654180 Node0x16542b0 Node0x1654410 Node0x1654540 Node0x1654690 Node0x1654750 Node0x16547a0 Node0x1654950 Node0x1654a80 Node0x1654bb0 Node0x1654d10 Node0x1654e60 Node0x1654f20 Node0x1655050 Node0x1655590 Node0x16556f0 Node0x1655840 Node0x16559e0 Node0x1655b10 Node0x1655c70 Node0x1655da0 Node0x1655ed0 Node0x1656020 Node0x16560e0 Node0x1656130 Node0x16562a0 Node0x16563d0 Node0x1656530 Node0x1656660 Node0x16567b0 Node0x16568e0 Node0x1656a10 Node0x1656b60 Node0x1656cb0 Node0x16578e0 Node0x1657a30 Node0x1657b80 Node0x1657c40 Node0x1657d70 Node0x1657ec0 Node0x1657f80 Node0x1657fd0 Node0x1658180 Node0x16582b0 Node0x1658410 Node0x1658540 Node0x1658690 Node0x16587e0 Node0x16588a0 Node0x16589d0 Node0x1658b20 Node0x1658c70 Node0x1659700 Node0x1659830 Node0x1659b50 Node0x1659c80 Nodebeginmain Nodeendmain +0 1 z +1 2 z +2 3 z +3 4 z +4 5 z +5 6 z +6 7 z +7 8 z +8 9 a +9 10 e +10 11 z +11 12 z +12 13 z +13 14 z +14 15 z +15 16 z +16 17 p +17 18 c +18 19 k +18 60 k +19 20 r +20 21 u +21 22 n +22 23 z +23 24 z +24 25 z +25 26 r +26 27 u +27 28 n +28 29 z +29 30 c +30 31 k +30 37 k +31 32 z +32 33 r +33 34 u +34 35 f +35 36 z +36 42 z +37 38 r +38 39 u +39 40 f +40 41 z +41 42 z +42 43 r +43 44 u +44 45 n +45 46 z +46 47 z +47 48 c +48 49 k +48 55 k +49 50 r +50 51 u +51 52 n +52 53 z +53 54 z +54 55 z +55 56 z +56 57 z +57 58 z +58 59 z +59 16 o +60 61 z +61 62 z +62 63 z +63 64 z +64 65 p +65 66 c +66 67 k +66 78 k +67 68 r +68 69 u +69 70 n +70 71 z +71 72 z +72 73 z +73 74 z +74 75 z +75 76 z +76 77 z +77 64 o +78 79 z +79 80 a +80 81 e +81 82 z +82 83 m +0 83 z diff --git a/front/tests/test_transl_core/markoutfilefile1.png b/front/tests/test_transl_core/markoutfilefile1.png new file mode 100644 index 0000000..90c8ae0 Binary files /dev/null and b/front/tests/test_transl_core/markoutfilefile1.png differ diff --git a/front/tests/test_transl_core/markoutfilefile2.png b/front/tests/test_transl_core/markoutfilefile2.png new file mode 100644 index 0000000..5e46e59 Binary files /dev/null and b/front/tests/test_transl_core/markoutfilefile2.png differ diff --git a/front/tests/test_transl_core/markoutfilefile3.png b/front/tests/test_transl_core/markoutfilefile3.png new file mode 100644 index 0000000..035e816 Binary files /dev/null and b/front/tests/test_transl_core/markoutfilefile3.png differ diff --git a/front/tests/test_transl_core/markoutfilefile4.png b/front/tests/test_transl_core/markoutfilefile4.png new file mode 100644 index 0000000..7d3e759 Binary files /dev/null and b/front/tests/test_transl_core/markoutfilefile4.png differ diff --git a/front/tests/test_transl_core/outfilefile1.png b/front/tests/test_transl_core/outfilefile1.png new file mode 100644 index 0000000..285238f Binary files /dev/null and b/front/tests/test_transl_core/outfilefile1.png differ diff --git a/front/tests/test_transl_core/outfilefile1.ps b/front/tests/test_transl_core/outfilefile1.ps deleted file mode 100644 index 8c3f794..0000000 Binary files a/front/tests/test_transl_core/outfilefile1.ps and /dev/null differ diff --git a/front/tests/test_transl_core/outfilefile2.png b/front/tests/test_transl_core/outfilefile2.png new file mode 100644 index 0000000..8984bec Binary files /dev/null and b/front/tests/test_transl_core/outfilefile2.png differ diff --git a/front/tests/test_transl_core/outfilefile2.ps b/front/tests/test_transl_core/outfilefile2.ps deleted file mode 100644 index c54f134..0000000 Binary files a/front/tests/test_transl_core/outfilefile2.ps and /dev/null differ diff --git a/front/tests/test_transl_core/outfilefile3.png b/front/tests/test_transl_core/outfilefile3.png new file mode 100644 index 0000000..bfa6ef0 Binary files /dev/null and b/front/tests/test_transl_core/outfilefile3.png differ diff --git a/front/tests/test_transl_core/outfilefile3.ps b/front/tests/test_transl_core/outfilefile3.ps deleted file mode 100644 index 8d39472..0000000 Binary files a/front/tests/test_transl_core/outfilefile3.ps and /dev/null differ diff --git a/front/tests/test_transl_core/outfilefile4.png b/front/tests/test_transl_core/outfilefile4.png new file mode 100644 index 0000000..a45c6f0 Binary files /dev/null and b/front/tests/test_transl_core/outfilefile4.png differ diff --git a/front/tests/test_transl_core/outfilefile4.ps b/front/tests/test_transl_core/outfilefile4.ps deleted file mode 100644 index d8a0e7c..0000000 Binary files a/front/tests/test_transl_core/outfilefile4.ps and /dev/null differ diff --git a/front/tests/test_transl_core/outputfile1 b/front/tests/test_transl_core/outputfile1 index af20d5f..9415032 100644 --- a/front/tests/test_transl_core/outputfile1 +++ b/front/tests/test_transl_core/outputfile1 @@ -9,73 +9,8 @@ Benchmarking reachability for graph graph [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ -[INFO] Total time: 2.382 s -[INFO] Finished at: 2023-05-25T01:46:55+03:00 +[INFO] Total time: 2.831 s +[INFO] Finished at: 2024-06-18T22:14:15+03:00 [INFO] ------------------------------------------------------------------------ -66 -(62, a, 63) -(10, a, 11) -(46, a, 47) -(50, a, 51) -(66, a, 67) -(74, a, 75) -(82, a, 83) -(90, a, 91) -(94, a, 95) -(106, a, 107) -(118, a, 119) -(134, a, 135) -(150, a, 151) -(162, a, 163) -(90, a, 98) -(99, a, 100) -(47, a, 48) -(23, a, 24) -(63, a, 64) -(111, a, 112) -(115, a, 116) -(123, a, 124) -(127, a, 128) -(139, a, 140) -(155, a, 156) -(95, a, 97) -(15, a, 18) -(164, a, 153) -(72, a, 73) -(28, a, 29) -(44, a, 45) -(20, a, 21) -(0, a, 1) -(8, a, 9) -(24, a, 25) -(40, a, 41) -(56, a, 57) -(76, a, 77) -(80, a, 81) -(92, a, 93) -(100, a, 101) -(104, a, 105) -(108, a, 109) -(112, a, 113) -(124, a, 125) -(128, a, 129) -(148, a, 149) -(152, a, 153) -(160, a, 161) -(48, a, 58) -(96, a, 110) -(33, a, 34) -(25, a, 26) -(1, a, 2) -(5, a, 6) -(49, a, 50) -(73, a, 74) -(81, a, 82) -(105, a, 106) -(117, a, 118) -(125, a, 126) -(133, a, 134) -(137, a, 138) -(153, a, 154) -(161, a, 162) -(97, a, 101) +1 +(14, p, 15) (15, c, 16) (16, k, 17) (17, epsilon, 17) (17, t, 18) (18, z, 19) (19, z, 20) (20, z, 21) (21, r, 22) (22, u, 23) (23, f, 24) (24, z, 25) (25, z, 26) (26, z, 27) (27, z, 28) (28, z, 29) (29, o, 14) diff --git a/front/tests/test_transl_core/outputfile2 b/front/tests/test_transl_core/outputfile2 index cfcbf94..f687559 100644 --- a/front/tests/test_transl_core/outputfile2 +++ b/front/tests/test_transl_core/outputfile2 @@ -9,16 +9,8 @@ Benchmarking reachability for graph graph [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ -[INFO] Total time: 2.404 s -[INFO] Finished at: 2023-05-25T01:46:58+03:00 +[INFO] Total time: 2.834 s +[INFO] Finished at: 2024-06-18T22:14:21+03:00 [INFO] ------------------------------------------------------------------------ -9 -(0, a, 1) -(1, a, 2) -(2, a, 3) -(3, a, 4) -(4, a, 5) -(5, a, 6) -(6, a, 7) -(7, a, 8) -(10, a, 11) +1 +(14, t, 15) (15, z, 16) (16, z, 17) (17, z, 18) (18, z, 19) (19, p, 20) (20, c, 21) (21, k, 22) (22, z, 23) (23, z, 24) (24, z, 25) (25, z, 26) (26, r, 27) (27, u, 28) (28, f, 29) (29, z, 30) (30, z, 31) (31, z, 32) (32, z, 33) (33, z, 34) (34, o, 19) (19, p, 20) (20, c, 21) (21, k, 35) (35, epsilon, 35) (35, t, 36) (36, z, 37) (37, z, 38) (38, z, 39) (39, z, 40) (40, p, 41) (41, c, 42) (42, k, 43) (43, z, 44) (44, z, 45) (45, z, 46) (46, z, 47) (47, r, 48) (48, u, 49) (49, f, 50) (50, z, 51) (51, z, 52) (52, z, 53) (53, z, 54) (54, z, 55) (55, o, 40) diff --git a/front/tests/test_transl_core/outputfile3 b/front/tests/test_transl_core/outputfile3 index 21516ba..1b79ce2 100644 --- a/front/tests/test_transl_core/outputfile3 +++ b/front/tests/test_transl_core/outputfile3 @@ -9,18 +9,8 @@ Benchmarking reachability for graph graph [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ -[INFO] Total time: 2.430 s -[INFO] Finished at: 2023-05-25T01:47:02+03:00 +[INFO] Total time: 2.846 s +[INFO] Finished at: 2024-06-18T22:14:26+03:00 [INFO] ------------------------------------------------------------------------ -11 -(13, a, 14) -(16, a, 17) -(18, a, 19) -(19, a, 20) -(20, a, 21) -(22, a, 23) -(24, a, 25) -(16, a, 18) -(8, a, 12) -(17, a, 24) -(10, a, 4) +1 +(32, o, 12) (12, p, 13) (13, c, 14) (14, k, 15) (15, epsilon, 15) (15, r, 16) (16, u, 17) (17, n, 18) (18, z, 19) (19, z, 20) (20, z, 21) (21, r, 22) (22, u, 23) (23, n, 24) (24, z, 25) (25, c, 26) (26, k, 27) (27, z, 33) (33, z, 34) (34, a, 35) (35, e, 36) (36, z, 37) (37, m, 38) diff --git a/front/tests/test_transl_core/outputfile4 b/front/tests/test_transl_core/outputfile4 index 62d6b62..29ebf68 100644 --- a/front/tests/test_transl_core/outputfile4 +++ b/front/tests/test_transl_core/outputfile4 @@ -9,15 +9,8 @@ Benchmarking reachability for graph graph [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ -[INFO] Total time: 2.463 s -[INFO] Finished at: 2023-05-25T01:47:06+03:00 +[INFO] Total time: 2.879 s +[INFO] Finished at: 2024-06-18T22:14:33+03:00 [INFO] ------------------------------------------------------------------------ -8 -(10, a, 11) -(12, a, 13) -(15, a, 16) -(20, a, 21) -(21, a, 22) -(22, a, 23) -(24, a, 25) -(26, a, 27) +1 +(19, r, 20) (20, u, 21) (21, n, 22) (22, z, 23) (23, z, 24) (24, z, 25) (25, r, 26) (26, u, 27) (27, n, 28) (28, z, 29) (29, c, 30) (30, k, 37) (37, epsilon, 37) (37, r, 38) (38, u, 39) (39, f, 40) (40, z, 41) (41, z, 42) (42, r, 43) (43, u, 44) (44, n, 45) (45, z, 46) (46, z, 47) (47, c, 48) (48, k, 49) (49, epsilon, 49) (49, r, 50) (50, u, 51) (51, n, 52) (52, z, 53) (53, z, 54) (54, z, 55) (55, z, 56) (56, z, 57) (57, z, 58) (58, z, 59) (59, o, 16) (16, p, 17) (17, c, 18) (18, k, 60) (60, z, 61) (61, z, 62) (62, z, 63) (63, z, 64) (64, p, 65) (65, c, 66) (66, k, 67) (67, epsilon, 67) (67, r, 68) (68, u, 69) (69, n, 70) (70, z, 71) (71, z, 72) (72, z, 73) (73, z, 74) (74, z, 75) (75, z, 76) (76, z, 77) (77, o, 64) diff --git a/front/tests/test_transl_core/test_transl.txt b/front/tests/test_transl_core/test_transl.txt index 4236583..e33d915 100644 --- a/front/tests/test_transl_core/test_transl.txt +++ b/front/tests/test_transl_core/test_transl.txt @@ -1,4 +1,4 @@ -file1.c -file2.c -file3.c -file4.c \ No newline at end of file +file1.c grammatics1 +file2.c grammatics2 +file3.c grammatics3 +file4.c grammatics4 \ No newline at end of file diff --git a/front/tests/visual_iguana/.markmainfile1.dot b/front/tests/visual_iguana/.markmainfile1.dot new file mode 100644 index 0000000..feb0562 --- /dev/null +++ b/front/tests/visual_iguana/.markmainfile1.dot @@ -0,0 +1,77 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x2366040 [label="z"]; + Node0x2366040 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x2366040 -> Node0x23667a0 [label="z"]; + Node0x23667a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x23667a0 -> Node0x2366900 [label="z"]; + Node0x2366900 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0x2366900 -> Node0x2366a80 [label="z"]; + Node0x2366a80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i8*, align 8\l br label %8\l}"]; + Node0x2366a80 -> Node0x2366bb0 [label="z"]; + Node0x2366bb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; + Node0x2366bb0 -> Node0x23669c0 [label="z"]; + Node0x23669c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l store i32 0, i32* %1, align 4\l br label %11\l}"]; + Node0x23669c0 -> Node0x2366d50 [label="z"]; + Node0x2366d50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%11:\l11: \l store i32 1000, i32* %3, align 4\l br label %12\l}"]; + Node0x2366d50 -> Node0x2366e40 [label="z"]; + Node0x2366e40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32 500, i32* %5, align 4\l br label %13\l}"]; + Node0x2366e40 -> Node0x2366f30 [label="a"]; + Node0x2366f30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l %14 = call i8* @llvm.stacksave()\l br label %15\l}"]; + Node0x2366f30 -> Node0x2367150 [label="e"]; + Node0x2367150 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l store i8* %14, i8** %7, align 8\l br label %16\l}"]; + Node0x2367150 -> Node0x2367210 [label="z"]; + Node0x2367210 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l %17 = alloca i32, i64 1000, align 16\l br label %18\l}"]; + Node0x2367210 -> Node0x2367370 [label="z"]; + Node0x2367370 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%18:\l18: \l store i32 0, i32* %9, align 4\l br label %19\l}"]; + Node0x2367370 -> Node0x2367430 [label="z"]; + Node0x2367430 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l br label %20\l}"]; + Node0x2367430 -> Node0x23674f0 [label="z"]; + Node0x23674f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%20:\l20: \l %21 = load i32, i32* %9, align 4\l br label %22\l}"]; + Node0x23674f0 -> Node0x2367620 [label="p"]; + Node0x2367620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%22:\l22: \l %23 = icmp slt i32 %21, 1000\l br label %24\l}"]; + Node0x2367620 -> Node0x2367770 [label="c"]; + Node0x2367770 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l br i1 %23, label %25, label %47\l|{T|F}}"]; + Node0x2367770 -> Node0x2367830 [label="k"]; + Node0x2367770 -> Node0x2367880 [label="k"]; + Node0x2367830 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%25:\l25: \l %26 = getelementptr inbounds i32, i32* %17, i64 500\l br label %27\l}"]; + Node0x2367830 -> Node0x2367a90 [label="t"]; + Node0x2367a90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%27:\l27: \l %28 = load i32, i32* %26, align 16\l br label %29\l}"]; + Node0x2367a90 -> Node0x2367bc0 [label="z"]; + Node0x2367bc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i32, i32* %9, align 4\l br label %31\l}"]; + Node0x2367bc0 -> Node0x2367cf0 [label="z"]; + Node0x2367cf0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = mul nsw i32 %28, %30\l br label %33\l}"]; + Node0x2367cf0 -> Node0x2368050 [label="z"]; + Node0x2368050 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = load i32, i32* %9, align 4\l br label %35\l}"]; + Node0x2368050 -> Node0x2368180 [label="r"]; + Node0x2368180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = sext i32 %34 to i64\l br label %37\l}"]; + Node0x2368180 -> Node0x23682b0 [label="u"]; + Node0x23682b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = getelementptr inbounds i32, i32* %17, i64 %36\l br label %39\l}"]; + Node0x23682b0 -> Node0x2368410 [label="f"]; + Node0x2368410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l store i32 %32, i32* %38, align 4\l br label %40\l}"]; + Node0x2368410 -> Node0x2368560 [label="z"]; + Node0x2368560 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l br label %41\l}"]; + Node0x2368560 -> Node0x2368620 [label="z"]; + Node0x2368620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%41:\l41: \l %42 = load i32, i32* %9, align 4\l br label %43\l}"]; + Node0x2368620 -> Node0x2368750 [label="z"]; + Node0x2368750 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l %44 = add nsw i32 %42, 1\l br label %45\l}"]; + Node0x2368750 -> Node0x23688a0 [label="z"]; + Node0x23688a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%45:\l45: \l store i32 %44, i32* %9, align 4\l br label %46\l}"]; + Node0x23688a0 -> Node0x23689f0 [label="z"]; + Node0x23689f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l br label %20, !llvm.loop !6\l}"]; + Node0x23689f0 -> Node0x23674f0 [label="o"]; + Node0x2367880 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%47:\l47: \l store i32 0, i32* %1, align 4\l br label %48\l}"]; + Node0x2367880 -> Node0x2369680 [label="z"]; + Node0x2369680 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%48:\l48: \l %49 = load i8*, i8** %7, align 8\l br label %50\l}"]; + Node0x2369680 -> Node0x23697b0 [label="a"]; + Node0x23697b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%50:\l50: \l call void @llvm.stackrestore(i8* %49)\l br label %51\l}"]; + Node0x23697b0 -> Node0x2369ab0 [label="e"]; + Node0x2369ab0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%51:\l51: \l %52 = load i32, i32* %1, align 4\l br label %53\l}"]; + Node0x2369ab0 -> Node0x2369be0 [label="z"]; + Node0x2369be0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%53:\l53: \l ret i32 %52\l}"]; + Node0x2369be0 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/visual_iguana/.markmainfile2.dot b/front/tests/visual_iguana/.markmainfile2.dot new file mode 100644 index 0000000..261953e --- /dev/null +++ b/front/tests/visual_iguana/.markmainfile2.dot @@ -0,0 +1,130 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0xf38660 [label="z"]; + Node0xf38660 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0xf38660 -> Node0xf38dc0 [label="z"]; + Node0xf38dc0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0xf38dc0 -> Node0xf38f20 [label="z"]; + Node0xf38f20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i32, align 4\l br label %6\l}"]; + Node0xf38f20 -> Node0xf390a0 [label="z"]; + Node0xf390a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i8*, align 8\l br label %8\l}"]; + Node0xf390a0 -> Node0xf391d0 [label="z"]; + Node0xf391d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca float, align 4\l br label %10\l}"]; + Node0xf391d0 -> Node0xf38fe0 [label="z"]; + Node0xf38fe0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0xf38fe0 -> Node0xf393e0 [label="z"]; + Node0xf393e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l %13 = alloca i32, align 4\l br label %14\l}"]; + Node0xf393e0 -> Node0xf39510 [label="z"]; + Node0xf39510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l store i32 0, i32* %1, align 4\l br label %15\l}"]; + Node0xf39510 -> Node0xf395d0 [label="z"]; + Node0xf395d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%15:\l15: \l store i32 1000, i32* %3, align 4\l br label %16\l}"]; + Node0xf395d0 -> Node0xf396c0 [label="z"]; + Node0xf396c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l store i32 500, i32* %5, align 4\l br label %17\l}"]; + Node0xf396c0 -> Node0xf397b0 [label="a"]; + Node0xf397b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%17:\l17: \l %18 = call i8* @llvm.stacksave()\l br label %19\l}"]; + Node0xf397b0 -> Node0xf399d0 [label="e"]; + Node0xf399d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l store i8* %18, i8** %7, align 8\l br label %20\l}"]; + Node0xf399d0 -> Node0xf39a90 [label="z"]; + Node0xf39a90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%20:\l20: \l %21 = alloca float, i64 1000, align 16\l br label %22\l}"]; + Node0xf39a90 -> Node0xf39bf0 [label="z"]; + Node0xf39bf0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%22:\l22: \l %23 = getelementptr inbounds float, float* %21, i64 500\l br label %24\l}"]; + Node0xf39bf0 -> Node0xf39d80 [label="t"]; + Node0xf39d80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%24:\l24: \l %25 = load float, float* %23, align 16\l br label %26\l}"]; + Node0xf39d80 -> Node0xf39eb0 [label="z"]; + Node0xf39eb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%26:\l26: \l store float %25, float* %9, align 4\l br label %27\l}"]; + Node0xf39eb0 -> Node0xf39f70 [label="z"]; + Node0xf39f70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%27:\l27: \l store i32 0, i32* %11, align 4\l br label %28\l}"]; + Node0xf39f70 -> Node0xf3a0c0 [label="z"]; + Node0xf3a0c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%28:\l28: \l br label %29\l}"]; + Node0xf3a0c0 -> Node0xf3a180 [label="z"]; + Node0xf3a180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%29:\l29: \l %30 = load i32, i32* %11, align 4\l br label %31\l}"]; + Node0xf3a180 -> Node0xf3a2b0 [label="p"]; + Node0xf3a2b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%31:\l31: \l %32 = icmp sle i32 %30, 500\l br label %33\l}"]; + Node0xf3a2b0 -> Node0xf3a610 [label="c"]; + Node0xf3a610 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%33:\l33: \l br i1 %32, label %34, label %56\l|{T|F}}"]; + Node0xf3a610 -> Node0xf3a6d0 [label="k"]; + Node0xf3a610 -> Node0xf3a720 [label="k"]; + Node0xf3a6d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%34:\l34: \l %35 = load float, float* %9, align 4\l br label %36\l}"]; + Node0xf3a6d0 -> Node0xf3a8d0 [label="z"]; + Node0xf3a8d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%36:\l36: \l %37 = load i32, i32* %11, align 4\l br label %38\l}"]; + Node0xf3a8d0 -> Node0xf3aa00 [label="z"]; + Node0xf3aa00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%38:\l38: \l %39 = sitofp i32 %37 to float\l br label %40\l}"]; + Node0xf3aa00 -> Node0xf3ab30 [label="z"]; + Node0xf3ab30 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = fmul float %35, %39\l br label %42\l}"]; + Node0xf3ab30 -> Node0xf3ac80 [label="z"]; + Node0xf3ac80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l %43 = load i32, i32* %11, align 4\l br label %44\l}"]; + Node0xf3ac80 -> Node0xf3adb0 [label="r"]; + Node0xf3adb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = sext i32 %43 to i64\l br label %46\l}"]; + Node0xf3adb0 -> Node0xf3aee0 [label="u"]; + Node0xf3aee0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = getelementptr inbounds float, float* %21, i64 %45\l br label %48\l}"]; + Node0xf3aee0 -> Node0xf3b040 [label="f"]; + Node0xf3b040 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l store float %41, float* %47, align 4\l br label %49\l}"]; + Node0xf3b040 -> Node0xf3b190 [label="z"]; + Node0xf3b190 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%49:\l49: \l br label %50\l}"]; + Node0xf3b190 -> Node0xf3b250 [label="z"]; + Node0xf3b250 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l %51 = load i32, i32* %11, align 4\l br label %52\l}"]; + Node0xf3b250 -> Node0xf3b380 [label="z"]; + Node0xf3b380 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%52:\l52: \l %53 = add nsw i32 %51, 1\l br label %54\l}"]; + Node0xf3b380 -> Node0xf3b4d0 [label="z"]; + Node0xf3b4d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%54:\l54: \l store i32 %53, i32* %11, align 4\l br label %55\l}"]; + Node0xf3b4d0 -> Node0xf3b620 [label="z"]; + Node0xf3b620 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%55:\l55: \l br label %29, !llvm.loop !6\l}"]; + Node0xf3b620 -> Node0xf3a180 [label="o"]; + Node0xf3a720 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%56:\l56: \l %57 = getelementptr inbounds float, float* %21, i64 500\l br label %58\l}"]; + Node0xf3a720 -> Node0xf3c2c0 [label="t"]; + Node0xf3c2c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%58:\l58: \l %59 = load float, float* %57, align 16\l br label %60\l}"]; + Node0xf3c2c0 -> Node0xf3c3f0 [label="z"]; + Node0xf3c3f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%60:\l60: \l store float %59, float* %9, align 4\l br label %61\l}"]; + Node0xf3c3f0 -> Node0xf3c540 [label="z"]; + Node0xf3c540 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%61:\l61: \l store i32 501, i32* %13, align 4\l br label %62\l}"]; + Node0xf3c540 -> Node0xf3c6c0 [label="z"]; + Node0xf3c6c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%62:\l62: \l br label %63\l}"]; + Node0xf3c6c0 -> Node0xf3c780 [label="z"]; + Node0xf3c780 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%63:\l63: \l %64 = load i32, i32* %13, align 4\l br label %65\l}"]; + Node0xf3c780 -> Node0xf3ccc0 [label="p"]; + Node0xf3ccc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%65:\l65: \l %66 = icmp slt i32 %64, 1000\l br label %67\l}"]; + Node0xf3ccc0 -> Node0xf3ce10 [label="c"]; + Node0xf3ce10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%67:\l67: \l br i1 %66, label %68, label %90\l|{T|F}}"]; + Node0xf3ce10 -> Node0xf3ced0 [label="k"]; + Node0xf3ce10 -> Node0xf3cf20 [label="k"]; + Node0xf3ced0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%68:\l68: \l %69 = load float, float* %9, align 4\l br label %70\l}"]; + Node0xf3ced0 -> Node0xf3d0d0 [label="z"]; + Node0xf3d0d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%70:\l70: \l %71 = load i32, i32* %13, align 4\l br label %72\l}"]; + Node0xf3d0d0 -> Node0xf3d200 [label="z"]; + Node0xf3d200 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%72:\l72: \l %73 = sitofp i32 %71 to float\l br label %74\l}"]; + Node0xf3d200 -> Node0xf3d330 [label="z"]; + Node0xf3d330 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%74:\l74: \l %75 = fmul float %69, %73\l br label %76\l}"]; + Node0xf3d330 -> Node0xf3d480 [label="z"]; + Node0xf3d480 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%76:\l76: \l %77 = load i32, i32* %13, align 4\l br label %78\l}"]; + Node0xf3d480 -> Node0xf3d5b0 [label="r"]; + Node0xf3d5b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%78:\l78: \l %79 = sext i32 %77 to i64\l br label %80\l}"]; + Node0xf3d5b0 -> Node0xf3d6e0 [label="u"]; + Node0xf3d6e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%80:\l80: \l %81 = getelementptr inbounds float, float* %21, i64 %79\l br label %82\l}"]; + Node0xf3d6e0 -> Node0xf3d840 [label="f"]; + Node0xf3d840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%82:\l82: \l store float %75, float* %81, align 4\l br label %83\l}"]; + Node0xf3d840 -> Node0xf3d990 [label="z"]; + Node0xf3d990 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%83:\l83: \l br label %84\l}"]; + Node0xf3d990 -> Node0xf3da50 [label="z"]; + Node0xf3da50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%84:\l84: \l %85 = load i32, i32* %13, align 4\l br label %86\l}"]; + Node0xf3da50 -> Node0xf3db80 [label="z"]; + Node0xf3db80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%86:\l86: \l %87 = add nsw i32 %85, 1\l br label %88\l}"]; + Node0xf3db80 -> Node0xf3dcd0 [label="z"]; + Node0xf3dcd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%88:\l88: \l store i32 %87, i32* %13, align 4\l br label %89\l}"]; + Node0xf3dcd0 -> Node0xf3de20 [label="z"]; + Node0xf3de20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%89:\l89: \l br label %63, !llvm.loop !8\l}"]; + Node0xf3de20 -> Node0xf3c780 [label="o"]; + Node0xf3cf20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%90:\l90: \l store i32 0, i32* %1, align 4\l br label %91\l}"]; + Node0xf3cf20 -> Node0xf3e0a0 [label="z"]; + Node0xf3e0a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%91:\l91: \l %92 = load i8*, i8** %7, align 8\l br label %93\l}"]; + Node0xf3e0a0 -> Node0xf3e1d0 [label="a"]; + Node0xf3e1d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%93:\l93: \l call void @llvm.stackrestore(i8* %92)\l br label %94\l}"]; + Node0xf3e1d0 -> Node0xf3e4f0 [label="e"]; + Node0xf3e4f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%94:\l94: \l %95 = load i32, i32* %1, align 4\l br label %96\l}"]; + Node0xf3e4f0 -> Node0xf3e620 [label="z"]; + Node0xf3e620 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%96:\l96: \l ret i32 %95\l}"]; + Node0xf3e620 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/visual_iguana/.markmainfile3.dot b/front/tests/visual_iguana/.markmainfile3.dot new file mode 100644 index 0000000..5b14aa7 --- /dev/null +++ b/front/tests/visual_iguana/.markmainfile3.dot @@ -0,0 +1,84 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x1921110 [label="z"]; + Node0x1921110 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x1921110 -> Node0x1921870 [label="z"]; + Node0x1921870 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x1921870 -> Node0x19219d0 [label="z"]; + Node0x19219d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%4:\l4: \l %5 = alloca i8*, align 8\l br label %6\l}"]; + Node0x19219d0 -> Node0x1921b50 [label="z"]; + Node0x1921b50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%6:\l6: \l %7 = alloca i32, align 4\l br label %8\l}"]; + Node0x1921b50 -> Node0x1921c80 [label="z"]; + Node0x1921c80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%8:\l8: \l store i32 0, i32* %1, align 4\l br label %9\l}"]; + Node0x1921c80 -> Node0x1921a90 [label="z"]; + Node0x1921a90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%9:\l9: \l store i32 1000, i32* %3, align 4\l br label %10\l}"]; + Node0x1921a90 -> Node0x1921de0 [label="a"]; + Node0x1921de0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%10:\l10: \l %11 = call i8* @llvm.stacksave()\l br label %12\l}"]; + Node0x1921de0 -> Node0x1922000 [label="e"]; + Node0x1922000 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%12:\l12: \l store i8* %11, i8** %5, align 8\l br label %13\l}"]; + Node0x1922000 -> Node0x19220c0 [label="z"]; + Node0x19220c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%13:\l13: \l %14 = alloca i32, i64 1000, align 16\l br label %15\l}"]; + Node0x19220c0 -> Node0x1922220 [label="z"]; + Node0x1922220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%15:\l15: \l store i32 0, i32* %7, align 4\l br label %16\l}"]; + Node0x1922220 -> Node0x19222e0 [label="z"]; + Node0x19222e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%16:\l16: \l br label %17\l}"]; + Node0x19222e0 -> Node0x19223a0 [label="z"]; + Node0x19223a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%17:\l17: \l %18 = load i32, i32* %7, align 4\l br label %19\l}"]; + Node0x19223a0 -> Node0x19224d0 [label="p"]; + Node0x19224d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%19:\l19: \l %20 = icmp slt i32 %18, 1000\l br label %21\l}"]; + Node0x19224d0 -> Node0x1922590 [label="c"]; + Node0x1922590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%21:\l21: \l br i1 %20, label %22, label %52\l|{T|F}}"]; + Node0x1922590 -> Node0x1922650 [label="k"]; + Node0x1922590 -> Node0x19226a0 [label="k"]; + Node0x1922650 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%22:\l22: \l %23 = load i32, i32* %7, align 4\l br label %24\l}"]; + Node0x1922650 -> Node0x1922850 [label="r"]; + Node0x1922850 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%24:\l24: \l %25 = sext i32 %23 to i64\l br label %26\l}"]; + Node0x1922850 -> Node0x1922980 [label="u"]; + Node0x1922980 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%26:\l26: \l %27 = getelementptr inbounds i32, i32* %14, i64 %25\l br label %28\l}"]; + Node0x1922980 -> Node0x1922ae0 [label="n"]; + Node0x1922ae0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%28:\l28: \l %29 = load i32, i32* %27, align 4\l br label %30\l}"]; + Node0x1922ae0 -> Node0x1922c10 [label="z"]; + Node0x1922c10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%30:\l30: \l %31 = add nsw i32 %29, 17\l br label %32\l}"]; + Node0x1922c10 -> Node0x1922d90 [label="z"]; + Node0x1922d90 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%32:\l32: \l store i32 %31, i32* %27, align 4\l br label %33\l}"]; + Node0x1922d90 -> Node0x19230f0 [label="z"]; + Node0x19230f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = load i32, i32* %7, align 4\l br label %35\l}"]; + Node0x19230f0 -> Node0x1923220 [label="r"]; + Node0x1923220 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = sext i32 %34 to i64\l br label %37\l}"]; + Node0x1923220 -> Node0x1923350 [label="u"]; + Node0x1923350 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = getelementptr inbounds i32, i32* %14, i64 %36\l br label %39\l}"]; + Node0x1923350 -> Node0x19234b0 [label="n"]; + Node0x19234b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l %40 = load i32, i32* %38, align 4\l br label %41\l}"]; + Node0x19234b0 -> Node0x19235e0 [label="z"]; + Node0x19235e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%41:\l41: \l %42 = icmp sgt i32 %40, 0\l br label %43\l}"]; + Node0x19235e0 -> Node0x1923730 [label="c"]; + Node0x1923730 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%43:\l43: \l br i1 %42, label %44, label %45\l|{T|F}}"]; + Node0x1923730 -> Node0x19237f0 [label="k"]; + Node0x1923730 -> Node0x1923840 [label="k"]; + Node0x19237f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%44:\l44: \l br label %52\l}"]; + Node0x19237f0 -> Node0x19226a0 [label="z"]; + Node0x1923840 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%45:\l45: \l br label %46\l}"]; + Node0x1923840 -> Node0x19239f0 [label="z"]; + Node0x19239f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = load i32, i32* %7, align 4\l br label %48\l}"]; + Node0x19239f0 -> Node0x1923b20 [label="z"]; + Node0x1923b20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l %49 = add nsw i32 %47, 1\l br label %50\l}"]; + Node0x1923b20 -> Node0x1923c70 [label="z"]; + Node0x1923c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l store i32 %49, i32* %7, align 4\l br label %51\l}"]; + Node0x1923c70 -> Node0x1923dc0 [label="z"]; + Node0x1923dc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%51:\l51: \l br label %17, !llvm.loop !6\l}"]; + Node0x1923dc0 -> Node0x19223a0 [label="o"]; + Node0x19226a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%52:\l52: \l store i32 0, i32* %1, align 4\l br label %53\l}"]; + Node0x19226a0 -> Node0x1924a10 [label="z"]; + Node0x1924a10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%53:\l53: \l %54 = load i8*, i8** %5, align 8\l br label %55\l}"]; + Node0x1924a10 -> Node0x1924b40 [label="a"]; + Node0x1924b40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%55:\l55: \l call void @llvm.stackrestore(i8* %54)\l br label %56\l}"]; + Node0x1924b40 -> Node0x1924e40 [label="e"]; + Node0x1924e40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%56:\l56: \l %57 = load i32, i32* %1, align 4\l br label %58\l}"]; + Node0x1924e40 -> Node0x1924f70 [label="z"]; + Node0x1924f70 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#dbdcde70",label="{%58:\l58: \l ret i32 %57\l}"]; + Node0x1924f70 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/visual_iguana/.markmainfile4.dot b/front/tests/visual_iguana/.markmainfile4.dot new file mode 100644 index 0000000..19c577d --- /dev/null +++ b/front/tests/visual_iguana/.markmainfile4.dot @@ -0,0 +1,176 @@ +digraph "CFG for 'main' function" { + label="CFG for 'main' function"; + + Nodebeginmain [shape=record, label="BEGIN"]; + Nodebeginmain -> Node0x1651b90 [label="z"]; + Node0x1651b90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%0:\l %1 = alloca i32, align 4\l br label %2\l}"]; + Node0x1651b90 -> Node0x16522f0 [label="z"]; + Node0x16522f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%2:\l2: \l %3 = alloca i32, align 4\l br label %4\l}"]; + Node0x16522f0 -> Node0x1652450 [label="z"]; + Node0x1652450 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%4:\l4: \l %5 = alloca i8*, align 8\l br label %6\l}"]; + Node0x1652450 -> Node0x16525d0 [label="z"]; + Node0x16525d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%6:\l6: \l %7 = alloca i32, align 4\l br label %8\l}"]; + Node0x16525d0 -> Node0x1652700 [label="z"]; + Node0x1652700 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%8:\l8: \l %9 = alloca i32, align 4\l br label %10\l}"]; + Node0x1652700 -> Node0x1652510 [label="z"]; + Node0x1652510 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%10:\l10: \l %11 = alloca i32, align 4\l br label %12\l}"]; + Node0x1652510 -> Node0x1652910 [label="z"]; + Node0x1652910 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%12:\l12: \l store i32 0, i32* %1, align 4\l br label %13\l}"]; + Node0x1652910 -> Node0x16529d0 [label="z"]; + Node0x16529d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%13:\l13: \l store i32 1000, i32* %3, align 4\l br label %14\l}"]; + Node0x16529d0 -> Node0x1652ac0 [label="a"]; + Node0x1652ac0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%14:\l14: \l %15 = call i8* @llvm.stacksave()\l br label %16\l}"]; + Node0x1652ac0 -> Node0x1652ce0 [label="e"]; + Node0x1652ce0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%16:\l16: \l store i8* %15, i8** %5, align 8\l br label %17\l}"]; + Node0x1652ce0 -> Node0x1652da0 [label="z"]; + Node0x1652da0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%17:\l17: \l %18 = alloca i32, i64 1000, align 16\l br label %19\l}"]; + Node0x1652da0 -> Node0x1652f00 [label="z"]; + Node0x1652f00 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%19:\l19: \l %20 = alloca i32, i64 1000, align 16\l br label %21\l}"]; + Node0x1652f00 -> Node0x1653030 [label="z"]; + Node0x1653030 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%21:\l21: \l store i32 1000, i32* %7, align 4\l br label %22\l}"]; + Node0x1653030 -> Node0x16530f0 [label="z"]; + Node0x16530f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%22:\l22: \l store i32 0, i32* %9, align 4\l br label %23\l}"]; + Node0x16530f0 -> Node0x16531b0 [label="z"]; + Node0x16531b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%23:\l23: \l br label %24\l}"]; + Node0x16531b0 -> Node0x1653270 [label="z"]; + Node0x1653270 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%24:\l24: \l %25 = load i32, i32* %9, align 4\l br label %26\l}"]; + Node0x1653270 -> Node0x16533a0 [label="p"]; + Node0x16533a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26: \l %27 = icmp slt i32 %25, 1000\l br label %28\l}"]; + Node0x16533a0 -> Node0x16534f0 [label="c"]; + Node0x16534f0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%28:\l28: \l br i1 %27, label %29, label %99\l|{T|F}}"]; + Node0x16534f0 -> Node0x16535b0 [label="k"]; + Node0x16534f0 -> Node0x1653600 [label="k"]; + Node0x16535b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%29:\l29: \l %30 = load i32, i32* %9, align 4\l br label %31\l}"]; + Node0x16535b0 -> Node0x16537b0 [label="r"]; + Node0x16537b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%31:\l31: \l %32 = sext i32 %30 to i64\l br label %33\l}"]; + Node0x16537b0 -> Node0x1653af0 [label="u"]; + Node0x1653af0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%33:\l33: \l %34 = getelementptr inbounds i32, i32* %18, i64 %32\l br label %35\l}"]; + Node0x1653af0 -> Node0x1653c50 [label="n"]; + Node0x1653c50 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%35:\l35: \l %36 = load i32, i32* %34, align 4\l br label %37\l}"]; + Node0x1653c50 -> Node0x1653d80 [label="z"]; + Node0x1653d80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%37:\l37: \l %38 = add nsw i32 %36, 17\l br label %39\l}"]; + Node0x1653d80 -> Node0x1653f00 [label="z"]; + Node0x1653f00 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%39:\l39: \l store i32 %38, i32* %34, align 4\l br label %40\l}"]; + Node0x1653f00 -> Node0x1654050 [label="z"]; + Node0x1654050 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%40:\l40: \l %41 = load i32, i32* %9, align 4\l br label %42\l}"]; + Node0x1654050 -> Node0x1654180 [label="r"]; + Node0x1654180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%42:\l42: \l %43 = sext i32 %41 to i64\l br label %44\l}"]; + Node0x1654180 -> Node0x16542b0 [label="u"]; + Node0x16542b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%44:\l44: \l %45 = getelementptr inbounds i32, i32* %18, i64 %43\l br label %46\l}"]; + Node0x16542b0 -> Node0x1654410 [label="n"]; + Node0x1654410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%46:\l46: \l %47 = load i32, i32* %45, align 4\l br label %48\l}"]; + Node0x1654410 -> Node0x1654540 [label="z"]; + Node0x1654540 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%48:\l48: \l %49 = icmp sgt i32 %47, 0\l br label %50\l}"]; + Node0x1654540 -> Node0x1654690 [label="c"]; + Node0x1654690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%50:\l50: \l br i1 %49, label %51, label %61\l|{T|F}}"]; + Node0x1654690 -> Node0x1654750 [label="k"]; + Node0x1654690 -> Node0x16547a0 [label="k"]; + Node0x1654750 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%51:\l51: \l %52 = load i32, i32* %9, align 4\l br label %53\l}"]; + Node0x1654750 -> Node0x1654950 [label="z"]; + Node0x1654950 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%53:\l53: \l %54 = load i32, i32* %9, align 4\l br label %55\l}"]; + Node0x1654950 -> Node0x1654a80 [label="r"]; + Node0x1654a80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%55:\l55: \l %56 = sext i32 %54 to i64\l br label %57\l}"]; + Node0x1654a80 -> Node0x1654bb0 [label="u"]; + Node0x1654bb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%57:\l57: \l %58 = getelementptr inbounds i32, i32* %20, i64 %56\l br label %59\l}"]; + Node0x1654bb0 -> Node0x1654d10 [label="f"]; + Node0x1654d10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%59:\l59: \l store i32 %52, i32* %58, align 4\l br label %60\l}"]; + Node0x1654d10 -> Node0x1654e60 [label="z"]; + Node0x1654e60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d6524470",label="{%60:\l60: \l br label %69\l}"]; + Node0x1654e60 -> Node0x1654f20 [label="z"]; + Node0x16547a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%61:\l61: \l %62 = load i32, i32* %9, align 4\l br label %63\l}"]; + Node0x16547a0 -> Node0x1655050 [label="r"]; + Node0x1655050 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%63:\l63: \l %64 = sext i32 %62 to i64\l br label %65\l}"]; + Node0x1655050 -> Node0x1655590 [label="u"]; + Node0x1655590 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%65:\l65: \l %66 = getelementptr inbounds i32, i32* %20, i64 %64\l br label %67\l}"]; + Node0x1655590 -> Node0x16556f0 [label="f"]; + Node0x16556f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%67:\l67: \l store i32 1000, i32* %66, align 4\l br label %68\l}"]; + Node0x16556f0 -> Node0x1655840 [label="z"]; + Node0x1655840 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%68:\l68: \l br label %69\l}"]; + Node0x1655840 -> Node0x1654f20 [label="z"]; + Node0x1654f20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%69:\l69: \l %70 = load i32, i32* %9, align 4\l br label %71\l}"]; + Node0x1654f20 -> Node0x16559e0 [label="r"]; + Node0x16559e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%71:\l71: \l %72 = sext i32 %70 to i64\l br label %73\l}"]; + Node0x16559e0 -> Node0x1655b10 [label="u"]; + Node0x1655b10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%73:\l73: \l %74 = getelementptr inbounds i32, i32* %20, i64 %72\l br label %75\l}"]; + Node0x1655b10 -> Node0x1655c70 [label="n"]; + Node0x1655c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%75:\l75: \l %76 = load i32, i32* %74, align 4\l br label %77\l}"]; + Node0x1655c70 -> Node0x1655da0 [label="z"]; + Node0x1655da0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%77:\l77: \l %78 = load i32, i32* %7, align 4\l br label %79\l}"]; + Node0x1655da0 -> Node0x1655ed0 [label="z"]; + Node0x1655ed0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%79:\l79: \l %80 = icmp slt i32 %76, %78\l br label %81\l}"]; + Node0x1655ed0 -> Node0x1656020 [label="c"]; + Node0x1656020 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%81:\l81: \l br i1 %80, label %82, label %92\l|{T|F}}"]; + Node0x1656020 -> Node0x16560e0 [label="k"]; + Node0x1656020 -> Node0x1656130 [label="k"]; + Node0x16560e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%82:\l82: \l %83 = load i32, i32* %9, align 4\l br label %84\l}"]; + Node0x16560e0 -> Node0x16562a0 [label="r"]; + Node0x16562a0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%84:\l84: \l %85 = sext i32 %83 to i64\l br label %86\l}"]; + Node0x16562a0 -> Node0x16563d0 [label="u"]; + Node0x16563d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%86:\l86: \l %87 = getelementptr inbounds i32, i32* %20, i64 %85\l br label %88\l}"]; + Node0x16563d0 -> Node0x1656530 [label="n"]; + Node0x1656530 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%88:\l88: \l %89 = load i32, i32* %87, align 4\l br label %90\l}"]; + Node0x1656530 -> Node0x1656660 [label="z"]; + Node0x1656660 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%90:\l90: \l store i32 %89, i32* %7, align 4\l br label %91\l}"]; + Node0x1656660 -> Node0x16567b0 [label="z"]; + Node0x16567b0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e1675170",label="{%91:\l91: \l br label %92\l}"]; + Node0x16567b0 -> Node0x1656130 [label="z"]; + Node0x1656130 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%92:\l92: \l br label %93\l}"]; + Node0x1656130 -> Node0x16568e0 [label="z"]; + Node0x16568e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%93:\l93: \l %94 = load i32, i32* %9, align 4\l br label %95\l}"]; + Node0x16568e0 -> Node0x1656a10 [label="z"]; + Node0x1656a10 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%95:\l95: \l %96 = add nsw i32 %94, 1\l br label %97\l}"]; + Node0x1656a10 -> Node0x1656b60 [label="z"]; + Node0x1656b60 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%97:\l97: \l store i32 %96, i32* %9, align 4\l br label %98\l}"]; + Node0x1656b60 -> Node0x1656cb0 [label="z"]; + Node0x1656cb0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%98:\l98: \l br label %24, !llvm.loop !6\l}"]; + Node0x1656cb0 -> Node0x1653270 [label="o"]; + Node0x1653600 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%99:\l99: \l %100 = load i32, i32* %7, align 4\l br label %101\l}"]; + Node0x1653600 -> Node0x16578e0 [label="z"]; + Node0x16578e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%101:\l101: \l %102 = add nsw i32 %100, 1\l br label %103\l}"]; + Node0x16578e0 -> Node0x1657a30 [label="z"]; + Node0x1657a30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%103:\l103: \l store i32 %102, i32* %11, align 4\l br label %104\l}"]; + Node0x1657a30 -> Node0x1657b80 [label="z"]; + Node0x1657b80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%104:\l104: \l br label %105\l}"]; + Node0x1657b80 -> Node0x1657c40 [label="z"]; + Node0x1657c40 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%105:\l105: \l %106 = load i32, i32* %11, align 4\l br label %107\l}"]; + Node0x1657c40 -> Node0x1657d70 [label="p"]; + Node0x1657d70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%107:\l107: \l %108 = icmp slt i32 %106, 1000\l br label %109\l}"]; + Node0x1657d70 -> Node0x1657ec0 [label="c"]; + Node0x1657ec0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%109:\l109: \l br i1 %108, label %110, label %128\l|{T|F}}"]; + Node0x1657ec0 -> Node0x1657f80 [label="k"]; + Node0x1657ec0 -> Node0x1657fd0 [label="k"]; + Node0x1657f80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%110:\l110: \l %111 = load i32, i32* %11, align 4\l br label %112\l}"]; + Node0x1657f80 -> Node0x1658180 [label="r"]; + Node0x1658180 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%112:\l112: \l %113 = sext i32 %111 to i64\l br label %114\l}"]; + Node0x1658180 -> Node0x16582b0 [label="u"]; + Node0x16582b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%114:\l114: \l %115 = getelementptr inbounds i32, i32* %18, i64 %113\l br label %116\l}"]; + Node0x16582b0 -> Node0x1658410 [label="n"]; + Node0x1658410 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%116:\l116: \l %117 = load i32, i32* %115, align 4\l br label %118\l}"]; + Node0x1658410 -> Node0x1658540 [label="z"]; + Node0x1658540 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%118:\l118: \l %119 = sub nsw i32 %117, 17\l br label %120\l}"]; + Node0x1658540 -> Node0x1658690 [label="z"]; + Node0x1658690 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%120:\l120: \l store i32 %119, i32* %115, align 4\l br label %121\l}"]; + Node0x1658690 -> Node0x16587e0 [label="z"]; + Node0x16587e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%121:\l121: \l br label %122\l}"]; + Node0x16587e0 -> Node0x16588a0 [label="z"]; + Node0x16588a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%122:\l122: \l %123 = load i32, i32* %11, align 4\l br label %124\l}"]; + Node0x16588a0 -> Node0x16589d0 [label="z"]; + Node0x16589d0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%124:\l124: \l %125 = add nsw i32 %123, 1\l br label %126\l}"]; + Node0x16589d0 -> Node0x1658b20 [label="z"]; + Node0x1658b20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%126:\l126: \l store i32 %125, i32* %11, align 4\l br label %127\l}"]; + Node0x1658b20 -> Node0x1658c70 [label="z"]; + Node0x1658c70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#bb1b2c70",label="{%127:\l127: \l br label %105, !llvm.loop !8\l}"]; + Node0x1658c70 -> Node0x1657c40 [label="o"]; + Node0x1657fd0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%128:\l128: \l store i32 0, i32* %1, align 4\l br label %129\l}"]; + Node0x1657fd0 -> Node0x1659700 [label="z"]; + Node0x1659700 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%129:\l129: \l %130 = load i8*, i8** %5, align 8\l br label %131\l}"]; + Node0x1659700 -> Node0x1659830 [label="a"]; + Node0x1659830 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%131:\l131: \l call void @llvm.stackrestore(i8* %130)\l br label %132\l}"]; + Node0x1659830 -> Node0x1659b50 [label="e"]; + Node0x1659b50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%132:\l132: \l %133 = load i32, i32* %1, align 4\l br label %134\l}"]; + Node0x1659b50 -> Node0x1659c80 [label="z"]; + Node0x1659c80 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#b9d0f970",label="{%134:\l134: \l ret i32 %133\l}"]; + Node0x1659c80 -> Nodeendmain [label="m"]; + Nodeendmain [shape=record, label="END"]; + Nodebeginmain -> Nodeendmain [label="z"]; +} diff --git a/front/tests/visual_iguana/input.txt b/front/tests/visual_iguana/input.txt new file mode 100644 index 0000000..fee7452 --- /dev/null +++ b/front/tests/visual_iguana/input.txt @@ -0,0 +1 @@ +(19, r, 20) (20, u, 21) (21, n, 22) (22, z, 23) (23, z, 24) (24, z, 25) (25, r, 26) (26, u, 27) (27, n, 28) (28, z, 29) (29, c, 30) (30, k, 37) (37, epsilon, 37) (37, r, 38) (38, u, 39) (39, f, 40) (40, z, 41) (41, z, 42) (42, r, 43) (43, u, 44) (44, n, 45) (45, z, 46) (46, z, 47) (47, c, 48) (48, k, 49) (49, epsilon, 49) (49, r, 50) (50, u, 51) (51, n, 52) (52, z, 53) (53, z, 54) (54, z, 55) (55, z, 56) (56, z, 57) (57, z, 58) (58, z, 59) (59, o, 16) (16, p, 17) (17, c, 18) (18, k, 60) (60, z, 61) (61, z, 62) (62, z, 63) (63, z, 64) (64, p, 65) (65, c, 66) (66, k, 67) (67, epsilon, 67) (67, r, 68) (68, u, 69) (69, n, 70) (70, z, 71) (71, z, 72) (72, z, 73) (73, z, 74) (74, z, 75) (75, z, 76) (76, z, 77) (77, o, 64) \ No newline at end of file diff --git a/front/tests/visual_iguana/redmarkoutfile1.png b/front/tests/visual_iguana/redmarkoutfile1.png new file mode 100644 index 0000000..5879d04 Binary files /dev/null and b/front/tests/visual_iguana/redmarkoutfile1.png differ diff --git a/front/tests/visual_iguana/redmarkoutfile2.png b/front/tests/visual_iguana/redmarkoutfile2.png new file mode 100644 index 0000000..9b38a0a Binary files /dev/null and b/front/tests/visual_iguana/redmarkoutfile2.png differ diff --git a/front/tests/visual_iguana/redmarkoutfile3.png b/front/tests/visual_iguana/redmarkoutfile3.png new file mode 100644 index 0000000..0b435c7 Binary files /dev/null and b/front/tests/visual_iguana/redmarkoutfile3.png differ diff --git a/front/tests/visual_iguana/redmarkoutfile4.png b/front/tests/visual_iguana/redmarkoutfile4.png new file mode 100644 index 0000000..9792dbe Binary files /dev/null and b/front/tests/visual_iguana/redmarkoutfile4.png differ diff --git a/front/tests/visual_iguana/visual_iguana.txt b/front/tests/visual_iguana/visual_iguana.txt new file mode 100644 index 0000000..77ae34f --- /dev/null +++ b/front/tests/visual_iguana/visual_iguana.txt @@ -0,0 +1 @@ +.markmainfile4.dot input.txt \ No newline at end of file diff --git a/front/transl/transl.cpp b/front/transl/transl.cpp index d329e66..8d5c176 100644 --- a/front/transl/transl.cpp +++ b/front/transl/transl.cpp @@ -2,9 +2,24 @@ #include #include #include +#include +#include #include using namespace std; +string node_transform(string st, int i) { + if (st.find("Node") != -1) { + string str = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")) + "_" + to_string(i); + st.replace(st.find("Node"), (st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node"))).length(), str); + if (st.find("-> Node") != -1) { + str = st.substr(st.find("-> Node") + 3, st.find_first_of(";") - st.find("-> Node") - 3) + "_" + to_string(i); + st.replace(st.find("-> Node") + 3, (st.substr(st.find("-> Node") + 3, st.find_first_of(";") - st.find("-> Node") - 3)).length(), str); + } + return st; + } + return st; +} + int main(int argc, char* argv[]) { int n = 0;//n - показывает, строка внутри функции или снаружи vector l;//хранит названия функций @@ -12,6 +27,7 @@ int main(int argc, char* argv[]) { vector num;//хранит, какие номера соответствуют какой функции в begin vector phi;//хранит номер тонкого блока, где есть phi vector phinum;//хранит, какие phi в какой функции + map mp; //хранит, сколько раз вызывается каждая функция int i = 0, b = 0, e = 0, pr = 0, k = 0, q = 0, c = 0, r = 0, sw = 0, u = 0, j = 0; //b, e - начало и конец подстрок; i - номера блоков/операций вообще до разбиения на тонкие блоки; q - номера блоков/операций внутри каждой функции; //pr - проверяет, соответствовует ли строка началу блока до разбиения на тонкие блоки; k - показывает, первый ли это встретившийся номер в функции; @@ -38,6 +54,7 @@ int main(int argc, char* argv[]) { e = st.find_first_of("( ", b); str = st.substr(b + 1, e - b - 1); l.push_back(str); + mp.insert(make_pair(str, 0)); n = 1; b = 0; e = 0; @@ -223,11 +240,29 @@ int main(int argc, char* argv[]) { f.close(); file.open("main"); f.open(".main.dot"); - while (getline(file, st)) f << st << endl;//добавляется содержимое dot файла функции main + n = 0; + while (getline(file, st)) { + if ((st.find("\"CFG ") == -1) && (st.find("Node") != -1)) { + n += 1; + } + if ((n == 1) && (st.find("Node") != -1)) { + str = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")); + f << "\tNodebeginmain [shape=record, label=\"BEGIN\"];" << endl; + f << "\tNodebeginmain -> " + str << endl; + } + if ((st.find("}\"") != -1) || (st.find("}") == -1)) { + f << st << endl;//добавляется содержимое dot файла функции main + str = st; + } + } + str = str.substr(str.find("Node"), str.find_first_of(": ") - str.find("Node")); + f << "\t" + str + " -> Nodeendmain;" << endl; + f << "\tNodeendmain [shape=record, label=\"END\"];" << endl; + f << "\tNodebeginmain -> Nodeendmain;" << endl; file.close(); f.close(); - fstream ODOT (".main.dot", std::ofstream::app); - vector index; + /*fstream ODOT (".main.dot", std::ofstream::app); + //vector index; for (int i = 0; i < l.size(); i++) {//сшивка - добавление содержимого dot файлов других функций (не main) s = "."; s += l[i]; @@ -238,47 +273,115 @@ int main(int argc, char* argv[]) { ODOT << "\t\tlabel = \"CFG for '" + l[i] + "' function\";" << endl; ODOT << "\t\tgraph[style=filled, bgcolor=white];" << endl; n = 0; + ODOT << "\t\tNodebegin" + l[i] + " [shape=record, label=\"BEGIN\"];" << endl; while (getline(file, st)) { - if ((st.find("\"CFG ") == -1) && (st.find("Node") != -1)) n += 1; - if (n == 1) { - index.push_back(st.substr(st.find("Node"), st.find_first_of(": ") - 1)); + if ((st.find("\"CFG ") == -1) && (st.find("Node") != -1)) { + n += 1; + } + if ((n == 1) && (st.find("Node") != -1)) { + //index.push_back(st.substr(st.find("Node"), st.find_first_of(": ") - 1)); + str = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")); + ODOT << "\t\tNodebegin" + l[i] + " -> " + str + ";" << endl; } if ((st.find("label=\"CFG") == -1) && (st.find("digraph") == -1) && - ((st.find("}\"") != -1) || (st.find("}") == -1))) + ((st.find("}\"") != -1) || (st.find("}") == -1))) { ODOT << "\t" + st << endl; + str = st; + } } + str = str.substr(str.find("Node"), str.find_first_of(": ") - str.find("Node")); + ODOT << "\t\t" + str + " -> Nodeend" + l[i] + ";" << endl; + ODOT << "\t\tNodeend" + l[i] + " [shape=record, label=\"END\"];" << endl; + ODOT << "\t\tNodebegin" + l[i] + " -> Nodeend" + l[i] + ";" << endl; ODOT << "\t}" << endl; file.close(); - remove(s.c_str()); - } else index.push_back(""); + //remove(s.c_str()); + } //else index.push_back(""); } - ODOT << "}" << endl; - ODOT.close(); + //ODOT << "}" << endl; + ODOT.close();*/ + file.open(".main.dot"); f.open("main"); i = 0; + j = 0; + s = ""; while (getline(file, st)) {//отрисовка стрелочек между функциями - f << st << endl; - f2 << st << endl; + if ((st.find("->") != -1) && (st.find(s) != -1) && (s != "")) { + f << st.substr(0, st.find_first_of("Node")) + "Nodeend" + l[j] + "_" + to_string(mp[l[j]]) + st.substr(st.find_first_of(" -> ")) << endl; + j = 0; + s = ""; + } else f << st << endl; + //f << st << endl; if (st.find("@") != -1) { b = st.find_first_of("@"); e = st.find_first_of("( ", b); str = st.substr(b + 1, e - b - 1); - while ((str != l[i]) && (i < index.size())) i += 1; - if (i != index.size()) - f << st.substr(0, st.find_first_of(": ")) + " -> " + index[i] + " [style = dotted];" << endl; + while ((str != l[i]) && (i < l.size())) i += 1;// && (i < index.size()) + if (i < l.size()) { + mp[l[i]] += 1; + f << st.substr(0, st.find_first_of(": ")) + " -> Nodebegin" + l[i] + "_" + to_string(mp[l[i]]) + ";" << endl;//[style = dotted] + s = st.substr(st.find_first_of("Node"), st.find_first_of(" :") - st.find_first_of("Node") + 1); + j = i; + } i = 0; - } + } } file.close(); f.close(); + + + + fstream DOT ("main", std::ofstream::app); + for (int i = 0; i < l.size(); i++) { + s = "."; + s += l[i]; + s += ".dot"; + if (s.find(".main.dot") == -1) { + for (int j = 1; j < mp[l[i]] + 1; j++) { + file.open(s.c_str()); + DOT << "\tsubgraph cluster_" + l[i] + "_" + to_string(j) + " {" << endl; + DOT << "\t\tlabel = \"CFG for '" + l[i] + "_" + to_string(j) + "' function\";" << endl; + DOT << "\t\tgraph[style=filled, bgcolor=white];" << endl; + n = 0; + DOT << "\t\tNodebegin" + l[i] + "_" + to_string(j) + " [shape=record, label=\"BEGIN\"];" << endl; + while (getline(file, st)) { + if ((st.find("\"CFG ") == -1) && (st.find("Node") != -1)) { + n += 1; + } + if ((n == 1) && (st.find("Node") != -1)) { + str = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")); + DOT << "\t\tNodebegin" + l[i] + "_" + to_string(j) + " -> " + str + "_" + to_string(j) + ";" << endl; + } + if ((st.find("label=\"CFG") == -1) && (st.find("digraph") == -1) && + ((st.find("}\"") != -1) || (st.find("}") == -1))) { + DOT << "\t" + node_transform(st, j) << endl; + str = st; + } + } + str = str.substr(str.find("Node"), str.find_first_of(": ") - str.find("Node")); + DOT << "\t\t" + str + "_" + to_string(j) + " -> Nodeend" + l[i] + "_" + to_string(j) + ";" << endl; + DOT << "\t\tNodeend" + l[i] + "_" + to_string(j) + " [shape=record, label=\"END\"];" << endl; + DOT << "\t\tNodebegin" + l[i] + "_" + to_string(j) + " -> Nodeend" + l[i] + "_" + to_string(j) + ";" << endl; + DOT << "\t}" << endl; + file.close(); + file.clear(); + file.seekg(0); + } + remove(s.c_str()); + } + } + DOT << "}" << endl; + DOT.close(); + file.open("main"); f.open((s1 + ".main" + s0 + ".dot").c_str());//создается окончательный dot файл while (getline(file, st)) f << st << endl; file.close(); f.close(); - system(("dot -Tps " + s1 + ".main" + s0 + ".dot -o " + s1 + "outfile" + s0 + ".ps").c_str());//визуализация графа + system(("dot -Tpng " + s1 + ".main" + s0 + ".dot -o " + s1 + "outfile" + s0 + ".png").c_str());//визуализация графа + remove((s1 + "outfile" + s0 + ".ps").c_str()); remove((s1 + ".main.dot").c_str()); remove(".main.dot"); remove("main"); diff --git a/front/transl/transl1.cpp b/front/transl/transl1.cpp new file mode 100644 index 0000000..df0700e --- /dev/null +++ b/front/transl/transl1.cpp @@ -0,0 +1,325 @@ +#include +#include +#include +#include +#include +using namespace std; + +int main(int argc, char* argv[]) { + int n = 0;//n - показывает, строка внутри функции или снаружи + vector l;//хранит названия функций + vector begin;//хранит все номера + vector num;//хранит, какие номера соответствуют какой функции в begin + vector phi;//хранит номер тонкого блока, где есть phi + vector phinum;//хранит, какие phi в какой функции + int i = 0, b = 0, e = 0, pr = 0, k = 0, q = 0, c = 0, r = 0, sw = 0, u = 0, j = 0; + //b, e - начало и конец подстрок; i - номера блоков/операций вообще до разбиения на тонкие блоки; q - номера блоков/операций внутри каждой функции; + //pr - проверяет, соответствовует ли строка началу блока до разбиения на тонкие блоки; k - показывает, первый ли это встретившийся номер в функции; + //r - количество функций; sw - есть ли switch в строке; u - количество phi-функций в каждой функции; + //j - просто нужна для хранения того, что ей присвоили, особенного смысла не имеет; c - номер строки. + std::string s, s0, s1, st, str, pred, predpred; + s = "clang -S -emit-llvm "; + s += argv[1]; + system(s.c_str()); + s = argv[1]; + s1 = s.substr(s.rfind(" ") + 1, s.rfind("/") - s.rfind(" ")); + s0 = s.substr(s.rfind("/") + 1, s.rfind(".") - s.rfind("/") - 1); + s = s0; + s += ".ll"; + ifstream file (s.c_str()); + s = s0; + s += "0.ll"; + ofstream f (s.c_str()); + num.push_back(0); + phinum.push_back(0); + while (getline(file, st)) {//1ый проход по .ll файлу, разбиение на тонкие блоки, присвоение каждому блоку и каждой операции нового номера, также учет частных случаев (switch, phi и т д) + if (st.find("define") != -1) { + b = st.find_first_of("@"); + e = st.find_first_of("( ", b); + str = st.substr(b + 1, e - b - 1); + l.push_back(str); + n = 1; + b = 0; + e = 0; + r += 1; + f << st << endl; + } + else if (n == 1) { + c += 1; + if (st != "}") { + if (st.find("preds") != -1) { + pr = c; + b = st.find_first_of(":"); + str = st.substr(0, b); + begin.push_back(q); + st.replace(0, str.size(), std::to_string(q)); + q += 1; + i += 1; + } + if ((pr == 0) && (q != 0) && (st != "") && (sw == 0)) { + f << q << ":" << endl; + q += 1; + } + if (st.find("switch") != -1) sw = 1; + b = st.find_first_of("%"); + e = st.find_first_of(",) ", b); + if (b != -1) { + if (e != -1) str = st.substr(b + 1, e - b - 1); + else str = st.substr(b + 1); + if (str.find("struct") == -1) { + k += 1; + if (b == 2) { + if (k == 1) q = atoi(str.c_str()); + begin.push_back(q); + st.replace(b + 1, str.size(), std::to_string(q)); + q += 1; + i += 1; + } + } + while ((st.find_first_of("%", e + 1) != -1) && (e != -1)) { + b = st.find_first_of("%", e + 1); + e = st.find_first_of(",) ", b); + if (b != -1) { + str = st.substr(b + 1, e - b - 1); + if (str.find("struct") == -1) { + k += 1; + } + } + } + } + f << st << endl; + if ((st.find("preds") == -1) && (st != "") && (st.find("br") == -1) && (st.find("ret") == -1) + && (st.find("unreachable") == -1) && (sw == 0)) f << " br label %" << q << endl; + if ((st.find("]") != -1) && (st.find("phi") == -1)) sw = 0; + if ((c - pr == 1) && (pr != 0)) pr = 0; + if (st.find("phi") != -1) { + phi.push_back(q - 1); + u += 1; + } + } else { + phinum.push_back(u); + num.push_back(i); + n = 0; + k = 0; + f << st << endl; + q = 0; + pr = 0; + u = 0; + } + } + else if (st.find("attributes") == -1) f << st << endl; + } + f.close(); + file.close(); + s = s0; + s += "0.ll"; + ifstream f1 (s.c_str()); + s = s0; + s += "1.ll"; + ofstream f2 (s.c_str()); + r = 0; + vector phi1(phi.size() + 1); + vector phi2(phi.size() + 1); + u = 0; + while (getline(f1, st)) {//2ой проход по .ll файлу, замена всех номеров на новые номера, также работа с phi + if (st.find("define") != -1) { + n = 1; + r += 1; + } + else if ((n == 1) && ((st.find("br label") == -1) || ((st.find("br label") != -1) && (pred.find(":") != -1)))) { + if (st != "}") { + if (st.find("preds") != -1) { + b = st.find_first_of(";"); + st = st.substr(0, b); + } + b = st.find_first_of("%"); + e = st.find_first_of(",) ]", b); + if (b != -1) { + if (e != -1) str = st.substr(b + 1, e - b - 1); + else str = st.substr(b + 1); + if (str.find("struct") == -1) { + k += 1; + if ((b == 2) && (st.find("phi") != -1)) { + for (int j = phinum[r - 1]; j < phinum[r]; j++) { + if (str == to_string(phi[j])) u = j; + } + } + if ((b > 2) && (str.find("struct") == -1)) { + if (atoi(str.c_str()) < begin[num[r - 1]]) j = atoi(str.c_str()); + else j = begin[num[r - 1] + atoi(str.c_str()) - begin[num[r - 1]]]; + if ((st.find("phi") != -1) && (st.find("]", b) == e + 1)) { + if (phi1[u] != "!") { + st.replace(b + 1, (phi1[u]).size(), phi1[u]); + phi1[u] = "!"; + } else st.replace(b + 1, (phi2[u]).size(), phi2[u]); + } else st.replace(b + 1, str.size(), to_string(j)); + } + } + while ((st.find_first_of("%", e + 1) != -1) && (e != -1)) { + b = st.find_first_of("%", e + 1); + e = st.find_first_of(",) ]", b); + if (b != -1) { + str = st.substr(b + 1, e - b - 1); + if (str.find("struct") == -1) { + if (atoi(str.c_str()) < begin[num[r - 1]]) j = atoi(str.c_str()); + else j = begin[num[r - 1] + atoi(str.c_str()) - begin[num[r - 1]]]; + if ((st.find("phi") != -1) && (st.find("]", b) == e + 1)) { + if (phi1[u] != "!") { + st.replace(b + 1, (phi1[u]).size(), phi1[u]); + phi1[u] = "!"; + } else st.replace(b + 1, (phi2[u]).size(), phi2[u]); + } else st.replace(b + 1, str.size(), to_string(j)); + } + } + } + } + } else { + n = 0; + } + } + f2 << st << endl; + for (int j = phinum[r - 1]; j < phinum[r]; j++) { + s = "%"; + s += to_string(phi[j] - 1); + if ((st.find("br") != -1) && (st.find(s) != -1)) { + if (pred.find(":") != -1) { + b = pred.find_first_of(":"); + str = pred.substr(0, b); + } else if (predpred.find(":") != -1) { + b = predpred.find_first_of(":"); + str = predpred.substr(0, b); + } + if (phi1[j] == "") phi1[j] = str; + else phi2[j] = str; + } + } + predpred = pred; + pred = st; + } + f1.close(); + f2.close(); + //конец работы с .ll файлами + //начало работы с dot файлами: их создание, сшивка в 1 файл, также удаление .ll файлов + s = "opt -dot-cfg "; + s += s0; + s += "1.ll"; + system(s.c_str()); + s = s0; + s += ".ll"; + remove(s.c_str()); + s = s0; + s += "0.ll"; + remove(s.c_str()); + s = s0; + s += "1.ll"; + remove(s.c_str()); + file.open(".main.dot"); + f.open("main"); + while (getline(file, st)) { + if ((st.find("}") == -1) || (st.find("}\"") != -1)) + f << st << endl; + } + file.close(); + f.close(); + file.open("main"); + f.open(".main.dot"); + n = 0; + while (getline(file, st)) { + if ((st.find("\"CFG ") == -1) && (st.find("Node") != -1)) { + n += 1; + } + if ((n == 1) && (st.find("Node") != -1)) { + str = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")); + f << "\tNodebeginmain [shape=record, label=\"BEGIN\"];" << endl; + f << "\tNodebeginmain -> " + str << endl; + } + if ((st.find("}\"") != -1) || (st.find("}") == -1)) { + f << st << endl;//добавляется содержимое dot файла функции main + str = st; + } + } + str = str.substr(str.find("Node"), str.find_first_of(": ") - str.find("Node")); + f << "\t" + str + " -> Nodeendmain;" << endl; + f << "\tNodeendmain [shape=record, label=\"END\"];" << endl; + f << "\tNodebeginmain -> Nodeendmain;" << endl; + file.close(); + f.close(); + fstream ODOT (".main.dot", std::ofstream::app); + //vector index; + for (int i = 0; i < l.size(); i++) {//сшивка - добавление содержимого dot файлов других функций (не main) + s = "."; + s += l[i]; + s += ".dot"; + if (s.find(".main.dot") == -1) { + file.open(s.c_str()); + ODOT << "\tsubgraph cluster_" + l[i] + " {" << endl; + ODOT << "\t\tlabel = \"CFG for '" + l[i] + "' function\";" << endl; + ODOT << "\t\tgraph[style=filled, bgcolor=white];" << endl; + n = 0; + ODOT << "\t\tNodebegin" + l[i] + " [shape=record, label=\"BEGIN\"];" << endl; + while (getline(file, st)) { + if ((st.find("\"CFG ") == -1) && (st.find("Node") != -1)) { + n += 1; + } + if ((n == 1) && (st.find("Node") != -1)) { + //index.push_back(st.substr(st.find("Node"), st.find_first_of(": ") - 1)); + str = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")); + ODOT << "\t\tNodebegin" + l[i] + " -> " + str + ";" << endl; + } + if ((st.find("label=\"CFG") == -1) && (st.find("digraph") == -1) && + ((st.find("}\"") != -1) || (st.find("}") == -1))) { + ODOT << "\t" + st << endl; + str = st; + } + } + str = str.substr(str.find("Node"), str.find_first_of(": ") - str.find("Node")); + ODOT << "\t\t" + str + " -> Nodeend" + l[i] + ";" << endl; + ODOT << "\t\tNodeend" + l[i] + " [shape=record, label=\"END\"];" << endl; + ODOT << "\t\tNodebegin" + l[i] + " -> Nodeend" + l[i] + ";" << endl; + ODOT << "\t}" << endl; + file.close(); + remove(s.c_str()); + } //else index.push_back(""); + } + ODOT << "}" << endl; + ODOT.close(); + file.open(".main.dot"); + f.open("main"); + i = 0; + j = 0; + s = ""; + while (getline(file, st)) {//отрисовка стрелочек между функциями + if ((st.find("->") != -1) && (st.find(s) != -1) && (s != "")) { + f << st.substr(0, st.find_first_of("Node")) + "Nodeend" + l[j] + st.substr(st.find_first_of(" -> ")) << endl; + j = 0; + s = ""; + } else f << st << endl; + //f << st << endl; + if (st.find("@") != -1) { + b = st.find_first_of("@"); + e = st.find_first_of("( ", b); + str = st.substr(b + 1, e - b - 1); + while ((str != l[i]) && (i < l.size())) i += 1;// && (i < index.size()) + if (i < l.size()) { + f << st.substr(0, st.find_first_of(": ")) + " -> Nodebegin" + l[i] + ";" << endl;//[style = dotted] + s = st.substr(st.find_first_of("Node"), st.find_first_of(" :") - st.find_first_of("Node") + 1); + j = i; + } + i = 0; + } + } + file.close(); + f.close(); + file.open("main"); + f.open((s1 + ".main" + s0 + ".dot").c_str());//создается окончательный dot файл + while (getline(file, st)) f << st << endl; + file.close(); + f.close(); + + system(("dot -Tpng " + s1 + ".main" + s0 + ".dot -o " + s1 + "outfile" + s0 + ".png").c_str());//визуализация графа + remove((s1 + "outfile" + s0 + ".ps").c_str()); + remove((s1 + ".main.dot").c_str()); + remove(".main.dot"); + remove("main"); + remove("transl"); +} \ No newline at end of file diff --git a/front/transl/transl_to_core.cpp b/front/transl/transl_to_core.cpp index 1ee4b33..4c1caf2 100644 --- a/front/transl/transl_to_core.cpp +++ b/front/transl/transl_to_core.cpp @@ -16,56 +16,154 @@ int main(int argc, char* argv[]) { std::string s0, s, st, s1, s2, ss; int numv, numr, n = 0; map mp; - vector tags; - tags = {"a", "b", ""}; + //vector tags; + //tags = {"a", "b", ""}; + map marknode; vector nodes; s0 = argv[1]; - s = s0.substr(s.rfind(" ") + 1); + s = s0.substr(s0.rfind(" ") + 1); ifstream file (s.c_str()); s = s0.substr(s0.rfind(" ") + 1, s0.rfind("/") - s0.rfind(" ")); ss = s; s += "graph"; s += s0.substr(s0.find(".main") + 5, s0.rfind(".") - s0.find(".main") - 5); - ofstream f (s.c_str()); + ofstream f(s.c_str()); numr = 0; numv = 0; srand(time(NULL)); while (getline(file, st)) { if (st.find("->") != -1) numr += 1; - if (st.find("Node") != -1) { - s1 = st.substr(st.find("Node"), st.find_first_of(" :") - st.find("Node") - 1); + else if (st.find("Node") != -1) { + s1 = st.substr(st.find("Node"), st.find_first_of(" :") - st.find("Node")); nodes.push_back(s1); if (mp.find(s1) == mp.end()) { mp.insert(make_pair(s1, n)); + if (st.find("{T|F}") != -1) { + marknode.insert(make_pair(s1, "if")); + } else if (st.find(" = phi ") != -1) { + marknode.insert(make_pair(s1, "phi")); + } else if (st.find("ret ") != -1) { + marknode.insert(make_pair(s1, "return")); + } else if (st.find("BEGIN") != -1) { + marknode.insert(make_pair(s1, "begin")); + } else if (st.find("END") != -1) { + marknode.insert(make_pair(s1, "end")); + } else if ((st.find("@") != -1) && (st.find("@.") == -1)) { + marknode.insert(make_pair(s1, "function")); + } else if ((st.find("%struct") != -1) && (st.find("getelementptr") != -1)) { + marknode.insert(make_pair(s1, "struct")); + } else if ((st.find("getelementptr") != -1) && ((st.substr(0, st.find("br label"))).rfind(",") > (st.substr(0, st.find("br label"))).rfind("%"))) {//переписать + marknode.insert(make_pair(s1, "address")); + } else if (st.find("getelementptr") != -1) { + marknode.insert(make_pair(s1, "mod_address")); + } else if (st.find("alloca") != -1) { + marknode.insert(make_pair(s1, "alloca")); + } else if (st.find("store") != -1) { + marknode.insert(make_pair(s1, "store")); + } else if (st.find("load") != -1) { + marknode.insert(make_pair(s1, "load")); + } else if (st.find("loop") != -1) { + marknode.insert(make_pair(s1, "loop")); + } else if (st.find("sext") != -1) { + marknode.insert(make_pair(s1, "sext")); + } else + marknode.insert(make_pair(s1, "")); n += 1; } } std::sort(nodes.begin(), nodes.end()); nodes.erase(std::unique(nodes.begin(), nodes.end()), nodes.end()); } - s = s0.substr(s.rfind("/") + 1); + //s = s0.substr(s.rfind("/") + 1); file.clear(); file.seekg(0); numv = nodes.size(); f << "1" << endl; - ifstream f1((ss + "grammatics.txt").c_str()); + s = s0.substr(s0.find(".main") + 5, s0.rfind(".") - s0.find(".main") - 5); + ifstream f1((ss + argv[2]).c_str()); while (getline(f1, st)) { f << st << endl; } f1.close(); + ofstream f2((ss + ".markmain" + s + ".dot").c_str()); f << endl; f << numv << " " << numr << endl; for (int i = 0; i < nodes.size(); i++) f << nodes[i] << " "; f << endl; - std::uniform_int_distribution dist(1, nodes.size()); + //std::uniform_int_distribution dist(1, nodes.size()); while (getline(file, st)) { if (st.find("->") != -1) { - s1 = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node") - 1); - s2 = st.substr(st.rfind("Node"), st.find_first_of(" ;[", st.rfind("Node")) - st.rfind("Node") - 1); - f << mp[s1] << " " << mp[s2] << " " << tags[dist(prng) % 3] << endl; + s1 = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")); + s2 = st.substr(st.rfind("Node"), st.find_first_of(" ;[", st.rfind("Node")) - st.rfind("Node")); + if (marknode[s1] == "loop") { + s = "o"; + marknode[s2] = "loopfirst"; + } + } + } + file.clear(); + file.seekg(0); + while (getline(file, st)) { + if (st.find("->") != -1) { + s1 = st.substr(st.find("Node"), st.find_first_of(": ") - st.find("Node")); + s2 = st.substr(st.rfind("Node"), st.find_first_of(" ;[", st.rfind("Node")) - st.rfind("Node")); + if ((marknode[s1] == "address") && (marknode[s2] == "mod_address")) { + s = "d"; + } else if (marknode[s1] == "loopfirst") { + s = "p"; + } else if ((marknode[s1] == "mod_address") && (marknode[s2] == "address")) { + s = "q"; + } else if (marknode[s1] == "function") { + s = "e"; + } else if ((marknode[s1] == "mod_address") && (marknode[s2] == "store")) { + s = "f"; + } else if ((marknode[s1] == "mod_address") && (marknode[s2] == "load")) { + s = "n"; + //} else if ((marknode[s1] == "address") && (marknode[s2] == "store")) { + } else if ((marknode[s1] == "sext") && (marknode[s2] == "mod_address")) { + s = "u"; + } else if ((marknode[s1] == "address") && (marknode[s2] == "load")) { + s = "t"; + } else if ((marknode[s1] == "phi") && (marknode[s2] == "phi")) { + s = "h"; + } else if ((marknode[s1] == "phi") && (marknode[s2] == "if")) { + s = "i"; + } else if (marknode[s1] == "struct") { + s = "j"; + } else if ((marknode[s1] == "if") && (marknode[s2] == "struct")) { + s = "l"; + } else if (marknode[s1] == "if") { + s = "k"; + } else if (marknode[s1] == "loop") { + s = "o"; + } else if (marknode[s2] == "function") { + s = "a"; + } else if ((marknode[s1] == "return") && (marknode[s2] == "end")) { + s = "m"; + } else if (marknode[s2] == "phi") { + s = "b"; + } else if (marknode[s2] == "if") { + s = "c"; + } else if (marknode[s1] == "phi") { + s = "g"; + } else if ((marknode[s1] == "load") && (marknode[s2] == "sext")) { + s = "r"; + } else if ((marknode[s2] == "sext") && (marknode[s1] == "mod_address")) { + s = "s"; + } else { + s = "z"; + } + f << mp[s1] << " " << mp[s2] << " " << s << endl; + //f << mp[s1] << " " << mp[s2] << " " << tags[dist(prng) % 3] << endl; + st = st.substr(0, st.find("Node")) + s1 + " -> " + s2 + " [label=\"" + s + "\"];"; + } + f2 << st << endl; } f.close(); + f2.close(); file.close(); + s = s0.substr(s0.find(".main") + 5, s0.rfind(".") - s0.find(".main") - 5); + system(("dot -Tpng " + ss + ".markmain" + s + ".dot -o " + ss + "markoutfile" + s + ".png").c_str());//визуализация графа с разметкой remove("transl_to_core"); } \ No newline at end of file diff --git a/front/transl/visual_iguana.cpp b/front/transl/visual_iguana.cpp new file mode 100644 index 0000000..e7c701a --- /dev/null +++ b/front/transl/visual_iguana.cpp @@ -0,0 +1,73 @@ +#include +#include +#include +#include +using namespace std; + +int count(string s) { + int c = 0; + for (int i = 0; i < s.size(); i++) + if (s[i] == ')') c++; + return c; +} + +int main(int argc, char* argv[]) { + string s0, s, s1, st, ss; + int n = 0; + map mp; + map mp1; + s0 = argv[1]; + s = s0.substr(s0.rfind(" ") + 1); + ifstream file(s.c_str()); + s = s0.substr(s0.rfind(" ") + 1, s0.rfind("/") - s0.rfind(" ")); + ss = s; + s += ".redgraph"; + s += s0.substr(s0.find(".markmain") + 9); + ofstream f(s.c_str()); + s1 = argv[2]; + s = s1.substr(s1.rfind(" ") + 1); + ifstream file1(s.c_str()); + + while (getline(file, st)) { + if ((st.find("Node") != -1) && (st.find("->") == -1)) { + s1 = st.substr(st.find("Node"), st.find_first_of(" :") - st.find("Node")); + if (mp1.find(s1) == mp1.end()) { + mp.insert(make_pair(n, s1)); + mp1.insert(make_pair(s1, n)); + n += 1; + } + } + } + + getline(file1, st); + int k = count(st); + int b[k], e[k], i = 0; + while (st.find("(") != -1) { + b[i] = atoi((st.substr(st.find("(") + 1, st.find(",") - st.find("(") - 1)).c_str()); + s = st.substr(st.find(",") + 1); + e[i] = atoi((s.substr(s.find(",") + 1, s.find(")") - s.find(",") - 1)).c_str()); + i += 1; + st = st.substr(st.find(")") + 1); + } + + file.clear(); + file.seekg(0); + + while (getline(file, st)) { + for (i = 0; i < k; i++) { + if ((st.find(mp[b[i]]) != -1) && (st.find(mp[e[i]]) != -1)) { + st = st.substr(0, st.size() - 1); + st += " [color = \"red\"];"; + } + } + f << st << endl; + } + + s = s0.substr(s0.find(".markmain") + 9); + system(("dot -Tpng " + ss + ".redgraph" + s + " -o " + ss + "redmarkout" + s.substr(0, s.size() - 4) + ".png").c_str()); + remove((ss + ".redgraph" + s).c_str()); + file1.close(); + file.close(); + f.close(); + return 0; +} \ No newline at end of file