blob: 56da73fc0a6b84d2066c71309df38b6ffc00bb31 [file] [log] [blame] [raw]
{
"asm": [
{
"text": "__cxx_global_var_init: # @__cxx_global_var_init",
"source": null
},
{
"text": " pushq %rax",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": " movl std::__ioinit, %edi",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": " callq std::ios_base::Init::Init()",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": " movl std::ios_base::Init::~Init(), %edi",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": " movl std::__ioinit, %esi",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": " movl $__dso_handle, %edx",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": " popq %rax",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": " jmp __cxa_atexit # TAILCALL",
"source": {
"file": "/usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0/../../../../include/c++/7.2.0/ \"iostream\"",
"line": 74
}
},
{
"text": "",
"source": null
},
{
"text": ".LCPI1_0:",
"source": null
},
{
"text": " .quad 4648342504644416635 # double 583.36000000000001",
"source": null
},
{
"text": "foo(int, double, float): # @foo(int, double, float)",
"source": null
},
{
"text": " movl $583, %eax # imm = 0x247",
"source": {
"file": null,
"line": 5
}
},
{
"text": " movsd .LCPI1_0(%rip), %xmm2 # xmm2 = mem[0],zero",
"source": {
"file": null,
"line": 7
}
},
{
"text": " ucomisd %xmm0, %xmm2",
"source": {
"file": null,
"line": 7
}
},
{
"text": " jbe .LBB1_6",
"source": {
"file": null,
"line": 7
}
},
{
"text": " leal (%rdi,%rdi,4), %eax",
"source": {
"file": null,
"line": 8
}
},
{
"text": " xorps %xmm2, %xmm2",
"source": {
"file": null,
"line": 9
}
},
{
"text": " cvtss2sd %xmm1, %xmm2",
"source": {
"file": null,
"line": 9
}
},
{
"text": " cvtsi2sdl %eax, %xmm3",
"source": {
"file": null,
"line": 9
}
},
{
"text": " mulsd %xmm0, %xmm3",
"source": {
"file": null,
"line": 9
}
},
{
"text": " ucomisd %xmm3, %xmm2",
"source": {
"file": null,
"line": 9
}
},
{
"text": " jbe .LBB1_5",
"source": {
"file": null,
"line": 9
}
},
{
"text": " movl %eax, %ecx",
"source": {
"file": null,
"line": 10
}
},
{
"text": " imull %edi, %ecx",
"source": {
"file": null,
"line": 10
}
},
{
"text": " testl %ecx, %ecx",
"source": {
"file": null,
"line": 10
}
},
{
"text": " jle .LBB1_6",
"source": {
"file": null,
"line": 10
}
},
{
"text": " xorl %ecx, %ecx",
"source": {
"file": null,
"line": 10
}
},
{
"text": ".LBB1_4: # =>This Inner Loop Header: Depth=1",
"source": null
},
{
"text": " addl %eax, %eax",
"source": {
"file": null,
"line": 11
}
},
{
"text": " xorps %xmm0, %xmm0",
"source": {
"file": null,
"line": 12
}
},
{
"text": " cvtsi2ssl %eax, %xmm0",
"source": {
"file": null,
"line": 12
}
},
{
"text": " movaps %xmm0, %xmm2",
"source": {
"file": null,
"line": 12
}
},
{
"text": " subss %xmm1, %xmm2",
"source": {
"file": null,
"line": 12
}
},
{
"text": " mulss %xmm0, %xmm2",
"source": {
"file": null,
"line": 12
}
},
{
"text": " cvttss2si %xmm2, %eax",
"source": {
"file": null,
"line": 12
}
},
{
"text": " incl %ecx",
"source": {
"file": null,
"line": 10
}
},
{
"text": " movl %eax, %edx",
"source": {
"file": null,
"line": 10
}
},
{
"text": " imull %edi, %edx",
"source": {
"file": null,
"line": 10
}
},
{
"text": " cmpl %edx, %ecx",
"source": {
"file": null,
"line": 10
}
},
{
"text": " jl .LBB1_4",
"source": {
"file": null,
"line": 10
}
},
{
"text": " jmp .LBB1_6",
"source": {
"file": null,
"line": 10
}
},
{
"text": ".LBB1_5:",
"source": null
},
{
"text": " cvttss2si %xmm1, %eax",
"source": {
"file": null,
"line": 17
}
},
{
"text": ".LBB1_6:",
"source": null
},
{
"text": " retq",
"source": {
"file": null,
"line": 22
}
},
{
"text": "",
"source": null
},
{
"text": "_GLOBAL__sub_I_example.cpp: # @_GLOBAL__sub_I_example.cpp",
"source": null
},
{
"text": " jmp __cxx_global_var_init # TAILCALL",
"source": {
"file": null,
"line": 0
}
},
{
"text": "",
"source": null
},
{
"text": "",
"source": null
},
{
"text": "",
"source": null
}
],
"cfg": {
"__cxx_global_var_init:": {
"nodes": [
{
"id": "__cxx_global_var_init:",
"label": "__cxx_global_var_init:\n pushq %rax\n movl std::__ioinit, %edi\n callq std::ios_base::Init::Init()\n movl std::ios_base::Init::~Init(), %edi\n movl std::__ioinit, %esi\n movl $__dso_handle, %edx\n popq %rax\n jmp __cxa_atexit",
"color": "#99ccff",
"shape": "box"
}
],
"edges": [
{
"from": "__cxx_global_var_init:",
"to": "null:",
"arrows": "to",
"color": "blue"
}
]
},
"foo(int, double, float):": {
"nodes": [
{
"id": "foo(int, double, float):",
"label": "foo(int, double, float):\n movl $583, %eax\n movsd .LCPI1_0(%rip), %xmm2\n ucomisd %xmm0, %xmm2\n jbe .LBB1_6",
"color": "#99ccff",
"shape": "box"
},
{
"id": "foo(int, double, float):@14",
"label": "foo(int, double, float):@14\n leal (%rdi,%rdi,4), %eax\n xorps %xmm2, %xmm2\n cvtss2sd %xmm1, %xmm2\n cvtsi2sdl %eax, %xmm3\n mulsd %xmm0, %xmm3\n ucomisd %xmm3, %xmm2\n jbe .LBB1_5",
"color": "#99ccff",
"shape": "box"
},
{
"id": "foo(int, double, float):@21",
"label": "foo(int, double, float):@21\n movl %eax, %ecx\n imull %edi, %ecx\n testl %ecx, %ecx\n jle .LBB1_6",
"color": "#99ccff",
"shape": "box"
},
{
"id": "foo(int, double, float):@25",
"label": "foo(int, double, float):@25\n xorl %ecx, %ecx",
"color": "#99ccff",
"shape": "box"
},
{
"id": ".LBB1_4:",
"label": ".LBB1_4:\n addl %eax, %eax\n xorps %xmm0, %xmm0\n cvtsi2ssl %eax, %xmm0\n movaps %xmm0, %xmm2\n subss %xmm1, %xmm2\n mulss %xmm0, %xmm2\n cvttss2si %xmm2, %eax\n incl %ecx\n movl %eax, %edx\n imull %edi, %edx\n cmpl %edx, %ecx\n jl .LBB1_4",
"color": "#99ccff",
"shape": "box"
},
{
"id": ".LBB1_4:@39",
"label": ".LBB1_4:@39\n jmp .LBB1_6",
"color": "#99ccff",
"shape": "box"
},
{
"id": ".LBB1_5:",
"label": ".LBB1_5:\n cvttss2si %xmm1, %eax",
"color": "#99ccff",
"shape": "box"
},
{
"id": ".LBB1_6:",
"label": ".LBB1_6:\n retq",
"color": "#99ccff",
"shape": "box"
}
],
"edges": [
{
"from": "foo(int, double, float):",
"to": ".LBB1_6:",
"arrows": "to",
"color": "green"
},
{
"from": "foo(int, double, float):",
"to": "foo(int, double, float):@14",
"arrows": "to",
"color": "red"
},
{
"from": "foo(int, double, float):@14",
"to": ".LBB1_5:",
"arrows": "to",
"color": "green"
},
{
"from": "foo(int, double, float):@14",
"to": "foo(int, double, float):@21",
"arrows": "to",
"color": "red"
},
{
"from": "foo(int, double, float):@21",
"to": ".LBB1_6:",
"arrows": "to",
"color": "green"
},
{
"from": "foo(int, double, float):@21",
"to": "foo(int, double, float):@25",
"arrows": "to",
"color": "red"
},
{
"from": "foo(int, double, float):@25",
"to": ".LBB1_4:",
"arrows": "to",
"color": "grey"
},
{
"from": ".LBB1_4:",
"to": ".LBB1_4:",
"arrows": "to",
"color": "green"
},
{
"from": ".LBB1_4:",
"to": ".LBB1_4:@39",
"arrows": "to",
"color": "red"
},
{
"from": ".LBB1_4:@39",
"to": ".LBB1_6:",
"arrows": "to",
"color": "blue"
},
{
"from": ".LBB1_5:",
"to": ".LBB1_6:",
"arrows": "to",
"color": "grey"
}
]
},
"_GLOBAL__sub_I_example.cpp:": {
"nodes": [
{
"id": "_GLOBAL__sub_I_example.cpp:",
"label": "_GLOBAL__sub_I_example.cpp:\n jmp __cxx_global_var_init",
"color": "#99ccff",
"shape": "box"
}
],
"edges": [
{
"from": "_GLOBAL__sub_I_example.cpp:",
"to": "null:",
"arrows": "to",
"color": "blue"
}
]
}
}
}