Skip to content

Data flow: Use pruning to reduce call contexts#6404

Closed
hvitved wants to merge 4 commits intogithub:mainfrom
hvitved:dataflow/call-ctx-pruning
Closed

Data flow: Use pruning to reduce call contexts#6404
hvitved wants to merge 4 commits intogithub:mainfrom
hvitved:dataflow/call-ctx-pruning

Conversation

@hvitved hvitved force-pushed the dataflow/call-ctx-pruning branch 2 times, most recently from 85a9c4f to 0b86087 Compare August 3, 2021 12:33
@hvitved hvitved force-pushed the dataflow/call-ctx-pruning branch from 0b86087 to 690b4fd Compare August 4, 2021 08:18
@hvitved hvitved marked this pull request as ready for review August 4, 2021 10:18
@hvitved hvitved requested review from a team as code owners August 4, 2021 10:18
@hvitved hvitved added the no-change-note-required This PR does not need a change note label Aug 4, 2021
@aschackmull
Copy link
Contributor

aschackmull commented Aug 4, 2021

What's the motivation for this? The if recordDataFlowCallSite(call, c) then ought to be doing a two-column join acting as a filter and the same goes for if reducedViableImplInReturn(c, call) then, so that ought to be cheap. Or do we have a bad join-order lurking?
Ahh, I see it goes a little beyond that by removing the call context if it isn't going to be needed. I guess you have some motivating example where this made a big difference?

@hvitved
Copy link
Contributor Author

hvitved commented Aug 4, 2021

Ahh, I see it goes a little beyond that by removing the call context if it isn't going to be needed. I guess you have some motivating example where this made a big difference?

The motivation comes from the fact that I would like to experiment with adding call contexts earlier in the pruning stages (possibly as a new stage in between what is currently stages 2 and 3). Other than that no motivation, except it felt like a "free lunch".

@aschackmull
Copy link
Contributor

I'm not sure I see the relation to "adding call contexts earlier in the pruning stages"? That should be orthogonal to this, right? (Might even be easier without this change?).

@aschackmull
Copy link
Contributor

Is this motivated by lambda-dispatch in higher-order summaries? If so, then I have some other ideas.

@hvitved
Copy link
Contributor Author

hvitved commented Aug 4, 2021

I'm not sure I see the relation to "adding call contexts earlier in the pruning stages"? That should be orthogonal to this, right? (Might even be easier without this change?).

What I meant was to apply the same trick when adding call contexts earlier, to reduce tuple counts.

@aschackmull
Copy link
Contributor

The Differences jobs don't really look convincing.

@hvitved
Copy link
Contributor Author

hvitved commented Aug 5, 2021

The Differences jobs don't really look convincing.

No, it looks like maybe there is a bad join-order in the newly introduced predicates.

@tausbn
Copy link
Contributor

tausbn commented May 9, 2022

This PR appears to have gone stale, so I've taken the liberty of closing it (in lieu of asking "hey can I close this?" and waiting for someone else to take appropriate action).

Feel free to reopen it if it's still relevant! 🙂

@tausbn tausbn closed this May 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C# C++ Java no-change-note-required This PR does not need a change note Python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants