faster-cpython / ideas

1.67k stars 49 forks source link

Benchmarks in production applications #102

Open pablogsal opened 2 years ago

pablogsal commented 2 years ago

After some talk with @gvanrossum we discuss the possibility of gathering benchmarks from big production-grade applications. I talked with my employer (Bloomberg) and we have a couple of very large, performance-critical Python applications we could use as a performance target (as another source of data). I discussed the possibility of getting some engineer hours from the teams in charge of these applications for helping to build some kind of automated system that allows running some benchmark based on production data with different versions of CPython (so we can compare different commits in the main branch or for different proposals).

I open this issue to gather first what kind of "requirements" or data are we interested in so we can talk internally on how to prepare and build this. For instance, are we just looking at "time it takes per request" or "time per opcode" or something like that.

As a note, the code of the application itself cannot be made public for obvious reasons but (after checking with the legal department) we can possibly discuss the general nature of the applications if there are questions.

gvanrossum commented 2 years ago

This is great! @markshannon will write something about the kinds of numbers we'd like to see.

markshannon commented 2 years ago

I think there are a few things that would be useful.

pablogsal commented 2 years ago

@markshannon For the perf breakdown you means something like % of every opcode?

gvanrossum commented 2 years ago

Here's a progress report from @pablogsal:

  • I talked with legal and other related departments and this aspect is already sorted out. We are still pending a talk with CTO, but I don't expect anything relevant from them.

  • We already have identified parts of the application that are big enough and critical enough to provide good benchmark candidates.

  • Currently we are working on what's going to be the most annoying part: there are many dependencies of this application that don't work on the current main branch due to the following:

  • Lack of wheels for 3.11.

  • Cython not working for 3.11.

  • Changes to the C-API

Also, there are some internal dependencies in Bloomberg packages that we need to ensure that also work on main.

We are currently investigating what's the best way to obtain something that we can benchmark without having to fix all of these or if we can substitute those dependencies for other pure python ones

  • When this is sorted, we want to make an investigation into the stability of the benchmarks to ensure we are not going to have lot of noise. The application is big enough that although there is no big I/O on the middle, is not trivial to know how stable the benchmarks are.

  • Once all this is sorted, we will hook this up to pyperformance for easy testing of new versions.

As you can see, we are progressing, but the biggest pain is going to be figuring out that this works for 3.11, which is a bit of packaging hell, but I think we will get there.

markshannon commented 2 years ago

@markshannon For the perf breakdown you means something like % of every opcode?

No. Just the usual perf output: %time in each C function, etc.

domik82 commented 1 year ago

Hi,

I spotted this project and I have a thought - it was said that there is a need for a "production" like application. I wonder - maybe it would be worth also using https://github.com/locustio/locust framework as a reference point.

This is quite a popular framework for doing performance tests - an alternative for JMeter / Gatling / k6.

It has master/worker concept and uses requests/urllib3 | gevents | ZMQ. So I guess "normal" usage of the basic libs. Apart from that there would be some "basic" code usage of lists etc.

People might add their own code on top of it - like here is a bunch of plugins - https://github.com/SvenskaSpel/locust-plugins My team has own code to send stats to InfluxDB or process data on websockets.

I guess any optimization in the usage of libraries underneath like requests/SSL will bring gains that would be visible as the possibility to generate more Virtual Users per worker/CPU. Normally when too many Virtual Users are generated on a single CPU - it will get exhausted and the context switch will affect response time giving unrealistic values. This is the point when more workers have to be added to the pool.

This could work hand in hand with some very basic Flask application that would just serve as a testing point and return " hello world" - although you could embed some "real code" underneath to have a more realistic scenario of application usage. I can imagine it could save/get data using Mongo or call simple SQL with some other DB. The logs would interact with disk giving you and I/O stats.

Depending on the scenario you could observe - CPU usage on Locust side - with same load and optimization usage should drop. At the same time optimization on the server side will give probably a slightly higher RPS and/or faster response time to the user - it is also possible that CPU usage will change.

I'm not sure how memory allocation would change - I guess driver will be the number of concurrent sessions.

I'm not sure if this is something that you are looking for.

gvanrossum commented 1 year ago

It looks like Locust is mainly intended for app developers to be able to create flexible testing scenarios for their web apps (I presume by creating synthetic loads). That's not exactly what we're looking for here -- we're looking for apps that are already developed for which we can measure their performance under a load already defined. So if you have a particular app that you don't mind sharing and you have developed a Locust-based synthetic load for it, we would love to be able to compare how your app performs under Python 3.10 and 3.11. But if you have some other way of stress-testing your app we would be just as happy -- as long as your app can run under 3.10 and 3.11 (or, hopefully, what's in main, but I don't want to press my luck :-).

utkarshgupta137 commented 1 year ago

It looks like Locust is mainly intended for app developers to be able to create flexible testing scenarios for their web apps (I presume by creating synthetic loads). That's not exactly what we're looking for here -- we're looking for apps that are already developed for which we can measure their performance under a load already defined. So if you have a particular app that you don't mind sharing and you have developed a Locust-based synthetic load for it, we would love to be able to compare how your app performs under Python 3.10 and 3.11. But if you have some other way of stress-testing your app we would be just as happy -- as long as your app can run under 3.10 and 3.11 (or, hopefully, what's in main, but I don't want to press my luck :-).

We have a FastAPI microservice (py3.10) in production for which we've developed tests in locust to repeat the requests we get in production. It uses two redis clusters, queries solr using aiohttp, and finally queries a model on a (different) Tensorflow Serving VM via grpcio. All of these tasks are async & it also has a few list, dict, & NumPy ops. I think I should be able to run it with py3.11 too. I don't think I can share the code verbatim, but I can perform benchmarks on isolated VMs & share a few critical sections. Would you be interested in benchmarks of such an app?

gvanrossum commented 1 year ago

I would be super interested if you could do those benchmarks! In particular comparing 3.10 and 3.11 in a real world app would be huge. I am prepared to be disappointed, because usually real-world performance is not just about CPU usage of the language the main app is written in... But nevertheless I would love to hear from you.

utkarshgupta137 commented 1 year ago

I would be super interested if you could do those benchmarks! In particular comparing 3.10 and 3.11 in a real world app would be huge. I am prepared to be disappointed, because usually real-world performance is not just about CPU usage of the language the main app is written in... But nevertheless I would love to hear from you.

All times are in milliseconds.

Python 3.10.7: Mean: 33 Median: 23-24 (mostly 23) 90%: 41 95%: 57-62 99%: 200

Python 3.11.0rc2 Mean: 32 Median: 21-22 (mostly 22) 90%: 39 95%: 54-58 99%: 190

Memory usage was almost the same, but CPU usage looked slightly lower. But I can't be more specific without a graph.

Nonetheless, this is an impressive result considering that this service is very database intensive (Around 4-10 redis gets, 1-6 redis sets, 1-5 solr queries, & 1 TF serving call). But it also has a lot of list & dict comprehensions as well as multiple dicts with 700K & 1M elements, which I think is responsible for the performance improvement.

I'll see if I can share the source code by obfuscating some parts. It might be better if I replace the database calls completely with sleep so that you could run it on your side.

utkarshgupta137 commented 1 year ago

Fun fact: I had rewritten this service in rust (with actix-web & async for all database calls) & I got 17-18ms median latency with it. I think this makes the 3.11 improvement more impressive if we consider the python overhead compared to rust.

gvanrossum commented 1 year ago

Thanks for the quick results! It sounds like 3-5% faster, which for a real-world app is not easy.

brandtbucher commented 1 year ago

Might be interesting to gather 3.11 stats, if you're comfortable compiling Python from source. This basically dumps tons of internal counters that allow us to see how well the interpreter is handling your program (without giving us access to the source of the program itself).

Basically, configure --with-pystats, build, make an empty /tmp/py_stats directory, run your program, and run Tools/scripts/summarize_stats.py from the main repo using the same Python. It will dump a few thousand lines of markdown to stdout, which you can drop into a comment here. To see what type of information is gathered, see this example.

utkarshgupta137 commented 1 year ago

Might be interesting to gather 3.11 stats, if you're comfortable compiling Python from source. This basically dumps tons of internal counters that allow us to see how well the interpreter is handling your program (without giving us access to the source of the program itself).

Basically, configure --with-pystats, build, make an empty /tmp/py_stats directory, run your program, and run Tools/scripts/summarize_stats.py from the main repo using the same Python. It will dump a few thousand lines of markdown to stdout, which you can drop into a comment here. To see what type of information is gathered, see this example.

Sure, I'll try it tomorrow.

corona10 commented 1 year ago

Might be interesting to gather 3.11 stats, if you're comfortable compiling Python from source. This basically dumps tons of internal counters that allow us to see how well the interpreter is handling your program (without giving us access to the source of the program itself).

Hmm, I will try to ask my company's (LINE/NAVER) machine-learning team(I can sure that they have enough workload for the APAC area, especially for Korea/Japan) if they can share bytecode execution information.

utkarshgupta137 commented 1 year ago

Might be interesting to gather 3.11 stats, if you're comfortable compiling Python from source. This basically dumps tons of internal counters that allow us to see how well the interpreter is handling your program (without giving us access to the source of the program itself).

Basically, configure --with-pystats, build, make an empty /tmp/py_stats directory, run your program, and run Tools/scripts/summarize_stats.py from the main repo using the same Python. It will dump a few thousand lines of markdown to stdout, which you can drop into a comment here. To see what type of information is gathered, see this example.

