Files
compiler-explorer/test/cfg-cases/cfg-python.basic2.json
2025-07-01 21:49:20 +03:00

647 lines
20 KiB
JSON
Generated

{
"asm": [
{
"text": "Function #0",
"source": {
"line": null,
"file": null
}
},
{
"text": " 2 0 RESUME 0",
"source": {
"line": 2,
"file": null
}
},
{
"text": " 3 2 LOAD_GLOBAL 0 (os)",
"source": {
"line": 3,
"file": null
}
},
{
"text": " 12 LOAD_ATTR 2 (path)",
"source": {
"line": 3,
"file": null
}
},
{
"text": " 32 LOAD_ATTR 5 (NULL|self + exists)",
"source": {
"line": 3,
"file": null
}
},
{
"text": " 52 LOAD_CONST 1 ('power/.complete-precache')",
"source": {
"line": 3,
"file": null
}
},
{
"text": " 54 CALL 1",
"source": {
"line": 3,
"file": null
}
},
{
"text": " 62 POP_JUMP_IF_TRUE 10 (to 84)",
"source": {
"line": 3,
"file": null
}
},
{
"text": " 4 64 LOAD_GLOBAL 7 (NULL + precache)",
"source": {
"line": 4,
"file": null
}
},
{
"text": " 74 CALL 0",
"source": {
"line": 4,
"file": null
}
},
{
"text": " 82 POP_TOP",
"source": {
"line": 4,
"file": null
}
},
{
"text": " 6 >> 84 LOAD_GLOBAL 9 (NULL + Path)",
"source": {
"line": 6,
"file": null
}
},
{
"text": " 94 LOAD_CONST 2 ('power')",
"source": {
"line": 6,
"file": null
}
},
{
"text": " 96 CALL 1",
"source": {
"line": 6,
"file": null
}
},
{
"text": " 104 STORE_FAST 0 (path)",
"source": {
"line": 6,
"file": null
}
},
{
"text": " 8 106 LOAD_FAST 0 (path)",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 108 LOAD_ATTR 11 (NULL|self + glob)",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 128 LOAD_CONST 3 ('*.html')",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 130 CALL 1",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 138 GET_ITER",
"source": {
"line": 8,
"file": null
}
},
{
"text": " >> 140 FOR_ITER 98 (to 340)",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 144 STORE_FAST 1 (page)",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 9 146 LOAD_FAST 1 (page)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 148 LOAD_ATTR 13 (NULL|self + absolute)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 168 CALL 0",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 176 LOAD_ATTR 15 (NULL|self + open)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 196 LOAD_CONST 4 ('r')",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 198 CALL 1",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 206 BEFORE_WITH",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 208 STORE_FAST 2 (fp)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 10 210 LOAD_GLOBAL 17 (NULL + BeautifulSoup)",
"source": {
"line": 10,
"file": null
}
},
{
"text": " 220 LOAD_FAST 2 (fp)",
"source": {
"line": 10,
"file": null
}
},
{
"text": " 222 LOAD_ATTR 19 (NULL|self + read)",
"source": {
"line": 10,
"file": null
}
},
{
"text": " 242 CALL 0",
"source": {
"line": 10,
"file": null
}
},
{
"text": " 250 LOAD_CONST 5 ('html.parser')",
"source": {
"line": 10,
"file": null
}
},
{
"text": " 252 CALL 2",
"source": {
"line": 10,
"file": null
}
},
{
"text": " 260 STORE_FAST 3 (soup)",
"source": {
"line": 10,
"file": null
}
},
{
"text": " 11 262 LOAD_GLOBAL 21 (NULL + _cleanup)",
"source": {
"line": 11,
"file": null
}
},
{
"text": " 272 LOAD_FAST 3 (soup)",
"source": {
"line": 11,
"file": null
}
},
{
"text": " 274 CALL 1",
"source": {
"line": 11,
"file": null
}
},
{
"text": " 282 STORE_FAST 4 (clean_soup)",
"source": {
"line": 11,
"file": null
}
},
{
"text": " 12 284 LOAD_FAST 4 (clean_soup)",
"source": {
"line": 12,
"file": null
}
},
{
"text": " 286 GET_ITER",
"source": {
"line": 12,
"file": null
}
},
{
"text": " >> 288 FOR_ITER 13 (to 318)",
"source": {
"line": 12,
"file": null
}
},
{
"text": " 292 STORE_FAST 5 (tag)",
"source": {
"line": 12,
"file": null
}
},
{
"text": " 13 294 LOAD_GLOBAL 23 (NULL + print)",
"source": {
"line": 13,
"file": null
}
},
{
"text": " 304 LOAD_FAST 5 (tag)",
"source": {
"line": 13,
"file": null
}
},
{
"text": " 306 CALL 1",
"source": {
"line": 13,
"file": null
}
},
{
"text": " 314 POP_TOP",
"source": {
"line": 13,
"file": null
}
},
{
"text": " 316 JUMP_BACKWARD 15 (to 288)",
"source": {
"line": 13,
"file": null
}
},
{
"text": " 12 >> 318 END_FOR",
"source": {
"line": 12,
"file": null
}
},
{
"text": " 320 NOP",
"source": {
"line": 12,
"file": null
}
},
{
"text": " 9 322 LOAD_CONST 0 (None)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 324 LOAD_CONST 0 (None)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 326 LOAD_CONST 0 (None)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 328 CALL 2",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 336 POP_TOP",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 338 JUMP_BACKWARD 100 (to 140)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 8 >> 340 END_FOR",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 342 RETURN_CONST 0 (None)",
"source": {
"line": 8,
"file": null
}
},
{
"text": " 9 >> 344 PUSH_EXC_INFO",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 346 WITH_EXCEPT_START",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 348 POP_JUMP_IF_TRUE 1 (to 352)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 350 RERAISE 2",
"source": {
"line": 9,
"file": null
}
},
{
"text": " >> 352 POP_TOP",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 354 POP_EXCEPT",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 356 POP_TOP",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 358 POP_TOP",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 360 JUMP_BACKWARD 111 (to 140)",
"source": {
"line": 9,
"file": null
}
},
{
"text": " >> 362 COPY 3",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 364 POP_EXCEPT",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 366 RERAISE 1",
"source": {
"line": 9,
"file": null
}
},
{
"text": "ExceptionTable:",
"source": {
"line": 9,
"file": null
}
},
{
"text": " 208 to 318 -> 344 [2] lasti",
"source": {
"line": 208,
"file": null
}
},
{
"text": " 344 to 352 -> 362 [4] lasti",
"source": {
"line": 344,
"file": null
}
}
],
"cfg": {
"Function #0": {
"nodes": [
{
"id": "Function #0",
"label": "Function #0:\n 2 0 RESUME 0\n 3 2 LOAD_GLOBAL 0 (os)\n 12 LOAD_ATTR 2 (path)\n 32 LOAD_ATTR 5 (NULL|self + exists)\n 52 LOAD_CONST 1 ('power/.complete-precache')\n 54 CALL 1\n 62 POP_JUMP_IF_TRUE 10 (to 84)"
},
{
"id": "64",
"label": "64:\n 4 64 LOAD_GLOBAL 7 (NULL + precache)\n 74 CALL 0\n 82 POP_TOP"
},
{
"id": "84",
"label": "84:\n 6 >> 84 LOAD_GLOBAL 9 (NULL + Path)\n 94 LOAD_CONST 2 ('power')\n 96 CALL 1\n 104 STORE_FAST 0 (path)\n 8 106 LOAD_FAST 0 (path)\n 108 LOAD_ATTR 11 (NULL|self + glob)\n 128 LOAD_CONST 3 ('*.html')\n 130 CALL 1\n 138 GET_ITER"
},
{
"id": "140",
"label": "140:\n >> 140 FOR_ITER 98 (to 340)\n 144 STORE_FAST 1 (page)\n 9 146 LOAD_FAST 1 (page)\n 148 LOAD_ATTR 13 (NULL|self + absolute)\n 168 CALL 0\n 176 LOAD_ATTR 15 (NULL|self + open)\n 196 LOAD_CONST 4 ('r')\n 198 CALL 1\n 206 BEFORE_WITH\n 208 STORE_FAST 2 (fp)\n 10 210 LOAD_GLOBAL 17 (NULL + BeautifulSoup)\n 220 LOAD_FAST 2 (fp)\n 222 LOAD_ATTR 19 (NULL|self + read)\n 242 CALL 0\n 250 LOAD_CONST 5 ('html.parser')\n 252 CALL 2\n 260 STORE_FAST 3 (soup)\n 11 262 LOAD_GLOBAL 21 (NULL + _cleanup)\n 272 LOAD_FAST 3 (soup)\n 274 CALL 1\n 282 STORE_FAST 4 (clean_soup)\n 12 284 LOAD_FAST 4 (clean_soup)\n 286 GET_ITER"
},
{
"id": "288",
"label": "288:\n >> 288 FOR_ITER 13 (to 318)\n 292 STORE_FAST 5 (tag)\n 13 294 LOAD_GLOBAL 23 (NULL + print)\n 304 LOAD_FAST 5 (tag)\n 306 CALL 1\n 314 POP_TOP\n 316 JUMP_BACKWARD 15 (to 288)"
},
{
"id": "318",
"label": "318:\n 12 >> 318 END_FOR\n 320 NOP\n 9 322 LOAD_CONST 0 (None)\n 324 LOAD_CONST 0 (None)\n 326 LOAD_CONST 0 (None)\n 328 CALL 2\n 336 POP_TOP\n 338 JUMP_BACKWARD 100 (to 140)"
},
{
"id": "340",
"label": "340:\n 8 >> 340 END_FOR\n 342 RETURN_CONST 0 (None)"
},
{
"id": "344",
"label": "344:\n 9 >> 344 PUSH_EXC_INFO\n 346 WITH_EXCEPT_START\n 348 POP_JUMP_IF_TRUE 1 (to 352)"
},
{
"id": "350",
"label": "350:\n 350 RERAISE 2"
},
{
"id": "352",
"label": "352:\n >> 352 POP_TOP\n 354 POP_EXCEPT\n 356 POP_TOP\n 358 POP_TOP\n 360 JUMP_BACKWARD 111 (to 140)"
},
{
"id": "362",
"label": "362:\n >> 362 COPY 3\n 364 POP_EXCEPT\n 366 RERAISE 1\nExceptionTable:\n 208 to 318 -> 344 [2] lasti\n 344 to 352 -> 362 [4] lasti"
}
],
"edges": [
{
"from": "Function #0",
"to": "84",
"arrows": "to",
"color": "green"
},
{
"from": "Function #0",
"to": "64",
"arrows": "to",
"color": "red"
},
{
"from": "64",
"to": "84",
"arrows": "to",
"color": "grey"
},
{
"from": "84",
"to": "140",
"arrows": "to",
"color": "grey"
},
{
"from": "140",
"to": "288",
"arrows": "to",
"color": "grey"
},
{
"from": "288",
"to": "288",
"arrows": "to",
"color": "blue"
},
{
"from": "318",
"to": "140",
"arrows": "to",
"color": "blue"
},
{
"from": "344",
"to": "352",
"arrows": "to",
"color": "green"
},
{
"from": "344",
"to": "350",
"arrows": "to",
"color": "red"
},
{
"from": "350",
"to": "352",
"arrows": "to",
"color": "grey"
},
{
"from": "352",
"to": "140",
"arrows": "to",
"color": "blue"
}
]
}
}
}