Skip to content

Conversation

@sim642
Copy link
Member

@sim642 sim642 commented Oct 5, 2021

While debugging increased evals in incremental analysis compared to from-scratch analysis (#369 (comment)), I found the following problem.
The TD3 implementation switches to narrowing phase even for non-wpoint variables, which causes extra evaluations. In the TD3 paper, the extra condition x \in point is used there.

Another question is how this check should be performed: HM.mem wpoint x or wp (the previous value cached from before evaluating right-hand side). The choice of whether to widen is done based on the latter, so at widening points, the first is always an overwrite (no join or widen). The difference is in the case when x becomes a wpoint during the evaluation of its right-hand side.

I don't know yet whether this fixes all the excessive evals in the linked cases though, but at least on tiny examples from #363 it does.

@sim642 sim642 added bug performance Analysis time, memory usage labels Oct 5, 2021
@vogler
Copy link
Collaborator

vogler commented Oct 5, 2021

Yes, this is definitely a mistake and should be merged.

@sim642 sim642 merged commit 02f71b2 into master Oct 6, 2021
@sim642 sim642 deleted the td3-narrow-wpoint branch October 6, 2021 07:06
@sim642 sim642 added the hacktoberfest-accepted https://hacktoberfest.digitalocean.com/ label Oct 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug hacktoberfest-accepted https://hacktoberfest.digitalocean.com/ performance Analysis time, memory usage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants