As listed here: #139109 (comment)
Currently we use a bunch of ad-hoc tracking of objects in the tracing front-end to allow subsequent optimizations, we also maintain ancillary data structures for version number to object lookup for functions, code objects and classes.
This is all very fragile, complicated and inefficient.
By recording references to any necessary objects in the trace, we can:
- Eliminate optimization failures due to missing values in lookup caches
- Remove version lookup caches
- Remove ad-hoc handling of code objects around calls in the tracer
- Allow the tracer to record any references we feel are useful for optimization
- Remove tracking of dependencies during tracing
Linked PRs