I built python by modifying this Dockerfile which is used in the official py3.11.0 docker builds. I just added --enable-pystats (--with-pystats doesn't work) to the configure step.

Here is the output after 15k requests:

Execution counts

execution counts for all instructions |Name | Count | Self | Cumulative | Miss ratio | |---|---:|---:|---:|---:| | LOAD_FAST | 124398671 | 12.9% | 12.9% | | | LOAD_CONST | 58825706 | 6.1% | 19.0% | | | FOR_ITER | 42738132 | 4.4% | 23.4% | | | STORE_FAST__LOAD_FAST | 37837337 | 3.9% | 27.4% | | | JUMP_BACKWARD_QUICK | 35043528 | 3.6% | 31.0% | | | LOAD_ATTR_INSTANCE_VALUE | 34627008 | 3.6% | 34.6% | 0.7% | | RESUME_QUICK | 32247781 | 3.3% | 37.9% | | | RETURN_VALUE | 30371057 | 3.1% | 41.1% | | | LOAD_METHOD_NO_DICT | 30006603 | 3.1% | 44.2% | | | LOAD_DEREF | 25592799 | 2.7% | 46.8% | | | LOAD_GLOBAL_BUILTIN | 24306929 | 2.5% | 49.4% | 0.1% | | LIST_APPEND | 23443018 | 2.4% | 51.8% | | | POP_JUMP_FORWARD_IF_FALSE | 23172104 | 2.4% | 54.2% | | | STORE_FAST | 22286822 | 2.3% | 56.5% | | | LOAD_GLOBAL_MODULE | 17934215 | 1.9% | 58.4% | 0.1% | | CALL_ADAPTIVE | 16601257 | 1.7% | 60.1% | | | LOAD_FAST__LOAD_FAST | 15234421 | 1.6% | 61.7% | | | PRECALL_ADAPTIVE | 14413340 | 1.5% | 63.2% | | | POP_TOP | 14116541 | 1.5% | 64.6% | | | LOAD_ATTR_ADAPTIVE | 13540650 | 1.4% | 66.0% | | | PRECALL_PYFUNC | 13313500 | 1.4% | 67.4% | 0.0% | | FORMAT_VALUE | 12491236 | 1.3% | 68.7% | | | LOAD_CONST__LOAD_FAST | 12259442 | 1.3% | 70.0% | | | LOAD_FAST__LOAD_CONST | 11965153 | 1.2% | 71.2% | | | CALL_PY_EXACT_ARGS | 11645458 | 1.2% | 72.4% | 6.2% | | CONTAINS_OP | 10968145 | 1.1% | 73.6% | | | STORE_FAST__STORE_FAST | 10514008 | 1.1% | 74.6% | | | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 10475137 | 1.1% | 75.7% | 1.0% | | LOAD_ATTR_SLOT | 10002245 | 1.0% | 76.8% | 0.0% | | STORE_ATTR_INSTANCE_VALUE | 8794946 | 0.9% | 77.7% | 1.1% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST | 8557324 | 0.9% | 78.6% | 0.0% | | BINARY_SUBSCR_TUPLE_INT | 8192693 | 0.8% | 79.4% | 0.0% | | POP_JUMP_FORWARD_IF_TRUE | 8117474 | 0.8% | 80.3% | | | LOAD_METHOD_WITH_VALUES | 7624762 | 0.8% | 81.1% | 1.7% | | PRECALL_BUILTIN_CLASS | 7486510 | 0.8% | 81.8% | 0.0% | | POP_JUMP_BACKWARD_IF_FALSE | 7411451 | 0.8% | 82.6% | | | MAP_ADD | 6982242 | 0.7% | 83.3% | | | BINARY_SUBSCR_LIST_INT | 6780678 | 0.7% | 84.0% | 0.6% | | UNPACK_SEQUENCE_TWO_TUPLE | 6386218 | 0.7% | 84.7% | | | BUILD_STRING | 6270572 | 0.7% | 85.3% | | | BINARY_SUBSCR_ADAPTIVE | 6225444 | 0.6% | 86.0% | | | BINARY_SUBSCR_DICT | 5994107 | 0.6% | 86.6% | | | POP_JUMP_FORWARD_IF_NONE | 5791340 | 0.6% | 87.2% | | | PRECALL_NO_KW_METHOD_DESCRIPTOR_O | 5694766 | 0.6% | 87.8% | 0.5% | | LOAD_ATTR_MODULE | 5541705 | 0.6% | 88.4% | 0.1% | | LOAD_METHOD_ADAPTIVE | 5441547 | 0.6% | 88.9% | | | COMPARE_OP_INT_JUMP | 4943621 | 0.5% | 89.4% | 0.1% | | BUILD_TUPLE | 4859269 | 0.5% | 89.9% | | | JUMP_FORWARD | 4575390 | 0.5% | 90.4% | | | SEND | 4550709 | 0.5% | 90.9% | | | POP_JUMP_FORWARD_IF_NOT_NONE | 4178917 | 0.4% | 91.3% | | | PRECALL_NO_KW_ISINSTANCE | 4087450 | 0.4% | 91.8% | | | NOP | 4069687 | 0.4% | 92.2% | | | UNPACK_SEQUENCE_TUPLE | 3616438 | 0.4% | 92.5% | | | KW_NAMES | 3588110 | 0.4% | 92.9% | | | GET_ITER | 3436682 | 0.4% | 93.3% | | | RETURN_GENERATOR | 3209050 | 0.3% | 93.6% | | | BUILD_LIST | 2975101 | 0.3% | 93.9% | | | GET_AWAITABLE | 2916251 | 0.3% | 94.2% | | | PRECALL_NO_KW_LEN | 2896589 | 0.3% | 94.5% | | | IS_OP | 2484243 | 0.3% | 94.8% | | | COMPARE_OP_ADAPTIVE | 2402749 | 0.2% | 95.0% | | | COMPARE_OP_STR_JUMP | 2349630 | 0.2% | 95.3% | 0.0% | | PUSH_NULL | 2327249 | 0.2% | 95.5% | | | PRECALL_NO_KW_LIST_APPEND | 1982220 | 0.2% | 95.7% | | | YIELD_VALUE | 1814357 | 0.2% | 95.9% | | | STORE_SUBSCR_DICT | 1688929 | 0.2% | 96.1% | | | BUILD_SLICE | 1594319 | 0.2% | 96.2% | | | PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS | 1589538 | 0.2% | 96.4% | 2.1% | | JUMP_BACKWARD_NO_INTERRUPT | 1572350 | 0.2% | 96.6% | | | BINARY_OP_ADD_UNICODE | 1532062 | 0.2% | 96.7% | | | PRECALL_BOUND_METHOD | 1464733 | 0.2% | 96.9% | 2.1% | | PRECALL_NO_KW_STR_1 | 1442764 | 0.1% | 97.0% | | | COPY | 1413756 | 0.1% | 97.2% | | | JUMP_IF_TRUE_OR_POP | 1403632 | 0.1% | 97.3% | | | BUILD_MAP | 1339380 | 0.1% | 97.5% | | | COPY_FREE_VARS | 1305448 | 0.1% | 97.6% | | | SWAP | 1247129 | 0.1% | 97.7% | | | BINARY_OP_ADD_INT | 1145158 | 0.1% | 97.8% | 0.0% | | MAKE_FUNCTION | 1137414 | 0.1% | 98.0% | | | PRECALL_NO_KW_BUILTIN_FAST | 1095732 | 0.1% | 98.1% | 0.1% | | PRECALL_NO_KW_TYPE_1 | 1078751 | 0.1% | 98.2% | | | EXTENDED_ARG_QUICK | 1060236 | 0.1% | 98.3% | | | MAKE_CELL | 984318 | 0.1% | 98.4% | | | STORE_ATTR_SLOT | 951212 | 0.1% | 98.5% | 0.1% | | LOAD_CLOSURE | 885027 | 0.1% | 98.6% | | | PRECALL_NO_KW_BUILTIN_O | 876570 | 0.1% | 98.7% | 0.4% | | LOAD_ATTR_WITH_HINT | 841955 | 0.1% | 98.8% | 4.4% | | BINARY_OP_ADAPTIVE | 825894 | 0.1% | 98.9% | | | STORE_DEREF | 816051 | 0.1% | 98.9% | | | CALL_FUNCTION_EX | 768158 | 0.1% | 99.0% | | | CALL | 758307 | 0.1% | 99.1% | | | STORE_ATTR_ADAPTIVE | 647848 | 0.1% | 99.2% | | | DICT_MERGE | 573085 | 0.1% | 99.2% | | | JUMP_IF_FALSE_OR_POP | 557284 | 0.1% | 99.3% | | | CALL_PY_WITH_DEFAULTS | 473871 | 0.0% | 99.3% | 0.0% | | LOAD_METHOD | 424109 | 0.0% | 99.4% | | | BINARY_OP_SUBTRACT_INT | 406681 | 0.0% | 99.4% | | | PRECALL_BUILTIN_FAST_WITH_KEYWORDS | 401785 | 0.0% | 99.5% | 5.7% | | LOAD_METHOD_CLASS | 367676 | 0.0% | 99.5% | | | LOAD_METHOD_WITH_DICT | 339171 | 0.0% | 99.5% | 83.8% | | LOAD_ATTR | 298852 | 0.0% | 99.6% | | | STORE_SUBSCR_ADAPTIVE | 282571 | 0.0% | 99.6% | | | PRECALL | 267302 | 0.0% | 99.6% | | | PUSH_EXC_INFO | 263420 | 0.0% | 99.7% | | | POP_EXCEPT | 263420 | 0.0% | 99.7% | | | CHECK_EXC_MATCH | 262907 | 0.0% | 99.7% | | | LIST_EXTEND | 199406 | 0.0% | 99.7% | | | LIST_TO_TUPLE | 198304 | 0.0% | 99.7% | | | BEFORE_WITH | 187099 | 0.0% | 99.8% | | | BINARY_OP_SUBTRACT_FLOAT | 148605 | 0.0% | 99.8% | | | BEFORE_ASYNC_WITH | 132966 | 0.0% | 99.8% | | | BUILD_CONST_KEY_MAP | 129154 | 0.0% | 99.8% | | | LOAD_METHOD_MODULE | 128850 | 0.0% | 99.8% | 0.1% | | POP_JUMP_BACKWARD_IF_TRUE | 124719 | 0.0% | 99.8% | | | BINARY_OP_INPLACE_ADD_UNICODE | 124108 | 0.0% | 99.8% | | | STORE_ATTR_WITH_HINT | 120821 | 0.0% | 99.9% | 2.9% | | UNARY_NOT | 119857 | 0.0% | 99.9% | | | BINARY_SUBSCR_GETITEM | 114764 | 0.0% | 99.9% | 0.0% | | STORE_ATTR | 109519 | 0.0% | 99.9% | | | BINARY_OP_MULTIPLY_INT | 108744 | 0.0% | 99.9% | 0.1% | | UNPACK_SEQUENCE_LIST | 86052 | 0.0% | 99.9% | | | PRECALL_NO_KW_TUPLE_1 | 85095 | 0.0% | 99.9% | | | RAISE_VARARGS | 79841 | 0.0% | 99.9% | | | BINARY_OP_ADD_FLOAT | 74184 | 0.0% | 99.9% | | | DELETE_SUBSCR | 63939 | 0.0% | 99.9% | | | RERAISE | 63601 | 0.0% | 100.0% | | | LOAD_GLOBAL | 55783 | 0.0% | 100.0% | | | BINARY_SUBSCR | 48057 | 0.0% | 100.0% | | | STORE_NAME | 48025 | 0.0% | 100.0% | | | GET_ANEXT | 46566 | 0.0% | 100.0% | | | LOAD_NAME | 45032 | 0.0% | 100.0% | | | ASYNC_GEN_WRAP | 31044 | 0.0% | 100.0% | | | RESUME | 20007 | 0.0% | 100.0% | | | UNARY_NEGATIVE | 16373 | 0.0% | 100.0% | | | LOAD_GLOBAL_ADAPTIVE | 16137 | 0.0% | 100.0% | | | GET_YIELD_FROM_ITER | 15542 | 0.0% | 100.0% | | | GET_AITER | 15522 | 0.0% | 100.0% | | | END_ASYNC_FOR | 15522 | 0.0% | 100.0% | | | EXTENDED_ARG | 8615 | 0.0% | 100.0% | | | COMPARE_OP | 6950 | 0.0% | 100.0% | | | IMPORT_NAME | 6606 | 0.0% | 100.0% | | | IMPORT_FROM | 6250 | 0.0% | 100.0% | | | STORE_SUBSCR_LIST_INT | 4519 | 0.0% | 100.0% | | | BINARY_OP | 4177 | 0.0% | 100.0% | | | SET_ADD | 3354 | 0.0% | 100.0% | | | JUMP_BACKWARD | 2963 | 0.0% | 100.0% | | | LOAD_BUILD_CLASS | 2918 | 0.0% | 100.0% | | | STORE_SUBSCR | 2274 | 0.0% | 100.0% | | | COMPARE_OP_FLOAT_JUMP | 1736 | 0.0% | 100.0% | 6.4% | | UNPACK_SEQUENCE | 1734 | 0.0% | 100.0% | | | BUILD_SET | 756 | 0.0% | 100.0% | | | UNARY_INVERT | 696 | 0.0% | 100.0% | | | DELETE_FAST | 445 | 0.0% | 100.0% | | | DICT_UPDATE | 432 | 0.0% | 100.0% | | | UNPACK_SEQUENCE_ADAPTIVE | 391 | 0.0% | 100.0% | | | BINARY_OP_MULTIPLY_FLOAT | 292 | 0.0% | 100.0% | | | SETUP_ANNOTATIONS | 261 | 0.0% | 100.0% | | | DELETE_NAME | 241 | 0.0% | 100.0% | | | WITH_EXCEPT_START | 212 | 0.0% | 100.0% | | | STORE_GLOBAL | 193 | 0.0% | 100.0% | | | IMPORT_STAR | 157 | 0.0% | 100.0% | | | POP_JUMP_BACKWARD_IF_NOT_NONE | 130 | 0.0% | 100.0% | | | SET_UPDATE | 26 | 0.0% | 100.0% | | | LOAD_CLASSDEREF | 14 | 0.0% | 100.0% | | | UNARY_POSITIVE | 10 | 0.0% | 100.0% | | | DELETE_ATTR | 3 | 0.0% | 100.0% | |

Pair counts

Pair counts for top 100 pairs |Pair | Count | Self | Cumulative | |---|---:|---:|---:| | JUMP_BACKWARD_QUICK FOR_ITER | 34706159 | 3.6% | 3.6% | | LIST_APPEND JUMP_BACKWARD_QUICK | 23442060 | 2.4% | 6.0% | | LOAD_FAST LOAD_ATTR_INSTANCE_VALUE | 20504782 | 2.1% | 8.2% | | FOR_ITER STORE_FAST__LOAD_FAST | 19293662 | 2.0% | 10.2% | | LOAD_GLOBAL_BUILTIN LOAD_FAST | 16828379 | 1.7% | 11.9% | | RESUME_QUICK LOAD_FAST | 15781801 | 1.6% | 13.5% | | FOR_ITER STORE_FAST | 14201160 | 1.5% | 15.0% | | PRECALL_ADAPTIVE CALL_ADAPTIVE | 13720950 | 1.4% | 16.4% | | LOAD_FAST LOAD_METHOD_NO_DICT | 12444225 | 1.3% | 17.7% | | LOAD_METHOD_NO_DICT LOAD_CONST | 11930215 | 1.2% | 19.0% | | POP_JUMP_FORWARD_IF_FALSE LOAD_FAST | 11760602 | 1.2% | 20.2% | | LOAD_DEREF LOAD_ATTR_INSTANCE_VALUE | 10702186 | 1.1% | 21.3% | | PRECALL_PYFUNC CALL_PY_EXACT_ARGS | 10613002 | 1.1% | 22.4% | | LOAD_FAST LOAD_ATTR_SLOT | 9380299 | 1.0% | 23.4% | | CALL_PY_EXACT_ARGS RESUME_QUICK | 9170604 | 1.0% | 24.3% | | LOAD_METHOD_NO_DICT PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 9078910 | 0.9% | 25.3% | | LOAD_CONST RETURN_VALUE | 8999388 | 0.9% | 26.2% | | LOAD_CONST LOAD_CONST | 8183054 | 0.8% | 27.0% | | LOAD_FAST LOAD_ATTR_ADAPTIVE | 7792314 | 0.8% | 27.8% | | STORE_FAST LOAD_DEREF | 7220517 | 0.7% | 28.6% | | STORE_FAST LOAD_GLOBAL_BUILTIN | 7131323 | 0.7% | 29.3% | | LOAD_FAST LOAD_DEREF | 7004117 | 0.7% | 30.1% | | MAP_ADD JUMP_BACKWARD_QUICK | 6974476 | 0.7% | 30.8% | | STORE_FAST__LOAD_FAST LOAD_DEREF | 6643555 | 0.7% | 31.5% | | LOAD_CONST PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST | 6629988 | 0.7% | 32.2% | | STORE_FAST__LOAD_FAST LIST_APPEND | 6584426 | 0.7% | 32.8% | | CONTAINS_OP POP_JUMP_BACKWARD_IF_FALSE | 6572006 | 0.7% | 33.5% | | LOAD_ATTR_INSTANCE_VALUE CONTAINS_OP | 6495601 | 0.7% | 34.2% | | LOAD_CONST BINARY_SUBSCR_LIST_INT | 6399291 | 0.7% | 34.9% | | UNPACK_SEQUENCE_TWO_TUPLE STORE_FAST__STORE_FAST | 6381582 | 0.7% | 35.5% | | PRECALL_BUILTIN_CLASS LOAD_CONST | 6350469 | 0.7% | 36.2% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS PRECALL_BUILTIN_CLASS | 6266194 | 0.6% | 36.8% | | FORMAT_VALUE BUILD_STRING | 6265193 | 0.6% | 37.5% | | LOAD_CONST__LOAD_FAST LOAD_METHOD_NO_DICT | 6247711 | 0.6% | 38.1% | | FORMAT_VALUE LOAD_CONST__LOAD_FAST | 6219131 | 0.6% | 38.8% | | BUILD_STRING LIST_APPEND | 6217066 | 0.6% | 39.4% | | LOAD_DEREF FORMAT_VALUE | 6216512 | 0.6% | 40.1% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST FORMAT_VALUE | 6216426 | 0.6% | 40.7% | | BINARY_SUBSCR_LIST_INT LIST_APPEND | 6216426 | 0.6% | 41.4% | | LOAD_ATTR_SLOT LOAD_FAST | 5877423 | 0.6% | 42.0% | | FOR_ITER UNPACK_SEQUENCE_TWO_TUPLE | 5869497 | 0.6% | 42.6% | | LOAD_ATTR_INSTANCE_VALUE LOAD_FAST | 5755260 | 0.6% | 43.2% | | LOAD_GLOBAL_MODULE LOAD_ATTR_MODULE | 5536612 | 0.6% | 43.7% | | LOAD_METHOD_NO_DICT LOAD_FAST | 5424774 | 0.6% | 44.3% | | STORE_FAST__STORE_FAST LOAD_FAST | 5081694 | 0.5% | 44.8% | | LOAD_CONST BINARY_SUBSCR_TUPLE_INT | 4920908 | 0.5% | 45.3% | | STORE_FAST__LOAD_FAST LOAD_CONST | 4835678 | 0.5% | 45.8% | | LOAD_FAST PRECALL_PYFUNC | 4811651 | 0.5% | 46.3% | | LOAD_FAST RETURN_VALUE | 4775345 | 0.5% | 46.8% | | STORE_FAST__LOAD_FAST LOAD_METHOD_NO_DICT | 4276628 | 0.4% | 47.3% | | RETURN_VALUE POP_TOP | 4217343 | 0.4% | 47.7% | | POP_JUMP_FORWARD_IF_TRUE LOAD_FAST | 4200835 | 0.4% | 48.2% | | LOAD_FAST LOAD_METHOD_WITH_VALUES | 4162408 | 0.4% | 48.6% | | CONTAINS_OP POP_JUMP_FORWARD_IF_FALSE | 4046957 | 0.4% | 49.0% | | RESUME_QUICK LOAD_GLOBAL_BUILTIN | 3738381 | 0.4% | 49.4% | | LOAD_DEREF LOAD_FAST | 3719492 | 0.4% | 49.8% | | POP_JUMP_BACKWARD_IF_FALSE FOR_ITER | 3714647 | 0.4% | 50.2% | | UNPACK_SEQUENCE_TUPLE STORE_FAST__STORE_FAST | 3616347 | 0.4% | 50.5% | | LOAD_ATTR_INSTANCE_VALUE POP_JUMP_FORWARD_IF_FALSE | 3562294 | 0.4% | 50.9% | | POP_TOP LOAD_FAST | 3501986 | 0.4% | 51.3% | | LOAD_ATTR_INSTANCE_VALUE LOAD_METHOD_NO_DICT | 3484841 | 0.4% | 51.6% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_O UNPACK_SEQUENCE_TUPLE | 3471351 | 0.4% | 52.0% | | POP_JUMP_FORWARD_IF_NONE LOAD_FAST | 3427048 | 0.4% | 52.3% | | LOAD_FAST BINARY_SUBSCR_ADAPTIVE | 3387769 | 0.4% | 52.7% | | STORE_FAST__STORE_FAST STORE_FAST__LOAD_FAST | 3386280 | 0.4% | 53.0% | | LOAD_FAST BINARY_SUBSCR_DICT | 3384535 | 0.4% | 53.4% | | CALL_ADAPTIVE STORE_FAST__LOAD_FAST | 3354093 | 0.3% | 53.7% | | RESUME_QUICK LOAD_FAST__LOAD_CONST | 3344166 | 0.3% | 54.1% | | LOAD_FAST PRECALL_ADAPTIVE | 3342074 | 0.3% | 54.4% | | POP_JUMP_FORWARD_IF_FALSE LOAD_CONST | 3340696 | 0.3% | 54.8% | | LOAD_METHOD_WITH_VALUES LOAD_FAST | 3288784 | 0.3% | 55.1% | | LOAD_FAST__LOAD_CONST BINARY_SUBSCR_TUPLE_INT | 3271285 | 0.3% | 55.5% | | LOAD_FAST LOAD_METHOD_ADAPTIVE | 3259914 | 0.3% | 55.8% | | POP_TOP RESUME_QUICK | 3208004 | 0.3% | 56.1% | | LOAD_FAST LOAD_GLOBAL_BUILTIN | 3173390 | 0.3% | 56.5% | | BINARY_SUBSCR_TUPLE_INT RETURN_VALUE | 3167195 | 0.3% | 56.8% | | LOAD_CONST PRECALL_NO_KW_METHOD_DESCRIPTOR_O | 3113806 | 0.3% | 57.1% | | BINARY_SUBSCR_ADAPTIVE MAP_ADD | 3048345 | 0.3% | 57.4% | | LOAD_FAST__LOAD_FAST STORE_ATTR_INSTANCE_VALUE | 3036626 | 0.3% | 57.7% | | PRECALL_NO_KW_ISINSTANCE POP_JUMP_FORWARD_IF_FALSE | 3012359 | 0.3% | 58.1% | | POP_TOP LOAD_CONST | 2986913 | 0.3% | 58.4% | | POP_JUMP_BACKWARD_IF_FALSE LOAD_FAST | 2980321 | 0.3% | 58.7% | | LOAD_CONST SEND | 2978359 | 0.3% | 59.0% | | STORE_FAST LOAD_GLOBAL_MODULE | 2968473 | 0.3% | 59.3% | | BINARY_SUBSCR_TUPLE_INT LIST_APPEND | 2928274 | 0.3% | 59.6% | | BINARY_SUBSCR_DICT MAP_ADD | 2928274 | 0.3% | 59.9% | | GET_AWAITABLE LOAD_CONST | 2916251 | 0.3% | 60.2% | | LOAD_GLOBAL_BUILTIN PRECALL_NO_KW_ISINSTANCE | 2913483 | 0.3% | 60.5% | | STORE_FAST__LOAD_FAST POP_JUMP_FORWARD_IF_FALSE | 2838980 | 0.3% | 60.8% | | LOAD_FAST LOAD_GLOBAL_MODULE | 2831964 | 0.3% | 61.1% | | LOAD_CONST COMPARE_OP_INT_JUMP | 2766312 | 0.3% | 61.4% | | STORE_ATTR_INSTANCE_VALUE LOAD_FAST | 2713770 | 0.3% | 61.7% | | LOAD_METHOD_ADAPTIVE LOAD_FAST | 2663958 | 0.3% | 61.9% | | LOAD_CONST__LOAD_FAST STORE_ATTR_INSTANCE_VALUE | 2609498 | 0.3% | 62.2% | | RESUME_QUICK LOAD_GLOBAL_MODULE | 2595405 | 0.3% | 62.5% | | LOAD_FAST STORE_ATTR_INSTANCE_VALUE | 2510197 | 0.3% | 62.7% | | LOAD_FAST PRECALL_NO_KW_LEN | 2471536 | 0.3% | 63.0% | | LOAD_ATTR_ADAPTIVE LOAD_CONST | 2465113 | 0.3% | 63.3% | | GET_ITER FOR_ITER | 2424449 | 0.3% | 63.5% | | LOAD_GLOBAL_MODULE LOAD_FAST | 2422660 | 0.3% | 63.8% |

Predecessor/Successor Pairs

Top 3 predecessors and successors of each opcode ### ASYNC_GEN_WRAP
Successors and predecessors for ASYNC_GEN_WRAP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 15522 | 50.0% | | LOAD_CONST | 15522 | 50.0% | |Successors | Count | Percentage | |---|---:|---:| | YIELD_VALUE | 31044 | 100.0% |
### BEFORE_ASYNC_WITH
Successors and predecessors for BEFORE_ASYNC_WITH |Predecessors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 117442 | 88.3% | | CALL_ADAPTIVE | 15518 | 11.7% | | CALL | 6 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | GET_AWAITABLE | 132966 | 100.0% |
### BEFORE_WITH
Successors and predecessors for BEFORE_WITH |Predecessors | Count | Percentage | |---|---:|---:| | CALL_ADAPTIVE | 64802 | 34.6% | | LOAD_ATTR_INSTANCE_VALUE | 62641 | 33.5% | | LOAD_FAST | 58679 | 31.4% | |Successors | Count | Percentage | |---|---:|---:| | POP_TOP | 186244 | 99.5% | | STORE_FAST__LOAD_FAST | 811 | 0.4% | | STORE_FAST | 43 | 0.0% |
### BINARY_OP
Successors and predecessors for BINARY_OP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 1268 | 30.4% | | LOAD_FAST | 901 | 21.6% | | CALL | 442 | 10.6% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST | 904 | 21.6% | | LOAD_FAST | 447 | 10.7% | | PRECALL | 425 | 10.2% |
### BINARY_OP_ADAPTIVE
Successors and predecessors for BINARY_OP_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | CALL_ADAPTIVE | 133021 | 16.1% | | LOAD_FAST | 128609 | 15.6% | | BINARY_OP_ADAPTIVE | 115485 | 14.0% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 212520 | 25.7% | | PUSH_EXC_INFO | 117345 | 14.2% | | BINARY_OP_ADAPTIVE | 115485 | 14.0% |
### BINARY_OP_ADD_FLOAT
Successors and predecessors for BINARY_OP_ADD_FLOAT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 74182 | 100.0% | | BINARY_OP_ADAPTIVE | 2 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST__LOAD_FAST | 58669 | 79.1% | | RETURN_VALUE | 15515 | 20.9% |
### BINARY_OP_ADD_INT
Successors and predecessors for BINARY_OP_ADD_INT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 530504 | 46.3% | | LOAD_FAST | 211328 | 18.5% | | PRECALL_NO_KW_LEN | 177659 | 15.5% | |Successors | Count | Percentage | |---|---:|---:| | SWAP | 405140 | 35.4% | | STORE_DEREF | 390327 | 34.1% | | BUILD_SLICE | 117995 | 10.3% |
### BINARY_OP_ADD_UNICODE
Successors and predecessors for BINARY_OP_ADD_UNICODE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 940921 | 61.4% | | PRECALL_NO_KW_STR_1 | 293856 | 19.2% | | LOAD_ATTR_ADAPTIVE | 133776 | 8.7% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 528897 | 34.5% | | LOAD_FAST | 475548 | 31.0% | | LOAD_GLOBAL_BUILTIN | 235028 | 15.3% |
### BINARY_OP_INPLACE_ADD_UNICODE
Successors and predecessors for BINARY_OP_INPLACE_ADD_UNICODE |Predecessors | Count | Percentage | |---|---:|---:| | BINARY_OP_ADD_UNICODE | 121099 | 97.6% | | LOAD_FAST__LOAD_FAST | 1076 | 0.9% | | BINARY_SUBSCR_ADAPTIVE | 792 | 0.6% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_FAST | 60693 | 48.9% | | LOAD_FAST | 59165 | 47.7% | | JUMP_BACKWARD_QUICK | 3292 | 2.7% |
### BINARY_OP_MULTIPLY_FLOAT
Successors and predecessors for BINARY_OP_MULTIPLY_FLOAT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_DEREF | 280 | 95.9% | | LOAD_FAST__LOAD_CONST | 8 | 2.7% | | BINARY_OP_ADAPTIVE | 4 | 1.4% | |Successors | Count | Percentage | |---|---:|---:| | PRECALL_NO_KW_BUILTIN_O | 280 | 95.9% | | STORE_FAST | 10 | 3.4% | | PRECALL_ADAPTIVE | 2 | 0.7% |
### BINARY_OP_MULTIPLY_INT
Successors and predecessors for BINARY_OP_MULTIPLY_INT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_CONST | 59570 | 54.8% | | LOAD_ATTR_INSTANCE_VALUE | 46766 | 43.0% | | BINARY_SUBSCR_TUPLE_INT | 908 | 0.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 59365 | 54.6% | | COMPARE_OP_INT_JUMP | 46766 | 43.0% | | PRECALL_ADAPTIVE | 948 | 0.9% |
### BINARY_OP_SUBTRACT_FLOAT
Successors and predecessors for BINARY_OP_SUBTRACT_FLOAT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 58862 | 39.6% | | LOAD_FAST__LOAD_FAST | 58660 | 39.5% | | LOAD_GLOBAL_MODULE | 15638 | 10.5% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 74030 | 49.8% | | PRECALL_PYFUNC | 58862 | 39.6% | | LOAD_CONST | 15711 | 10.6% |
### BINARY_OP_SUBTRACT_INT
Successors and predecessors for BINARY_OP_SUBTRACT_INT |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_NO_KW_LEN | 220479 | 54.2% | | LOAD_FAST | 83893 | 20.6% | | LOAD_FAST__LOAD_CONST | 63297 | 15.6% | |Successors | Count | Percentage | |---|---:|---:| | SWAP | 135060 | 33.2% | | STORE_FAST__LOAD_FAST | 122437 | 30.1% | | BINARY_OP_ADAPTIVE | 98243 | 24.2% |
### BINARY_SUBSCR
Successors and predecessors for BINARY_SUBSCR |Predecessors | Count | Percentage | |---|---:|---:| | BINARY_SUBSCR_LIST_INT | 38808 | 80.8% | | LOAD_NAME | 2356 | 4.9% | | LOAD_CONST | 2002 | 4.2% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 39938 | 85.6% | | BUILD_TUPLE | 1120 | 2.4% | | STORE_FAST | 764 | 1.6% |
### BINARY_SUBSCR_ADAPTIVE
Successors and predecessors for BINARY_SUBSCR_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3387769 | 54.4% | | BUILD_SLICE | 1545776 | 24.8% | | LOAD_FAST__LOAD_CONST | 1092467 | 17.5% | |Successors | Count | Percentage | |---|---:|---:| | MAP_ADD | 3048345 | 49.0% | | LOAD_FAST | 784710 | 12.6% | | LOAD_CONST | 570534 | 9.2% |
### BINARY_SUBSCR_DICT
Successors and predecessors for BINARY_SUBSCR_DICT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3384535 | 56.5% | | LOAD_FAST__LOAD_CONST | 1083097 | 18.1% | | LOAD_DEREF | 571998 | 9.5% | |Successors | Count | Percentage | |---|---:|---:| | MAP_ADD | 2928274 | 48.9% | | LOAD_METHOD_NO_DICT | 1094409 | 18.3% | | STORE_SUBSCR_DICT | 442635 | 7.4% |
### BINARY_SUBSCR_GETITEM
Successors and predecessors for BINARY_SUBSCR_GETITEM |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_FAST | 74647 | 65.0% | | LOAD_CONST | 33020 | 28.8% | | LOAD_FAST__LOAD_CONST | 3454 | 3.0% | |Successors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 114726 | 100.0% | | RESUME | 20 | 0.0% | | MAKE_CELL | 12 | 0.0% |
### BINARY_SUBSCR_LIST_INT
Successors and predecessors for BINARY_SUBSCR_LIST_INT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 6399291 | 94.4% | | LOAD_FAST__LOAD_CONST | 326274 | 4.8% | | RETURN_VALUE | 15514 | 0.2% | |Successors | Count | Percentage | |---|---:|---:| | LIST_APPEND | 6216426 | 91.7% | | LOAD_METHOD_NO_DICT | 277233 | 4.1% | | PRECALL_NO_KW_LEN | 138583 | 2.0% |
### BINARY_SUBSCR_TUPLE_INT
Successors and predecessors for BINARY_SUBSCR_TUPLE_INT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 4920908 | 60.1% | | LOAD_FAST__LOAD_CONST | 3271285 | 39.9% | | LOAD_FAST | 248 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 3167195 | 38.7% | | LIST_APPEND | 2928274 | 35.7% | | STORE_FAST__LOAD_FAST | 974874 | 11.9% |
### BUILD_CONST_KEY_MAP
Successors and predecessors for BUILD_CONST_KEY_MAP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 112808 | 87.3% | | LOAD_FAST__LOAD_CONST | 16346 | 12.7% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST__LOAD_FAST | 32089 | 24.8% | | STORE_FAST | 32018 | 24.8% | | PRECALL_PYFUNC | 31028 | 24.0% |
### BUILD_LIST
Successors and predecessors for BUILD_LIST |Predecessors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 937912 | 31.5% | | LOAD_FAST | 609236 | 20.5% | | STORE_FAST | 260806 | 8.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1301150 | 43.7% | | LOAD_FAST__LOAD_FAST | 442368 | 14.9% | | STORE_FAST__LOAD_FAST | 422999 | 14.2% |
### BUILD_MAP
Successors and predecessors for BUILD_MAP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 207929 | 15.5% | | LIST_TO_TUPLE | 177587 | 13.3% | | STORE_ATTR_SLOT | 176027 | 13.1% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 870100 | 65.0% | | STORE_FAST__LOAD_FAST | 184369 | 13.8% | | STORE_FAST | 156308 | 11.7% |
### BUILD_SET
Successors and predecessors for BUILD_SET |Predecessors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 357 | 47.2% | | LOAD_ATTR_ADAPTIVE | 187 | 24.7% | | LOAD_CONST | 68 | 9.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 401 | 53.0% | | CONTAINS_OP | 202 | 26.7% | | BINARY_OP_ADAPTIVE | 85 | 11.2% |
### BUILD_SLICE
Successors and predecessors for BUILD_SLICE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 1176351 | 73.8% | | LOAD_FAST | 169330 | 10.6% | | BINARY_OP_ADD_INT | 117995 | 7.4% | |Successors | Count | Percentage | |---|---:|---:| | BINARY_SUBSCR_ADAPTIVE | 1545776 | 97.0% | | DELETE_SUBSCR | 46780 | 2.9% | | BINARY_SUBSCR | 891 | 0.1% |
### BUILD_STRING
Successors and predecessors for BUILD_STRING |Predecessors | Count | Percentage | |---|---:|---:| | FORMAT_VALUE | 6265193 | 99.9% | | LOAD_CONST | 5379 | 0.1% | |Successors | Count | Percentage | |---|---:|---:| | LIST_APPEND | 6217066 | 99.1% | | PRECALL_BOUND_METHOD | 31034 | 0.5% | | LOAD_CONST | 15680 | 0.3% |
### BUILD_TUPLE
Successors and predecessors for BUILD_TUPLE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_FAST | 1845747 | 38.0% | | LOAD_ATTR_SLOT | 897670 | 18.5% | | LOAD_CLOSURE | 411631 | 8.5% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 1464349 | 30.1% | | LOAD_CONST | 474921 | 9.8% | | PRECALL_NO_KW_BUILTIN_O | 400501 | 8.2% |
### CALL
Successors and predecessors for CALL |Predecessors | Count | Percentage | |---|---:|---:| | CALL_PY_EXACT_ARGS | 716527 | 94.5% | | PRECALL | 41698 | 5.5% | | CALL_PY_WITH_DEFAULTS | 82 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 408387 | 53.9% | | COPY_FREE_VARS | 253509 | 33.4% | | RETURN_GENERATOR | 61163 | 8.1% |
### CALL_ADAPTIVE
Successors and predecessors for CALL_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_ADAPTIVE | 13720950 | 82.7% | | PRECALL_PYFUNC | 2418286 | 14.6% | | PRECALL | 225543 | 1.4% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST__LOAD_FAST | 3354093 | 20.2% | | RESUME_QUICK | 1929784 | 11.6% | | POP_TOP | 1755434 | 10.6% |
### CALL_FUNCTION_EX
Successors and predecessors for CALL_FUNCTION_EX |Predecessors | Count | Percentage | |---|---:|---:| | DICT_MERGE | 573085 | 74.6% | | LOAD_FAST | 140444 | 18.3% | | RETURN_GENERATOR | 31044 | 4.0% | |Successors | Count | Percentage | |---|---:|---:| | GET_AWAITABLE | 378753 | 49.3% | | RETURN_VALUE | 76158 | 9.9% | | STORE_FAST__LOAD_FAST | 66223 | 8.6% |
### CALL_PY_EXACT_ARGS
Successors and predecessors for CALL_PY_EXACT_ARGS |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_PYFUNC | 10613002 | 91.1% | | PRECALL_BOUND_METHOD | 1017481 | 8.7% | | CALL_ADAPTIVE | 14863 | 0.1% | |Successors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 9170604 | 78.7% | | RETURN_GENERATOR | 1344655 | 11.5% | | CALL | 716527 | 6.2% |
### CALL_PY_WITH_DEFAULTS
Successors and predecessors for CALL_PY_WITH_DEFAULTS |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_PYFUNC | 282147 | 59.5% | | PRECALL_BOUND_METHOD | 191614 | 40.4% | | CALL_ADAPTIVE | 110 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 341928 | 72.2% | | RETURN_GENERATOR | 131510 | 27.8% | | MAKE_CELL | 192 | 0.0% |
### CHECK_EXC_MATCH
Successors and predecessors for CHECK_EXC_MATCH |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_BUILTIN | 258303 | 98.2% | | BUILD_TUPLE | 3190 | 1.2% | | LOAD_GLOBAL | 856 | 0.3% | |Successors | Count | Percentage | |---|---:|---:| | POP_JUMP_FORWARD_IF_FALSE | 262907 | 100.0% |
### COMPARE_OP
Successors and predecessors for COMPARE_OP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 2527 | 36.4% | | COMPARE_OP_INT_JUMP | 2519 | 36.2% | | LOAD_ATTR | 406 | 5.8% | |Successors | Count | Percentage | |---|---:|---:| | POP_JUMP_FORWARD_IF_FALSE | 5934 | 85.4% | | POP_JUMP_FORWARD_IF_TRUE | 434 | 6.2% | | POP_JUMP_BACKWARD_IF_FALSE | 130 | 1.9% |
### COMPARE_OP_ADAPTIVE
Successors and predecessors for COMPARE_OP_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 884204 | 36.8% | | LOAD_ATTR_ADAPTIVE | 557939 | 23.2% | | BUILD_TUPLE | 258103 | 10.7% | |Successors | Count | Percentage | |---|---:|---:| | POP_JUMP_FORWARD_IF_FALSE | 1569451 | 65.3% | | RETURN_VALUE | 356521 | 14.8% | | POP_JUMP_FORWARD_IF_TRUE | 178009 | 7.4% |
### COMPARE_OP_FLOAT_JUMP
Successors and predecessors for COMPARE_OP_FLOAT_JUMP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 1391 | 80.1% | | LOAD_ATTR_WITH_HINT | 306 | 17.6% | | LOAD_CONST | 24 | 1.4% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_MODULE | 1281 | 73.8% | | LOAD_FAST | 288 | 16.6% | | COMPARE_OP | 111 | 6.4% |
### COMPARE_OP_INT_JUMP
Successors and predecessors for COMPARE_OP_INT_JUMP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 2766312 | 56.0% | | BINARY_SUBSCR_TUPLE_INT | 781001 | 15.8% | | COPY | 411041 | 8.3% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1641746 | 33.2% | | LOAD_CONST | 834445 | 16.9% | | FOR_ITER | 660931 | 13.4% |
### COMPARE_OP_STR_JUMP
Successors and predecessors for COMPARE_OP_STR_JUMP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 1179378 | 50.2% | | LOAD_FAST__LOAD_CONST | 909899 | 38.7% | | LOAD_FAST | 134424 | 5.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_CONST | 831600 | 35.4% | | LOAD_FAST | 777242 | 33.1% | | LOAD_GLOBAL_BUILTIN | 471182 | 20.1% |
### CONTAINS_OP
Successors and predecessors for CONTAINS_OP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 6495601 | 59.2% | | LOAD_CONST__LOAD_FAST | 1325137 | 12.1% | | LOAD_FAST | 1264767 | 11.5% | |Successors | Count | Percentage | |---|---:|---:| | POP_JUMP_BACKWARD_IF_FALSE | 6572006 | 59.9% | | POP_JUMP_FORWARD_IF_FALSE | 4046957 | 36.9% | | EXTENDED_ARG_QUICK | 123710 | 1.1% |
### COPY
Successors and predecessors for COPY |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 415729 | 29.4% | | SWAP | 413031 | 29.2% | | LOAD_CONST | 287147 | 20.3% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 537889 | 38.0% | | COMPARE_OP_INT_JUMP | 411041 | 29.1% | | STORE_FAST__STORE_FAST | 287404 | 20.3% |
### COPY_FREE_VARS
Successors and predecessors for COPY_FREE_VARS |Predecessors | Count | Percentage | |---|---:|---:| | CALL_ADAPTIVE | 345632 | 45.6% | | CALL | 253509 | 33.5% | | CALL_PY_EXACT_ARGS | 158057 | 20.9% | |Successors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 907927 | 69.5% | | RETURN_GENERATOR | 395105 | 30.3% | | RESUME | 1484 | 0.1% |
### DELETE_ATTR
Successors and predecessors for DELETE_ATTR |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL | 2 | 66.7% | | LOAD_FAST | 1 | 33.3% |
### DELETE_FAST
Successors and predecessors for DELETE_FAST |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST | 445 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | RERAISE | 132 | 29.7% | | JUMP_FORWARD | 124 | 27.9% | | LOAD_CONST | 75 | 16.9% |
### DELETE_NAME
Successors and predecessors for DELETE_NAME |Predecessors | Count | Percentage | |---|---:|---:| | DELETE_NAME | 138 | 57.3% | | STORE_NAME | 52 | 21.6% | | FOR_ITER | 25 | 10.4% | |Successors | Count | Percentage | |---|---:|---:| | DELETE_NAME | 138 | 57.3% | | LOAD_CONST | 62 | 25.7% | | PUSH_NULL | 13 | 5.4% |
### DELETE_SUBSCR
Successors and predecessors for DELETE_SUBSCR |Predecessors | Count | Percentage | |---|---:|---:| | BUILD_SLICE | 46780 | 73.2% | | LOAD_FAST | 17141 | 26.8% | | LOAD_CONST | 16 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 47037 | 73.6% | | LOAD_CONST | 15806 | 24.7% | | LOAD_GLOBAL_MODULE | 1012 | 1.6% |
### DICT_MERGE
Successors and predecessors for DICT_MERGE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 572701 | 99.9% | | CALL_ADAPTIVE | 255 | 0.0% | | LOAD_ATTR_INSTANCE_VALUE | 91 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | CALL_FUNCTION_EX | 573085 | 100.0% |
### DICT_UPDATE
Successors and predecessors for DICT_UPDATE |Predecessors | Count | Percentage | |---|---:|---:| | MAP_ADD | 395 | 91.4% | | BUILD_CONST_KEY_MAP | 31 | 7.2% | | LOAD_FAST | 2 | 0.5% | |Successors | Count | Percentage | |---|---:|---:| | BUILD_MAP | 374 | 86.6% | | STORE_NAME | 34 | 7.9% | | LOAD_CONST | 9 | 2.1% |
### END_ASYNC_FOR
Successors and predecessors for END_ASYNC_FOR |Predecessors | Count | Percentage | |---|---:|---:| | SEND | 15522 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 15522 | 100.0% |
### EXTENDED_ARG
Successors and predecessors for EXTENDED_ARG |Predecessors | Count | Percentage | |---|---:|---:| | MAP_ADD | 4283 | 49.7% | | LOAD_CONST | 3289 | 38.2% | | BUILD_MAP | 265 | 3.1% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 8153 | 94.6% | | POP_JUMP_FORWARD_IF_FALSE | 161 | 1.9% | | FOR_ITER | 139 | 1.6% |
### EXTENDED_ARG_QUICK
Successors and predecessors for EXTENDED_ARG_QUICK |Predecessors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 214808 | 20.3% | | LOAD_FAST | 176371 | 16.6% | | GET_ITER | 145672 | 13.7% | |Successors | Count | Percentage | |---|---:|---:| | FOR_ITER | 360492 | 34.0% | | POP_JUMP_FORWARD_IF_TRUE | 222577 | 21.0% | | JUMP_BACKWARD_QUICK | 217299 | 20.5% |
### FORMAT_VALUE
Successors and predecessors for FORMAT_VALUE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_DEREF | 6216512 | 49.8% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST | 6216426 | 49.8% | | LOAD_CONST__LOAD_FAST | 50138 | 0.4% | |Successors | Count | Percentage | |---|---:|---:| | BUILD_STRING | 6265193 | 50.2% | | LOAD_CONST__LOAD_FAST | 6219131 | 49.8% | | LOAD_CONST | 5657 | 0.0% |
### FOR_ITER
Successors and predecessors for FOR_ITER |Predecessors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 34706159 | 81.2% | | POP_JUMP_BACKWARD_IF_FALSE | 3714647 | 8.7% | | GET_ITER | 2424449 | 5.7% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST__LOAD_FAST | 19293662 | 45.1% | | STORE_FAST | 14201160 | 33.2% | | UNPACK_SEQUENCE_TWO_TUPLE | 5869497 | 13.7% |
### GET_AITER
Successors and predecessors for GET_AITER |Predecessors | Count | Percentage | |---|---:|---:| | RETURN_GENERATOR | 15522 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | GET_ANEXT | 15522 | 100.0% |
### GET_ANEXT
Successors and predecessors for GET_ANEXT |Predecessors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 31039 | 66.7% | | GET_AITER | 15522 | 33.3% | | JUMP_BACKWARD | 5 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 46566 | 100.0% |
### GET_AWAITABLE
Successors and predecessors for GET_AWAITABLE |Predecessors | Count | Percentage | |---|---:|---:| | RETURN_GENERATOR | 1698660 | 58.2% | | CALL_ADAPTIVE | 389901 | 13.4% | | CALL_FUNCTION_EX | 378753 | 13.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 2916251 | 100.0% |
### GET_ITER
Successors and predecessors for GET_ITER |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1042869 | 30.3% | | STORE_FAST__LOAD_FAST | 474573 | 13.8% | | LOAD_ATTR_INSTANCE_VALUE | 420763 | 12.2% | |Successors | Count | Percentage | |---|---:|---:| | FOR_ITER | 2424449 | 70.5% | | PRECALL_PYFUNC | 865249 | 25.2% | | EXTENDED_ARG_QUICK | 145672 | 4.2% |
### GET_YIELD_FROM_ITER
Successors and predecessors for GET_YIELD_FROM_ITER |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 15518 | 99.8% | | LOAD_ATTR_SLOT | 13 | 0.1% | | LOAD_ATTR | 5 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 15542 | 100.0% |
### IMPORT_FROM
Successors and predecessors for IMPORT_FROM |Predecessors | Count | Percentage | |---|---:|---:| | STORE_NAME | 3291 | 52.7% | | IMPORT_NAME | 2936 | 47.0% | | POP_TOP | 15 | 0.2% | |Successors | Count | Percentage | |---|---:|---:| | STORE_NAME | 6123 | 98.0% | | STORE_FAST | 105 | 1.7% | | SWAP | 15 | 0.2% |
### IMPORT_NAME
Successors and predecessors for IMPORT_NAME |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 6606 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | IMPORT_FROM | 2936 | 44.4% | | STORE_NAME | 2030 | 30.7% | | STORE_FAST__LOAD_FAST | 1359 | 20.6% |
### IMPORT_STAR
Successors and predecessors for IMPORT_STAR |Predecessors | Count | Percentage | |---|---:|---:| | IMPORT_NAME | 157 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 122 | 77.7% | | PUSH_NULL | 10 | 6.4% | | LOAD_NAME | 9 | 5.7% |
### IS_OP
Successors and predecessors for IS_OP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 570790 | 23.0% | | LOAD_FAST | 483641 | 19.5% | | LOAD_FAST__LOAD_FAST | 389332 | 15.7% | |Successors | Count | Percentage | |---|---:|---:| | POP_JUMP_FORWARD_IF_FALSE | 1883381 | 75.8% | | JUMP_IF_TRUE_OR_POP | 294435 | 11.9% | | JUMP_IF_FALSE_OR_POP | 119233 | 4.8% |
### JUMP_BACKWARD
Successors and predecessors for JUMP_BACKWARD |Predecessors | Count | Percentage | |---|---:|---:| | POP_TOP | 901 | 30.4% | | LIST_APPEND | 803 | 27.1% | | POP_JUMP_FORWARD_IF_FALSE | 289 | 9.8% | |Successors | Count | Percentage | |---|---:|---:| | FOR_ITER | 2824 | 95.3% | | EXTENDED_ARG | 56 | 1.9% | | LOAD_FAST | 37 | 1.2% |
### JUMP_BACKWARD_NO_INTERRUPT
Successors and predecessors for JUMP_BACKWARD_NO_INTERRUPT |Predecessors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 1572156 | 100.0% | | RESUME | 194 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | SEND | 1572350 | 100.0% |
### JUMP_BACKWARD_QUICK
Successors and predecessors for JUMP_BACKWARD_QUICK |Predecessors | Count | Percentage | |---|---:|---:| | LIST_APPEND | 23442060 | 66.9% | | MAP_ADD | 6974476 | 19.9% | | PRECALL_NO_KW_LIST_APPEND | 1410424 | 4.0% | |Successors | Count | Percentage | |---|---:|---:| | FOR_ITER | 34706159 | 99.0% | | EXTENDED_ARG_QUICK | 214808 | 0.6% | | LOAD_FAST | 64411 | 0.2% |
### JUMP_FORWARD
Successors and predecessors for JUMP_FORWARD |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST | 1499632 | 32.8% | | POP_TOP | 848808 | 18.6% | | LOAD_CONST | 469611 | 10.3% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1774784 | 38.8% | | STORE_FAST__LOAD_FAST | 692438 | 15.1% | | LOAD_CONST__LOAD_FAST | 509781 | 11.1% |
### JUMP_IF_FALSE_OR_POP
Successors and predecessors for JUMP_IF_FALSE_OR_POP |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_NO_KW_BUILTIN_FAST | 255012 | 45.8% | | IS_OP | 119233 | 21.4% | | CONTAINS_OP | 74367 | 13.3% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 353508 | 63.4% | | LOAD_FAST | 118529 | 21.3% | | LOAD_FAST__LOAD_FAST | 58669 | 10.5% |
### JUMP_IF_TRUE_OR_POP
Successors and predecessors for JUMP_IF_TRUE_OR_POP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_ADAPTIVE | 414752 | 29.5% | | IS_OP | 294435 | 21.0% | | LOAD_ATTR_INSTANCE_VALUE | 238527 | 17.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 530932 | 37.8% | | RETURN_VALUE | 384167 | 27.4% | | LOAD_GLOBAL_BUILTIN | 236466 | 16.8% |
### KW_NAMES
Successors and predecessors for KW_NAMES |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1840027 | 51.3% | | LOAD_FAST__LOAD_FAST | 616121 | 17.2% | | LOAD_CONST | 483934 | 13.5% | |Successors | Count | Percentage | |---|---:|---:| | PRECALL_ADAPTIVE | 1879943 | 52.4% | | PRECALL_PYFUNC | 1466927 | 40.9% | | PRECALL_BOUND_METHOD | 137065 | 3.8% |
### LIST_APPEND
Successors and predecessors for LIST_APPEND |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST__LOAD_FAST | 6584426 | 28.1% | | BUILD_STRING | 6217066 | 26.5% | | BINARY_SUBSCR_LIST_INT | 6216426 | 26.5% | |Successors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 23442060 | 100.0% | | JUMP_BACKWARD | 803 | 0.0% | | PUSH_NULL | 99 | 0.0% |
### LIST_EXTEND
Successors and predecessors for LIST_EXTEND |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 198124 | 99.4% | | LOAD_CONST | 1101 | 0.6% | | LOAD_DEREF | 124 | 0.1% | |Successors | Count | Percentage | |---|---:|---:| | LIST_TO_TUPLE | 198250 | 99.4% | | LOAD_FAST__LOAD_CONST | 602 | 0.3% | | STORE_NAME | 289 | 0.1% |
### LIST_TO_TUPLE
Successors and predecessors for LIST_TO_TUPLE |Predecessors | Count | Percentage | |---|---:|---:| | LIST_EXTEND | 198250 | 100.0% | | LIST_APPEND | 54 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | BUILD_MAP | 177587 | 89.6% | | CALL_FUNCTION_EX | 20662 | 10.4% | | LOAD_FAST | 26 | 0.0% |
### LOAD_ATTR
Successors and predecessors for LOAD_ATTR |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 231221 | 77.4% | | LOAD_ATTR_WITH_HINT | 36759 | 12.3% | | LOAD_FAST | 14795 | 5.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_BUILTIN | 74196 | 24.8% | | LOAD_GLOBAL_MODULE | 38547 | 12.9% | | BUILD_TUPLE | 37627 | 12.6% |
### LOAD_ATTR_ADAPTIVE
Successors and predecessors for LOAD_ATTR_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 7792314 | 57.5% | | LOAD_ATTR_SLOT | 1292369 | 9.5% | | LOAD_GLOBAL_MODULE | 1111509 | 8.2% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 2465113 | 18.2% | | LOAD_FAST | 2326857 | 17.2% | | STORE_FAST__LOAD_FAST | 2154870 | 15.9% |
### LOAD_ATTR_INSTANCE_VALUE
Successors and predecessors for LOAD_ATTR_INSTANCE_VALUE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 20504782 | 59.2% | | LOAD_DEREF | 10702186 | 30.9% | | LOAD_FAST__LOAD_FAST | 1225560 | 3.5% | |Successors | Count | Percentage | |---|---:|---:| | CONTAINS_OP | 6495601 | 18.8% | | LOAD_FAST | 5755260 | 16.6% | | POP_JUMP_FORWARD_IF_FALSE | 3562294 | 10.3% |
### LOAD_ATTR_MODULE
Successors and predecessors for LOAD_ATTR_MODULE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_MODULE | 5536612 | 99.9% | | LOAD_FAST | 1755 | 0.0% | | LOAD_GLOBAL | 1215 | 0.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1676884 | 30.3% | | PRECALL_ADAPTIVE | 922892 | 16.7% | | LOAD_GLOBAL_MODULE | 682464 | 12.3% |
### LOAD_ATTR_SLOT
Successors and predecessors for LOAD_ATTR_SLOT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 9380299 | 93.8% | | LOAD_CONST__LOAD_FAST | 381774 | 3.8% | | LOAD_ATTR_INSTANCE_VALUE | 176555 | 1.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 5877423 | 58.8% | | LOAD_ATTR_ADAPTIVE | 1292369 | 12.9% | | BUILD_TUPLE | 897670 | 9.0% |
### LOAD_ATTR_WITH_HINT
Successors and predecessors for LOAD_ATTR_WITH_HINT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 806387 | 95.8% | | STORE_FAST__LOAD_FAST | 26126 | 3.1% | | LOAD_ATTR_INSTANCE_VALUE | 7356 | 0.9% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 235029 | 27.9% | | POP_JUMP_FORWARD_IF_FALSE | 148776 | 17.7% | | LOAD_METHOD_WITH_VALUES | 58732 | 7.0% |
### LOAD_BUILD_CLASS
Successors and predecessors for LOAD_BUILD_CLASS |Predecessors | Count | Percentage | |---|---:|---:| | PUSH_NULL | 2918 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 2883 | 98.8% | | LOAD_CLOSURE | 32 | 1.1% | | EXTENDED_ARG_QUICK | 3 | 0.1% |
### LOAD_CLASSDEREF
Successors and predecessors for LOAD_CLASSDEREF |Predecessors | Count | Percentage | |---|---:|---:| | STORE_NAME | 14 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | STORE_NAME | 13 | 92.9% | | LOAD_ATTR | 1 | 7.1% |
### LOAD_CLOSURE
Successors and predecessors for LOAD_CLOSURE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CLOSURE | 472893 | 53.4% | | RESUME_QUICK | 145087 | 16.4% | | POP_JUMP_FORWARD_IF_TRUE | 62373 | 7.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CLOSURE | 472893 | 53.4% | | BUILD_TUPLE | 411631 | 46.5% | | COPY | 503 | 0.1% |
### LOAD_CONST
Successors and predecessors for LOAD_CONST |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_METHOD_NO_DICT | 11930215 | 20.3% | | LOAD_CONST | 8183054 | 13.9% | | PRECALL_BUILTIN_CLASS | 6350469 | 10.8% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 8999388 | 15.3% | | LOAD_CONST | 8183054 | 13.9% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST | 6629988 | 11.3% |
### LOAD_CONST__LOAD_FAST
Successors and predecessors for LOAD_CONST__LOAD_FAST |Predecessors | Count | Percentage | |---|---:|---:| | FORMAT_VALUE | 6219131 | 50.7% | | STORE_ATTR_INSTANCE_VALUE | 1641333 | 13.4% | | POP_JUMP_FORWARD_IF_FALSE | 839952 | 6.9% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_METHOD_NO_DICT | 6247711 | 51.0% | | STORE_ATTR_INSTANCE_VALUE | 2609498 | 21.3% | | CONTAINS_OP | 1325137 | 10.8% |
### LOAD_DEREF
Successors and predecessors for LOAD_DEREF |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST | 7220517 | 28.2% | | LOAD_FAST | 7004117 | 27.4% | | STORE_FAST__LOAD_FAST | 6643555 | 26.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 10702186 | 41.8% | | FORMAT_VALUE | 6216512 | 24.3% | | LOAD_FAST | 3719492 | 14.5% |
### LOAD_FAST
Successors and predecessors for LOAD_FAST |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_BUILTIN | 16828379 | 13.5% | | RESUME_QUICK | 15781801 | 12.7% | | POP_JUMP_FORWARD_IF_FALSE | 11760602 | 9.5% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 20504782 | 16.5% | | LOAD_METHOD_NO_DICT | 12444225 | 10.0% | | LOAD_ATTR_SLOT | 9380299 | 7.5% |
### LOAD_FAST__LOAD_CONST
Successors and predecessors for LOAD_FAST__LOAD_CONST |Predecessors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 3344166 | 27.9% | | LOAD_GLOBAL_BUILTIN | 1535367 | 12.8% | | LOAD_GLOBAL_MODULE | 967760 | 8.1% | |Successors | Count | Percentage | |---|---:|---:| | BINARY_SUBSCR_TUPLE_INT | 3271285 | 27.3% | | BINARY_SUBSCR_ADAPTIVE | 1092467 | 9.1% | | BINARY_SUBSCR_DICT | 1083097 | 9.1% |
### LOAD_FAST__LOAD_FAST
Successors and predecessors for LOAD_FAST__LOAD_FAST |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_MODULE | 2062417 | 13.5% | | STORE_ATTR_INSTANCE_VALUE | 1813385 | 11.9% | | LOAD_FAST__LOAD_FAST | 1364459 | 9.0% | |Successors | Count | Percentage | |---|---:|---:| | STORE_ATTR_INSTANCE_VALUE | 3036626 | 19.9% | | BUILD_TUPLE | 1845747 | 12.1% | | LOAD_FAST | 1437517 | 9.4% |
### LOAD_GLOBAL
Successors and predecessors for LOAD_GLOBAL |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_BUILTIN | 17449 | 31.3% | | LOAD_GLOBAL_MODULE | 10839 | 19.4% | | LOAD_FAST | 4790 | 8.6% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 21313 | 38.2% | | PRECALL | 4568 | 8.2% | | LOAD_ATTR | 4272 | 7.7% |
### LOAD_GLOBAL_ADAPTIVE
Successors and predecessors for LOAD_GLOBAL_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 2833 | 17.6% | | POP_JUMP_FORWARD_IF_FALSE | 2408 | 14.9% | | STORE_FAST | 2231 | 13.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 4048 | 25.1% | | LOAD_GLOBAL_MODULE | 2743 | 17.0% | | LOAD_GLOBAL_BUILTIN | 2187 | 13.6% |
### LOAD_GLOBAL_BUILTIN
Successors and predecessors for LOAD_GLOBAL_BUILTIN |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST | 7131323 | 29.3% | | RESUME_QUICK | 3738381 | 15.4% | | LOAD_FAST | 3173390 | 13.1% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 16828379 | 69.2% | | PRECALL_NO_KW_ISINSTANCE | 2913483 | 12.0% | | LOAD_FAST__LOAD_CONST | 1535367 | 6.3% |
### LOAD_GLOBAL_MODULE
Successors and predecessors for LOAD_GLOBAL_MODULE |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST | 2968473 | 16.6% | | LOAD_FAST | 2831964 | 15.8% | | RESUME_QUICK | 2595405 | 14.5% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_MODULE | 5536612 | 30.9% | | LOAD_FAST | 2422660 | 13.5% | | LOAD_FAST__LOAD_FAST | 2062417 | 11.5% |
### LOAD_METHOD
Successors and predecessors for LOAD_METHOD |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_METHOD_WITH_DICT | 284360 | 67.0% | | LOAD_METHOD_WITH_VALUES | 127191 | 30.0% | | LOAD_FAST | 6244 | 1.5% | |Successors | Count | Percentage | |---|---:|---:| | PRECALL_PYFUNC | 151226 | 35.7% | | LOAD_FAST | 132239 | 31.2% | | PRECALL_ADAPTIVE | 108713 | 25.6% |
### LOAD_METHOD_ADAPTIVE
Successors and predecessors for LOAD_METHOD_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3259914 | 59.9% | | LOAD_ATTR_MODULE | 630122 | 11.6% | | STORE_FAST__LOAD_FAST | 465172 | 8.5% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 2663958 | 49.0% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 1312159 | 24.1% | | LOAD_FAST__LOAD_FAST | 389226 | 7.2% |
### LOAD_METHOD_CLASS
Successors and predecessors for LOAD_METHOD_CLASS |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 176026 | 47.9% | | STORE_FAST__LOAD_FAST | 176025 | 47.9% | | LOAD_GLOBAL_MODULE | 15608 | 4.2% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_CONST | 352064 | 95.8% | | LOAD_FAST__LOAD_FAST | 15563 | 4.2% | | LOAD_FAST | 49 | 0.0% |
### LOAD_METHOD_MODULE
Successors and predecessors for LOAD_METHOD_MODULE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_MODULE | 81120 | 63.0% | | LOAD_GLOBAL_MODULE | 29551 | 22.9% | | LOAD_FAST | 15638 | 12.1% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 80713 | 62.6% | | PRECALL_ADAPTIVE | 19110 | 14.8% | | PRECALL_PYFUNC | 16582 | 12.9% |
### LOAD_METHOD_NO_DICT
Successors and predecessors for LOAD_METHOD_NO_DICT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 12444225 | 41.5% | | LOAD_CONST__LOAD_FAST | 6247711 | 20.8% | | STORE_FAST__LOAD_FAST | 4276628 | 14.3% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 11930215 | 39.8% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 9078910 | 30.3% | | LOAD_FAST | 5424774 | 18.1% |
### LOAD_METHOD_WITH_DICT
Successors and predecessors for LOAD_METHOD_WITH_DICT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_DEREF | 161436 | 47.6% | | LOAD_FAST | 83266 | 24.5% | | LOAD_ATTR_SLOT | 36296 | 10.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_METHOD | 284360 | 83.8% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 18024 | 5.3% | | LOAD_GLOBAL_BUILTIN | 15514 | 4.6% |
### LOAD_METHOD_WITH_VALUES
Successors and predecessors for LOAD_METHOD_WITH_VALUES |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 4162408 | 54.6% | | LOAD_ATTR_INSTANCE_VALUE | 1520235 | 19.9% | | STORE_FAST__LOAD_FAST | 1077287 | 14.1% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3288784 | 43.1% | | PRECALL_PYFUNC | 2066957 | 27.1% | | LOAD_FAST__LOAD_FAST | 799402 | 10.5% |
### LOAD_NAME
Successors and predecessors for LOAD_NAME |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 11800 | 26.2% | | LOAD_NAME | 11342 | 25.2% | | STORE_NAME | 6212 | 13.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_NAME | 11342 | 25.2% | | LOAD_CONST | 9504 | 21.1% | | LOAD_ATTR | 4597 | 10.2% |
### MAKE_CELL
Successors and predecessors for MAKE_CELL |Predecessors | Count | Percentage | |---|---:|---:| | MAKE_CELL | 492331 | 63.0% | | CALL_PY_EXACT_ARGS | 254026 | 32.5% | | CALL_ADAPTIVE | 32802 | 4.2% | |Successors | Count | Percentage | |---|---:|---:| | MAKE_CELL | 492331 | 50.0% | | RESUME_QUICK | 310977 | 31.6% | | RETURN_GENERATOR | 179583 | 18.2% |
### MAKE_FUNCTION
Successors and predecessors for MAKE_FUNCTION |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 1135324 | 99.8% | | LOAD_FAST__LOAD_CONST | 2090 | 0.2% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 346382 | 30.5% | | LOAD_CONST | 266276 | 23.4% | | LOAD_GLOBAL_BUILTIN | 121026 | 10.6% |
### MAP_ADD
Successors and predecessors for MAP_ADD |Predecessors | Count | Percentage | |---|---:|---:| | BINARY_SUBSCR_ADAPTIVE | 3048345 | 43.7% | | BINARY_SUBSCR_DICT | 2928274 | 41.9% | | LOAD_FAST | 717169 | 10.3% | |Successors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 6974476 | 99.9% | | EXTENDED_ARG | 4283 | 0.1% | | LOAD_CONST | 2119 | 0.0% |
### NOP
Successors and predecessors for NOP |Predecessors | Count | Percentage | |---|---:|---:| | RESUME_QUICK | 951118 | 23.4% | | STORE_FAST | 714521 | 17.6% | | POP_JUMP_FORWARD_IF_NONE | 486128 | 11.9% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 2103455 | 51.7% | | LOAD_GLOBAL_BUILTIN | 641292 | 15.8% | | LOAD_GLOBAL_MODULE | 556341 | 13.7% |
### POP_EXCEPT
Successors and predecessors for POP_EXCEPT |Predecessors | Count | Percentage | |---|---:|---:| | STORE_ATTR_INSTANCE_VALUE | 117575 | 44.6% | | SWAP | 75040 | 28.5% | | COPY | 62482 | 23.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 118765 | 45.1% | | RETURN_VALUE | 75040 | 28.5% | | RERAISE | 62482 | 23.7% |
### POP_JUMP_BACKWARD_IF_FALSE
Successors and predecessors for POP_JUMP_BACKWARD_IF_FALSE |Predecessors | Count | Percentage | |---|---:|---:| | CONTAINS_OP | 6572006 | 88.7% | | CALL_ADAPTIVE | 783460 | 10.6% | | STORE_FAST__LOAD_FAST | 48408 | 0.7% | |Successors | Count | Percentage | |---|---:|---:| | FOR_ITER | 3714647 | 50.1% | | LOAD_FAST | 2980321 | 40.2% | | LOAD_FAST__LOAD_CONST | 715414 | 9.7% |
### POP_JUMP_BACKWARD_IF_NOT_NONE
Successors and predecessors for POP_JUMP_BACKWARD_IF_NOT_NONE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_SLOT | 88 | 67.7% | | STORE_FAST__LOAD_FAST | 32 | 24.6% | | LOAD_FAST | 10 | 7.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 127 | 97.7% | | LOAD_FAST__LOAD_FAST | 3 | 2.3% |
### POP_JUMP_BACKWARD_IF_TRUE
Successors and predecessors for POP_JUMP_BACKWARD_IF_TRUE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR_INSTANCE_VALUE | 60024 | 48.1% | | IS_OP | 46779 | 37.5% | | LOAD_FAST | 15667 | 12.6% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 59644 | 47.8% | | LOAD_GLOBAL_BUILTIN | 47017 | 37.7% | | LOAD_FAST__LOAD_CONST | 15643 | 12.5% |
### POP_JUMP_FORWARD_IF_FALSE
Successors and predecessors for POP_JUMP_FORWARD_IF_FALSE |Predecessors | Count | Percentage | |---|---:|---:| | CONTAINS_OP | 4046957 | 17.5% | | LOAD_ATTR_INSTANCE_VALUE | 3562294 | 15.4% | | PRECALL_NO_KW_ISINSTANCE | 3012359 | 13.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 11760602 | 50.8% | | LOAD_CONST | 3340696 | 14.4% | | LOAD_GLOBAL_BUILTIN | 1819106 | 7.9% |
### POP_JUMP_FORWARD_IF_NONE
Successors and predecessors for POP_JUMP_FORWARD_IF_NONE |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST__LOAD_FAST | 2090253 | 36.1% | | LOAD_FAST | 1676203 | 28.9% | | LOAD_ATTR_INSTANCE_VALUE | 1443185 | 24.9% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3427048 | 59.2% | | LOAD_DEREF | 508194 | 8.8% | | NOP | 486128 | 8.4% |
### POP_JUMP_FORWARD_IF_NOT_NONE
Successors and predecessors for POP_JUMP_FORWARD_IF_NOT_NONE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1879124 | 45.0% | | STORE_FAST__LOAD_FAST | 1441137 | 34.5% | | LOAD_ATTR_INSTANCE_VALUE | 411995 | 9.9% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1525519 | 36.5% | | LOAD_CONST | 520942 | 12.5% | | LOAD_GLOBAL_MODULE | 469794 | 11.2% |
### POP_JUMP_FORWARD_IF_TRUE
Successors and predecessors for POP_JUMP_FORWARD_IF_TRUE |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST__LOAD_FAST | 1844772 | 22.7% | | LOAD_FAST | 1412688 | 17.4% | | LOAD_ATTR_INSTANCE_VALUE | 1111937 | 13.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 4200835 | 51.8% | | LOAD_GLOBAL_BUILTIN | 1303667 | 16.1% | | LOAD_FAST__LOAD_FAST | 1046477 | 12.9% |
### POP_TOP
Successors and predecessors for POP_TOP |Predecessors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 4217343 | 38.7% | | CALL_ADAPTIVE | 1755434 | 16.1% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_O | 1533674 | 14.1% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3501986 | 24.8% | | RESUME_QUICK | 3208004 | 22.7% | | LOAD_CONST | 2986913 | 21.2% |
### PRECALL
Successors and predecessors for PRECALL |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 107319 | 40.1% | | PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS | 33708 | 12.6% | | PRECALL_BOUND_METHOD | 30661 | 11.5% | |Successors | Count | Percentage | |---|---:|---:| | CALL_ADAPTIVE | 225543 | 84.4% | | CALL | 41698 | 15.6% | | CALL_PY_EXACT_ARGS | 61 | 0.0% |
### PRECALL_ADAPTIVE
Successors and predecessors for PRECALL_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 3342074 | 23.2% | | KW_NAMES | 1879943 | 13.0% | | LOAD_CONST | 1558856 | 10.8% | |Successors | Count | Percentage | |---|---:|---:| | CALL_ADAPTIVE | 13720950 | 95.2% | | PRECALL_ADAPTIVE | 683425 | 4.7% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 2258 | 0.0% |
### PRECALL_BOUND_METHOD
Successors and predecessors for PRECALL_BOUND_METHOD |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 836795 | 57.1% | | KW_NAMES | 137065 | 9.4% | | LOAD_ATTR_SLOT | 117344 | 8.0% | |Successors | Count | Percentage | |---|---:|---:| | CALL_PY_EXACT_ARGS | 1017481 | 69.5% | | CALL_ADAPTIVE | 224977 | 15.4% | | CALL_PY_WITH_DEFAULTS | 191614 | 13.1% |
### PRECALL_BUILTIN_CLASS
Successors and predecessors for PRECALL_BUILTIN_CLASS |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 6266194 | 83.7% | | LOAD_FAST | 330761 | 4.4% | | LOAD_GLOBAL_BUILTIN | 283310 | 3.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 6350469 | 84.8% | | RETURN_VALUE | 298663 | 4.0% | | LOAD_METHOD_ADAPTIVE | 176912 | 2.4% |
### PRECALL_BUILTIN_FAST_WITH_KEYWORDS
Successors and predecessors for PRECALL_BUILTIN_FAST_WITH_KEYWORDS |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 162853 | 40.5% | | KW_NAMES | 101411 | 25.2% | | PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS | 63281 | 15.7% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST | 115486 | 28.7% | | RETURN_VALUE | 97386 | 24.2% | | GET_ITER | 73648 | 18.3% |
### PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS
Successors and predecessors for PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 1015073 | 63.9% | | LOAD_FAST | 279389 | 17.6% | | LOAD_METHOD_NO_DICT | 94890 | 6.0% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST | 371096 | 23.3% | | POP_TOP | 328517 | 20.7% | | JUMP_FORWARD | 264699 | 16.7% |
### PRECALL_NO_KW_BUILTIN_FAST
Successors and predecessors for PRECALL_NO_KW_BUILTIN_FAST |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_CONST | 381556 | 34.8% | | LOAD_CONST | 354779 | 32.4% | | LOAD_FAST | 132595 | 12.1% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 322621 | 29.4% | | POP_JUMP_FORWARD_IF_TRUE | 315509 | 28.8% | | JUMP_IF_FALSE_OR_POP | 255012 | 23.3% |
### PRECALL_NO_KW_BUILTIN_O
Successors and predecessors for PRECALL_NO_KW_BUILTIN_O |Predecessors | Count | Percentage | |---|---:|---:| | BUILD_TUPLE | 400501 | 45.7% | | LOAD_FAST | 275614 | 31.4% | | SEND | 74126 | 8.5% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 401878 | 45.8% | | POP_TOP | 313619 | 35.8% | | STORE_FAST | 77868 | 8.9% |
### PRECALL_NO_KW_ISINSTANCE
Successors and predecessors for PRECALL_NO_KW_ISINSTANCE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_BUILTIN | 2913483 | 71.3% | | LOAD_GLOBAL_MODULE | 788029 | 19.3% | | BUILD_TUPLE | 297623 | 7.3% | |Successors | Count | Percentage | |---|---:|---:| | POP_JUMP_FORWARD_IF_FALSE | 3012359 | 73.7% | | POP_JUMP_FORWARD_IF_TRUE | 985254 | 24.1% | | STORE_FAST__LOAD_FAST | 81542 | 2.0% |
### PRECALL_NO_KW_LEN
Successors and predecessors for PRECALL_NO_KW_LEN |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 2471536 | 85.3% | | LOAD_ATTR_INSTANCE_VALUE | 243191 | 8.4% | | BINARY_SUBSCR_LIST_INT | 138583 | 4.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 1426087 | 49.2% | | BUILD_TUPLE | 248373 | 8.6% | | BINARY_OP_SUBTRACT_INT | 220479 | 7.6% |
### PRECALL_NO_KW_LIST_APPEND
Successors and predecessors for PRECALL_NO_KW_LIST_APPEND |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1517467 | 76.6% | | BUILD_TUPLE | 386311 | 19.5% | | RETURN_VALUE | 44389 | 2.2% | |Successors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 1410424 | 71.2% | | LOAD_FAST | 273063 | 13.8% | | LOAD_CONST | 203958 | 10.3% |
### PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST
Successors and predecessors for PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 6629988 | 77.5% | | LOAD_GLOBAL_MODULE | 654784 | 7.7% | | LOAD_FAST | 368373 | 4.3% | |Successors | Count | Percentage | |---|---:|---:| | FORMAT_VALUE | 6216426 | 72.6% | | STORE_FAST__LOAD_FAST | 692583 | 8.1% | | LIST_APPEND | 589539 | 6.9% |
### PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS
Successors and predecessors for PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_METHOD_NO_DICT | 9078910 | 86.7% | | LOAD_METHOD_ADAPTIVE | 1312159 | 12.5% | | LOAD_METHOD_WITH_VALUES | 50403 | 0.5% | |Successors | Count | Percentage | |---|---:|---:| | PRECALL_BUILTIN_CLASS | 6266194 | 59.8% | | POP_JUMP_FORWARD_IF_FALSE | 999350 | 9.5% | | STORE_FAST__LOAD_FAST | 906664 | 8.7% |
### PRECALL_NO_KW_METHOD_DESCRIPTOR_O
Successors and predecessors for PRECALL_NO_KW_METHOD_DESCRIPTOR_O |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 3113806 | 54.7% | | LOAD_FAST | 1733409 | 30.4% | | CALL_ADAPTIVE | 374964 | 6.6% | |Successors | Count | Percentage | |---|---:|---:| | UNPACK_SEQUENCE_TUPLE | 3471351 | 61.0% | | POP_TOP | 1533674 | 26.9% | | RETURN_VALUE | 262708 | 4.6% |
### PRECALL_NO_KW_STR_1
Successors and predecessors for PRECALL_NO_KW_STR_1 |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1048609 | 72.7% | | PRECALL_NO_KW_LEN | 202348 | 14.0% | | RETURN_VALUE | 117348 | 8.1% | |Successors | Count | Percentage | |---|---:|---:| | BINARY_OP_ADD_UNICODE | 293856 | 20.4% | | LOAD_GLOBAL_BUILTIN | 277166 | 19.2% | | RETURN_VALUE | 234870 | 16.3% |
### PRECALL_NO_KW_TUPLE_1
Successors and predecessors for PRECALL_NO_KW_TUPLE_1 |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 76746 | 90.2% | | RETURN_GENERATOR | 4195 | 4.9% | | LOAD_GLOBAL_MODULE | 990 | 1.2% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 76272 | 89.7% | | RETURN_VALUE | 2562 | 3.0% | | STORE_FAST__LOAD_FAST | 2027 | 2.4% |
### PRECALL_NO_KW_TYPE_1
Successors and predecessors for PRECALL_NO_KW_TYPE_1 |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 896552 | 83.1% | | LOAD_CONST | 181261 | 16.8% | | LOAD_GLOBAL_MODULE | 748 | 0.1% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_MODULE | 313035 | 29.0% | | LOAD_FAST | 238265 | 22.1% | | BUILD_TUPLE | 182462 | 16.9% |
### PRECALL_PYFUNC
Successors and predecessors for PRECALL_PYFUNC |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 4811651 | 36.1% | | LOAD_METHOD_WITH_VALUES | 2066957 | 15.5% | | KW_NAMES | 1466927 | 11.0% | |Successors | Count | Percentage | |---|---:|---:| | CALL_PY_EXACT_ARGS | 10613002 | 79.7% | | CALL_ADAPTIVE | 2418286 | 18.2% | | CALL_PY_WITH_DEFAULTS | 282147 | 2.1% |
### PUSH_EXC_INFO
Successors and predecessors for PUSH_EXC_INFO |Predecessors | Count | Percentage | |---|---:|---:| | BINARY_OP_ADAPTIVE | 117345 | 44.6% | | BINARY_SUBSCR_DICT | 63407 | 24.1% | | RERAISE | 61625 | 23.4% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_BUILTIN | 261595 | 99.3% | | LOAD_CONST | 447 | 0.2% | | LOAD_GLOBAL_MODULE | 387 | 0.1% |
### PUSH_NULL
Successors and predecessors for PUSH_NULL |Predecessors | Count | Percentage | |---|---:|---:| | STORE_FAST | 664656 | 28.6% | | RESUME_QUICK | 515322 | 22.1% | | NOP | 278434 | 12.0% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 1011617 | 43.5% | | LOAD_FAST__LOAD_FAST | 624221 | 26.8% | | LOAD_DEREF | 618920 | 26.6% |
### RAISE_VARARGS
Successors and predecessors for RAISE_VARARGS |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 61150 | 76.6% | | CALL_ADAPTIVE | 17782 | 22.3% | | LOAD_FAST | 464 | 0.6% | |Successors | Count | Percentage | |---|---:|---:| | COPY | 61294 | 79.0% | | PUSH_EXC_INFO | 16189 | 20.9% | | LOAD_CONST | 132 | 0.2% |
### RERAISE
Successors and predecessors for RERAISE |Predecessors | Count | Percentage | |---|---:|---:| | POP_EXCEPT | 62482 | 98.2% | | STORE_FAST | 447 | 0.7% | | POP_JUMP_FORWARD_IF_FALSE | 358 | 0.6% | |Successors | Count | Percentage | |---|---:|---:| | PUSH_EXC_INFO | 61625 | 98.2% | | COPY | 1120 | 1.8% |
### RESUME
Successors and predecessors for RESUME |Predecessors | Count | Percentage | |---|---:|---:| | CALL | 6128 | 51.2% | | CALL_PY_EXACT_ARGS | 1589 | 13.3% | | COPY_FREE_VARS | 1484 | 12.4% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 6774 | 33.9% | | LOAD_GLOBAL | 4576 | 22.9% | | LOAD_NAME | 2960 | 14.8% |
### RESUME_QUICK
Successors and predecessors for RESUME_QUICK |Predecessors | Count | Percentage | |---|---:|---:| | CALL_PY_EXACT_ARGS | 9170604 | 55.9% | | POP_TOP | 3208004 | 19.6% | | CALL_ADAPTIVE | 1929784 | 11.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 15781801 | 48.9% | | LOAD_GLOBAL_BUILTIN | 3738381 | 11.6% | | LOAD_FAST__LOAD_CONST | 3344166 | 10.4% |
### RETURN_GENERATOR
Successors and predecessors for RETURN_GENERATOR |Predecessors | Count | Percentage | |---|---:|---:| | CALL_PY_EXACT_ARGS | 1344655 | 55.3% | | COPY_FREE_VARS | 395105 | 16.2% | | CALL_ADAPTIVE | 319863 | 13.2% | |Successors | Count | Percentage | |---|---:|---:| | GET_AWAITABLE | 1698660 | 78.6% | | PRECALL_ADAPTIVE | 150609 | 7.0% | | YIELD_VALUE | 117526 | 5.4% |
### RETURN_VALUE
Successors and predecessors for RETURN_VALUE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 8999388 | 29.6% | | LOAD_FAST | 4775345 | 15.7% | | BINARY_SUBSCR_TUPLE_INT | 3167195 | 10.4% | |Successors | Count | Percentage | |---|---:|---:| | POP_TOP | 4217343 | 33.4% | | STORE_FAST__LOAD_FAST | 2243426 | 17.8% | | STORE_FAST | 1479269 | 11.7% |
### SEND
Successors and predecessors for SEND |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 2978359 | 65.4% | | JUMP_BACKWARD_NO_INTERRUPT | 1572350 | 34.6% | |Successors | Count | Percentage | |---|---:|---:| | YIELD_VALUE | 1572814 | 34.6% | | POP_TOP | 1229997 | 27.0% | | STORE_FAST__LOAD_FAST | 468125 | 10.3% |
### SETUP_ANNOTATIONS
Successors and predecessors for SETUP_ANNOTATIONS |Predecessors | Count | Percentage | |---|---:|---:| | STORE_NAME | 218 | 83.5% | | RESUME | 43 | 16.5% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 166 | 63.6% | | LOAD_NAME | 81 | 31.0% | | PUSH_NULL | 12 | 4.6% |
### SET_ADD
Successors and predecessors for SET_ADD |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_BUILTIN_CLASS | 2793 | 83.3% | | PRECALL_NO_KW_BUILTIN_O | 234 | 7.0% | | LOAD_FAST | 141 | 4.2% | |Successors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 3265 | 97.3% | | JUMP_BACKWARD | 89 | 2.7% |
### SET_UPDATE
Successors and predecessors for SET_UPDATE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 26 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | STORE_NAME | 14 | 53.8% | | STORE_FAST | 7 | 26.9% | | PRECALL | 3 | 11.5% |
### STORE_ATTR
Successors and predecessors for STORE_ATTR |Predecessors | Count | Percentage | |---|---:|---:| | STORE_ATTR_INSTANCE_VALUE | 95124 | 86.9% | | LOAD_FAST | 9496 | 8.7% | | STORE_ATTR_WITH_HINT | 3480 | 3.2% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 73922 | 67.5% | | LOAD_CONST | 17879 | 16.3% | | LOAD_CONST__LOAD_FAST | 8093 | 7.4% |
### STORE_ATTR_ADAPTIVE
Successors and predecessors for STORE_ATTR_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST__LOAD_FAST | 323591 | 49.9% | | LOAD_FAST__LOAD_FAST | 156992 | 24.2% | | LOAD_FAST | 95786 | 14.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_DEREF | 196459 | 30.3% | | LOAD_CONST | 132098 | 20.4% | | LOAD_FAST | 117594 | 18.2% |
### STORE_ATTR_INSTANCE_VALUE
Successors and predecessors for STORE_ATTR_INSTANCE_VALUE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_FAST | 3036626 | 34.5% | | LOAD_CONST__LOAD_FAST | 2609498 | 29.7% | | LOAD_FAST | 2510197 | 28.5% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 2713770 | 30.9% | | LOAD_FAST__LOAD_FAST | 1813385 | 20.6% | | LOAD_CONST__LOAD_FAST | 1641333 | 18.7% |
### STORE_ATTR_SLOT
Successors and predecessors for STORE_ATTR_SLOT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 707021 | 74.3% | | LOAD_FAST__LOAD_FAST | 124183 | 13.1% | | LOAD_CONST__LOAD_FAST | 119770 | 12.6% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 412994 | 43.4% | | LOAD_CONST | 237109 | 24.9% | | BUILD_MAP | 176027 | 18.5% |
### STORE_ATTR_WITH_HINT
Successors and predecessors for STORE_ATTR_WITH_HINT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 119727 | 99.1% | | LOAD_CONST__LOAD_FAST | 806 | 0.7% | | LOAD_FAST__LOAD_FAST | 194 | 0.2% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 117336 | 97.1% | | STORE_ATTR | 3480 | 2.9% | | LOAD_CONST__LOAD_FAST | 3 | 0.0% |
### STORE_DEREF
Successors and predecessors for STORE_DEREF |Predecessors | Count | Percentage | |---|---:|---:| | BINARY_OP_ADD_INT | 390327 | 47.8% | | LOAD_CONST | 250002 | 30.6% | | CALL_ADAPTIVE | 77575 | 9.5% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_DEREF | 258213 | 31.6% | | LOAD_CONST | 217790 | 26.7% | | LOAD_FAST__LOAD_FAST | 195420 | 23.9% |
### STORE_FAST
Successors and predecessors for STORE_FAST |Predecessors | Count | Percentage | |---|---:|---:| | FOR_ITER | 14201160 | 63.7% | | RETURN_VALUE | 1479269 | 6.6% | | CALL_ADAPTIVE | 1478685 | 6.6% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_DEREF | 7220517 | 32.4% | | LOAD_GLOBAL_BUILTIN | 7131323 | 32.0% | | LOAD_GLOBAL_MODULE | 2968473 | 13.3% |
### STORE_FAST__LOAD_FAST
Successors and predecessors for STORE_FAST__LOAD_FAST |Predecessors | Count | Percentage | |---|---:|---:| | FOR_ITER | 19293662 | 51.0% | | STORE_FAST__STORE_FAST | 3386280 | 8.9% | | CALL_ADAPTIVE | 3354093 | 8.9% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_DEREF | 6643555 | 17.6% | | LIST_APPEND | 6584426 | 17.4% | | LOAD_CONST | 4835678 | 12.8% |
### STORE_FAST__STORE_FAST
Successors and predecessors for STORE_FAST__STORE_FAST |Predecessors | Count | Percentage | |---|---:|---:| | UNPACK_SEQUENCE_TWO_TUPLE | 6381582 | 60.7% | | UNPACK_SEQUENCE_TUPLE | 3616347 | 34.4% | | COPY | 287404 | 2.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 5081694 | 48.3% | | STORE_FAST__LOAD_FAST | 3386280 | 32.2% | | LOAD_FAST__LOAD_FAST | 809451 | 7.7% |
### STORE_GLOBAL
Successors and predecessors for STORE_GLOBAL |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 73 | 37.8% | | JUMP_IF_TRUE_OR_POP | 54 | 28.0% | | CALL | 15 | 7.8% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 77 | 39.9% | | LOAD_GLOBAL_MODULE | 40 | 20.7% | | LOAD_GLOBAL | 33 | 17.1% |
### STORE_NAME
Successors and predecessors for STORE_NAME |Predecessors | Count | Percentage | |---|---:|---:| | MAKE_FUNCTION | 15426 | 32.1% | | LOAD_CONST | 7968 | 16.6% | | IMPORT_FROM | 6123 | 12.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 26587 | 55.4% | | LOAD_NAME | 6212 | 12.9% | | PUSH_NULL | 5256 | 10.9% |
### STORE_SUBSCR
Successors and predecessors for STORE_SUBSCR |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 1287 | 56.6% | | LOAD_FAST | 526 | 23.1% | | LOAD_ATTR | 128 | 5.6% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 700 | 30.8% | | LOAD_FAST | 455 | 20.0% | | LOAD_NAME | 303 | 13.3% |
### STORE_SUBSCR_ADAPTIVE
Successors and predecessors for STORE_SUBSCR_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 148452 | 52.5% | | LOAD_ATTR_MODULE | 117348 | 41.5% | | SWAP | 10909 | 3.9% | |Successors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 149361 | 52.9% | | LOAD_CONST | 59497 | 21.1% | | LOAD_FAST | 58994 | 20.9% |
### STORE_SUBSCR_DICT
Successors and predecessors for STORE_SUBSCR_DICT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_FAST | 474537 | 28.1% | | BINARY_SUBSCR_DICT | 442635 | 26.2% | | LOAD_FAST | 291665 | 17.3% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 878739 | 52.0% | | LOAD_FAST__LOAD_FAST | 473883 | 28.1% | | JUMP_BACKWARD_QUICK | 100561 | 6.0% |
### STORE_SUBSCR_LIST_INT
Successors and predecessors for STORE_SUBSCR_LIST_INT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST__LOAD_FAST | 3507 | 77.6% | | LOAD_FAST | 694 | 15.4% | | LOAD_NAME | 221 | 4.9% | |Successors | Count | Percentage | |---|---:|---:| | JUMP_BACKWARD_QUICK | 2072 | 45.9% | | EXTENDED_ARG_QUICK | 1367 | 30.3% | | LOAD_CONST | 524 | 11.6% |
### SWAP
Successors and predecessors for SWAP |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_CONST__LOAD_FAST | 410858 | 32.9% | | BINARY_OP_ADD_INT | 405140 | 32.5% | | BINARY_OP_SUBTRACT_INT | 135060 | 10.8% | |Successors | Count | Percentage | |---|---:|---:| | STORE_ATTR_INSTANCE_VALUE | 560289 | 44.9% | | COPY | 413031 | 33.1% | | POP_EXCEPT | 75040 | 6.0% |
### UNARY_INVERT
Successors and predecessors for UNARY_INVERT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 682 | 98.0% | | LOAD_FAST__LOAD_FAST | 8 | 1.1% | | CALL | 6 | 0.9% | |Successors | Count | Percentage | |---|---:|---:| | BINARY_OP_ADAPTIVE | 647 | 93.0% | | BINARY_OP | 28 | 4.0% | | LOAD_CONST | 13 | 1.9% |
### UNARY_NEGATIVE
Successors and predecessors for UNARY_NEGATIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_GLOBAL_MODULE | 15522 | 94.8% | | STORE_FAST__LOAD_FAST | 279 | 1.7% | | LOAD_CONST__LOAD_FAST | 279 | 1.7% | |Successors | Count | Percentage | |---|---:|---:| | LOAD_CONST | 15831 | 96.7% | | STORE_FAST | 280 | 1.7% | | PRECALL_BUILTIN_CLASS | 135 | 0.8% |
### UNARY_NOT
Successors and predecessors for UNARY_NOT |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_FAST | 60045 | 50.1% | | CALL_ADAPTIVE | 58703 | 49.0% | | PRECALL_NO_KW_ISINSTANCE | 572 | 0.5% | |Successors | Count | Percentage | |---|---:|---:| | RETURN_VALUE | 58739 | 49.0% | | LOAD_FAST__LOAD_FAST | 58669 | 48.9% | | JUMP_IF_FALSE_OR_POP | 1227 | 1.0% |
### UNARY_POSITIVE
Successors and predecessors for UNARY_POSITIVE |Predecessors | Count | Percentage | |---|---:|---:| | LOAD_ATTR | 10 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | BUILD_TUPLE | 4 | 40.0% | | PRECALL | 3 | 30.0% | | LOAD_GLOBAL | 3 | 30.0% |
### UNPACK_SEQUENCE
Successors and predecessors for UNPACK_SEQUENCE |Predecessors | Count | Percentage | |---|---:|---:| | FOR_ITER | 949 | 54.7% | | RETURN_VALUE | 395 | 22.8% | | CALL | 243 | 14.0% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST | 1562 | 90.1% | | STORE_NAME | 99 | 5.7% | | LOAD_FAST | 40 | 2.3% |
### UNPACK_SEQUENCE_ADAPTIVE
Successors and predecessors for UNPACK_SEQUENCE_ADAPTIVE |Predecessors | Count | Percentage | |---|---:|---:| | FOR_ITER | 160 | 40.9% | | RETURN_VALUE | 110 | 28.1% | | RETURN_GENERATOR | 33 | 8.4% | |Successors | Count | Percentage | |---|---:|---:| | UNPACK_SEQUENCE_TWO_TUPLE | 245 | 62.7% | | UNPACK_SEQUENCE_TUPLE | 55 | 14.1% | | STORE_FAST__STORE_FAST | 34 | 8.7% |
### UNPACK_SEQUENCE_LIST
Successors and predecessors for UNPACK_SEQUENCE_LIST |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS | 54544 | 63.4% | | SEND | 31038 | 36.1% | | BINARY_SUBSCR_ADAPTIVE | 334 | 0.4% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST__STORE_FAST | 86007 | 99.9% | | STORE_DEREF | 33 | 0.0% | | STORE_FAST | 12 | 0.0% |
### UNPACK_SEQUENCE_TUPLE
Successors and predecessors for UNPACK_SEQUENCE_TUPLE |Predecessors | Count | Percentage | |---|---:|---:| | PRECALL_NO_KW_METHOD_DESCRIPTOR_O | 3471351 | 96.0% | | RETURN_VALUE | 67290 | 1.9% | | CALL_ADAPTIVE | 59302 | 1.6% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST__STORE_FAST | 3616347 | 100.0% | | STORE_DEREF | 52 | 0.0% | | LOAD_FAST | 39 | 0.0% |
### UNPACK_SEQUENCE_TWO_TUPLE
Successors and predecessors for UNPACK_SEQUENCE_TWO_TUPLE |Predecessors | Count | Percentage | |---|---:|---:| | FOR_ITER | 5869497 | 91.9% | | RETURN_VALUE | 335105 | 5.2% | | SEND | 58995 | 0.9% | |Successors | Count | Percentage | |---|---:|---:| | STORE_FAST__STORE_FAST | 6381582 | 99.9% | | STORE_FAST | 3521 | 0.1% | | STORE_NAME | 630 | 0.0% |
### WITH_EXCEPT_START
Successors and predecessors for WITH_EXCEPT_START |Predecessors | Count | Percentage | |---|---:|---:| | PUSH_EXC_INFO | 212 | 100.0% | |Successors | Count | Percentage | |---|---:|---:| | POP_JUMP_FORWARD_IF_TRUE | 146 | 68.9% | | COPY | 66 | 31.1% |
### YIELD_VALUE
Successors and predecessors for YIELD_VALUE |Predecessors | Count | Percentage | |---|---:|---:| | SEND | 1572814 | 86.7% | | RETURN_GENERATOR | 117526 | 6.5% | | BINARY_OP_ADAPTIVE | 66036 | 3.6% | |Successors | Count | Percentage | |---|---:|---:|

Specialization stats

specialization stats by family ### BINARY_SUBSCR
specialization stats for BINARY_SUBSCR family |Kind | Count | Ratio | |---|---|---| | unquickened | 48057 | 0.2% | | specialization.deferred | 6220989 | 22.8% | | specialization.deopt | 734 | 0.0% | | hit | 20928172 | 76.8% | | miss | 39312 | 0.1% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 1245 | 27.9% | | Failure | 3210 | 72.1% | |Failure kind | Count | Ratio | |---|---:|---:| | buffer int | 1060 | 33.0% | | string slice | 780 | 24.3% | | string int | 417 | 13.0% | | list slice | 293 | 9.1% | | other | 266 | 8.3% | | buffer slice | 156 | 4.9% | | tuple slice | 154 | 4.8% | | array slice | 58 | 1.8% | | sequence int | 26 | 0.8% |
### STORE_SUBSCR
specialization stats for STORE_SUBSCR family |Kind | Count | Ratio | |---|---|---| | unquickened | 2274 | 0.1% | | specialization.deferred | 281901 | 14.3% | | hit | 1693448 | 85.6% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 353 | 52.7% | | Failure | 317 | 47.3% | |Failure kind | Count | Ratio | |---|---:|---:| | other | 114 | 36.0% | | bytearray int | 112 | 35.3% | | py simple | 46 | 14.5% | | dict subclass no override | 28 | 8.8% | | list slice | 10 | 3.2% | | out of range | 7 | 2.2% |
### UNPACK_SEQUENCE
specialization stats for UNPACK_SEQUENCE family |Kind | Count | Ratio | |---|---|---| | unquickened | 1734 | 0.0% | | specialization.deferred | 67 | 0.0% | | hit | 10088708 | 100.0% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 314 | 96.9% | | Failure | 10 | 3.1% | |Failure kind | Count | Ratio | |---|---:|---:| | sequence | 5 | 50.0% | | iterator | 5 | 50.0% |
### FOR_ITER
specialization stats for FOR_ITER family |Kind | Count | Ratio | |---|---|---| | unquickened | 42738132 | 100.0% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 0 | 0.0% | | Failure | 42738132 | 100.0% | |Failure kind | Count | Ratio | |---|---:|---:| | list | 33545007 | 78.5% | | enumerate | 2946553 | 6.9% | | dict items | 2694300 | 6.3% | | tuple | 1408632 | 3.3% | | range | 1300536 | 3.0% | | other | 709183 | 1.7% | | dict values | 65949 | 0.2% | | generator | 60175 | 0.1% | | set | 3914 | 0.0% | | dict keys | 2235 | 0.0% | | itertools | 1405 | 0.0% | | bytes | 217 | 0.0% | | string | 26 | 0.0% |
### STORE_ATTR
specialization stats for STORE_ATTR family |Kind | Count | Ratio | |---|---|---| | unquickened | 109519 | 1.0% | | specialization.deferred | 643773 | 6.1% | | specialization.deopt | 1795 | 0.0% | | hit | 9767523 | 92.0% | | miss | 99456 | 0.9% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 2843 | 69.8% | | Failure | 1232 | 30.2% | |Failure kind | Count | Ratio | |---|---:|---:| | overridden | 404 | 32.8% | | not managed dict | 287 | 23.3% | | out of range | 253 | 20.5% | | overriding descriptor | 156 | 12.7% | | non object slot | 100 | 8.1% | | mutable class | 21 | 1.7% | | method | 8 | 0.6% | | property | 3 | 0.2% |
### LOAD_ATTR
specialization stats for LOAD_ATTR family |Kind | Count | Ratio | |---|---|---| | unquickened | 298852 | 0.5% | | specialization.deferred | 13523254 | 20.9% | | specialization.deopt | 5037 | 0.0% | | hit | 50740305 | 78.3% | | miss | 272608 | 0.4% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 7523 | 43.2% | | Failure | 9873 | 56.8% | |Failure kind | Count | Ratio | |---|---:|---:| | overridden | 2890 | 29.3% | | property | 2592 | 26.3% | | overriding descriptor | 1712 | 17.3% | | method | 1047 | 10.6% | | out of range | 641 | 6.5% | | non object slot | 495 | 5.0% | | not managed dict | 298 | 3.0% | | mutable class | 148 | 1.5% | | module attr not found | 50 | 0.5% |
### COMPARE_OP
specialization stats for COMPARE_OP family |Kind | Count | Ratio | |---|---|---| | unquickened | 6950 | 0.1% | | specialization.deferred | 2400467 | 24.7% | | specialization.deopt | 54 | 0.0% | | hit | 7292063 | 75.2% | | miss | 2924 | 0.0% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 541 | 23.7% | | Failure | 1741 | 76.3% | |Failure kind | Count | Ratio | |---|---:|---:| | not followed by cond jump | 584 | 33.5% | | different types | 296 | 17.0% | | float long | 195 | 11.2% | | baseobject | 152 | 8.7% | | bytes | 149 | 8.6% | | other | 136 | 7.8% | | big int | 120 | 6.9% | | tuple | 54 | 3.1% | | list | 27 | 1.6% | | set | 14 | 0.8% | | bool | 8 | 0.5% | | long float | 6 | 0.3% |
### LOAD_GLOBAL
specialization stats for LOAD_GLOBAL family |Kind | Count | Ratio | |---|---|---| | unquickened | 55783 | 0.1% | | specialization.deferred | 11248 | 0.0% | | specialization.deopt | 403 | 0.0% | | hit | 42212856 | 99.8% | | miss | 28288 | 0.1% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 4889 | 100.0% | | Failure | 0 | 0.0% | |Failure kind | Count | Ratio | |---|---:|---:|
### BINARY_OP
specialization stats for BINARY_OP family |Kind | Count | Ratio | |---|---|---| | unquickened | 4177 | 0.1% | | specialization.deferred | 823745 | 18.9% | | specialization.deopt | 3 | 0.0% | | hit | 3539617 | 81.0% | | miss | 217 | 0.0% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 455 | 21.2% | | Failure | 1694 | 78.8% | |Failure kind | Count | Ratio | |---|---:|---:| | and int | 460 | 27.2% | | add other | 415 | 24.5% | | remainder | 195 | 11.5% | | multiply different types | 148 | 8.7% | | or | 137 | 8.1% | | add different types | 80 | 4.7% | | true divide other | 68 | 4.0% | | xor | 50 | 3.0% | | subtract different types | 38 | 2.2% | | floor divide | 29 | 1.7% | | lshift | 14 | 0.8% | | and different types | 14 | 0.8% | | rshift | 13 | 0.8% | | power | 13 | 0.8% | | and other | 8 | 0.5% | | subtract other | 7 | 0.4% | | true divide different types | 5 | 0.3% |
### LOAD_METHOD
specialization stats for LOAD_METHOD family |Kind | Count | Ratio | |---|---|---| | unquickened | 424109 | 1.0% | | specialization.deferred | 5428918 | 12.2% | | specialization.deopt | 7738 | 0.0% | | hit | 38055405 | 85.9% | | miss | 411657 | 0.9% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 9478 | 75.0% | | Failure | 3151 | 25.0% | |Failure kind | Count | Ratio | |---|---:|---:| | overridden | 941 | 29.9% | | no dict | 824 | 26.2% | | instance attribute | 372 | 11.8% | | class method obj | 343 | 10.9% | | metaclass attribute | 282 | 8.9% | | builtin class method | 141 | 4.5% | | non overriding descriptor | 98 | 3.1% | | not descriptor | 90 | 2.9% | | mutable class | 22 | 0.7% | | object slot | 14 | 0.4% | | other | 12 | 0.4% | | out of range | 10 | 0.3% | | is attr | 2 | 0.1% |
### PRECALL
specialization stats for PRECALL family |Kind | Count | Ratio | |---|---|---| | unquickened | 267302 | 0.3% | | specialization.deferred | 13721001 | 17.9% | | specialization.deopt | 4247 | 0.0% | | hit | 62302860 | 81.4% | | miss | 225604 | 0.3% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 8914 | 1.3% | | Failure | 683425 | 98.7% | |Failure kind | Count | Ratio | |---|---:|---:| | class no vectorcall | 132442 | 19.4% | | class mutable | 97455 | 14.3% | | pycfunction with keywords | 88849 | 13.0% | | pycfunction | 83065 | 12.2% | | other | 81824 | 12.0% | | pycfunction noargs | 63211 | 9.2% | | python class | 61684 | 9.0% | | operator wrapper | 37993 | 5.6% | | bad call flags | 24367 | 3.6% | | kwnames | 6961 | 1.0% | | method wrapper | 5561 | 0.8% | | cmethod | 10 | 0.0% | | str | 3 | 0.0% |
### CALL
specialization stats for CALL family |Kind | Count | Ratio | |---|---|---| | unquickened | 758307 | 2.6% | | specialization.deferred | 16574783 | 56.3% | | specialization.deopt | 13426 | 0.0% | | hit | 11402720 | 38.7% | | miss | 716609 | 2.4% | #### Specialization attempts | | Count | Ratio | |---|---:|---:| | Success | 14973 | 56.6% | | Failure | 11501 | 43.4% | |Failure kind | Count | Ratio | |---|---:|---:| | method descriptor | 3048 | 26.5% | | class | 2208 | 19.2% | | pycfunction | 1624 | 14.1% | | python class | 1249 | 10.9% | | kwnames | 1111 | 9.7% | | complex parameters | 853 | 7.4% | | other | 649 | 5.6% | | operator wrapper | 291 | 2.5% | | bound method | 228 | 2.0% | | method wrapper | 220 | 1.9% | | cmethod | 20 | 0.2% |

Specialization effectiveness

specialization effectiveness |Instructions | Count | Ratio | |---|---:|---:| | Basic | 531008453 | 55.1% | | Not specialized | 106909699 | 11.1% | | Specialized | 326489980 | 33.9% |

Call stats

Inlined calls and frame stats | | Count | Ratio | |---|---:|---:| | Calls to PyEval_EvalDefault | 20601310 | 58.1% | | Calls to Python functions inlined | 14876343 | 41.9% | | Frames pushed | 30454247 | 85.8% | | Frame objects created | 479291 | 1.4% |

Object stats

allocations, frees and dict materializatons | | Count | Ratio | |---|---:|---:| | Allocations from freelist | 55374137 | | | Frees to freelist | 55470720 | | | Allocations | 124870061 | | | Allocations to 512 bytes | 123627147 | | | Allocations to 4 kbytes | 1120430 | | | Allocations over 4 kbytes | 122484 | | | Frees | 121367657 | | | New values | 792759 | | | Materialize dict (on request) | 19421 | 2.4% | | Materialize dict (new key) | 58766 | 7.4% | | Materialize dict (too big) | 0 | 0.0% | | Materialize dict (str subclass) | 0 | 0.0% |

Stats gathered on: 2022-10-31

markshannon commented 1 year ago

We should gather these results somewhere. Presumably in the stats/ folder