Skip to content

Add overlay[local] annotations#21116

Draft
tausbn wants to merge 13 commits intomainfrom
tausbn/python-add-dataflow-overlay-annotations
Draft

Add overlay[local] annotations#21116
tausbn wants to merge 13 commits intomainfrom
tausbn/python-add-dataflow-overlay-annotations

Conversation

@tausbn
Copy link
Contributor

@tausbn tausbn commented Jan 7, 2026

WIP

@github-actions github-actions bot added the Python label Jan 7, 2026
@tausbn tausbn force-pushed the tausbn/python-add-dataflow-overlay-annotations branch from e203d8b to 97e2376 Compare January 9, 2026 16:27
@tausbn tausbn force-pushed the tausbn/python-add-dataflow-overlay-annotations branch from 97e2376 to 9e43da9 Compare January 30, 2026 13:52
... and everything else that it depends on.
None of these required any changes to the dataflow libraries, so it
seemed easiest to put them in their own commit.
These were causing the repo `gufolabs/noc` to spend ~30 seconds
evaluating `ControlFlowNode.strictlyDominates`. Just in case, I added
`overlay[caller] to the other instances of `pragma[inline]` as well.
On `keras-team/keras`, this was producing ~200 million intermediate
tuples in order to produce a total of ... 2 tuples.

After the refactor, max intermediate tuple count is ~80k for the
charpred (and 4 for the new helper predicate).
This caused a ~30x blowup in intermediate tuples, now back to baseline.
@tausbn tausbn force-pushed the tausbn/python-add-dataflow-overlay-annotations branch from c949417 to 304cd12 Compare February 16, 2026 13:48
Two related fixes. First, I removed the pragmas from `appliesTo`, as
these were actually causing a huge cartesian product to be created in
`RangeIterationVariableFact.pointsTo` and
`ReModulePointToExtension.pointsTo`. On `python/cpython`, at least, this
caused a reduction of tuples from ~2.7 billion to ~2 billion.

However this also caused `PointsToContext.fromCall/2` to get a worse
join-order, so I inlined the definition and added a pragma _there_, and
that fixed the issue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant