Skip to content

better handling of missing backedges #58636

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 9, 2025
Merged

better handling of missing backedges #58636

merged 1 commit into from
Jun 9, 2025

Conversation

vtjnash
Copy link
Member

@vtjnash vtjnash commented Jun 4, 2025

Manage a single dictionary (keyed by TypeName) instead of scattering this info into each TypeName scattered across the system. This makes it much easier to scan the whole table when required and to split it up better, so that all kwcalls and all constructors don't end up stuck into just one table. While not enormous (or even the largest) just using the REPL and Pkg, they are clearly larger than intended for a linear scan:

julia> length(Type.body.name.backedges)
1024

julia> length(typeof(Core.kwcall).name.backedges)
196

julia> length(typeof(convert).name.backedges)
1510

@vtjnash vtjnash added the backport 1.12 Change should be backported to release-1.12 label Jun 4, 2025
@vtjnash vtjnash force-pushed the jn/missing-backedges branch from 53c3564 to 2d76472 Compare June 5, 2025 17:00
Manage a single dictionary (keyed by TypeName) instead of scattering
this info into each TypeName scattered across the system. This makes it
much easier to scan the whole table when required and to split it up
better, so that all kwcalls and all constructors don't end up stuck into
just one table. While not enormous (or even the largest) just using the
REPL and Pkg, they are clearly larger than intended for a linear scan:

```
julia> length(Type.body.name.backedges)
1024

julia> length(typeof(Core.kwcall).name.backedges)
196

julia> length(typeof(convert).name.backedges)
1510
```
@vtjnash vtjnash force-pushed the jn/missing-backedges branch from 2d76472 to de0d501 Compare June 6, 2025 18:19
@KristofferC KristofferC mentioned this pull request Jun 6, 2025
60 tasks
@vtjnash vtjnash merged commit 1c26f43 into master Jun 9, 2025
6 of 7 checks passed
@vtjnash vtjnash deleted the jn/missing-backedges branch June 9, 2025 20:30
KristofferC pushed a commit that referenced this pull request Jun 11, 2025
Manage a single dictionary (keyed by TypeName) instead of scattering
this info into each TypeName scattered across the system. This makes it
much easier to scan the whole table when required and to split it up
better, so that all kwcalls and all constructors don't end up stuck into
just one table. While not enormous (or even the largest) just using the
REPL and Pkg, they are clearly larger than intended for a linear scan:

```
julia> length(Type.body.name.backedges)
1024

julia> length(typeof(Core.kwcall).name.backedges)
196

julia> length(typeof(convert).name.backedges)
1510
```

(cherry picked from commit 1c26f43)
nilesh646 pushed a commit to nilesh646/julia that referenced this pull request Jun 17, 2025
Manage a single dictionary (keyed by TypeName) instead of scattering
this info into each TypeName scattered across the system. This makes it
much easier to scan the whole table when required and to split it up
better, so that all kwcalls and all constructors don't end up stuck into
just one table. While not enormous (or even the largest) just using the
REPL and Pkg, they are clearly larger than intended for a linear scan:

```
julia> length(Type.body.name.backedges)
1024

julia> length(typeof(Core.kwcall).name.backedges)
196

julia> length(typeof(convert).name.backedges)
1510
```
@KristofferC KristofferC removed the backport 1.12 Change should be backported to release-1.12 label Jul 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants