Do not recompute write sets for equal child nodes belonging to a given IR::Vector
#4810
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
built on top of #4797
Title and discussion in #4797 are self-explanatory.
This still does not fully fix the problem described in #4797 (but it is yet another incremental improvement).
ComputeWriteSet
'scallingContext
is not properly updated during the IR traversal, soProgramPoint
s are not correct in many places. This can be fixed by either:ComputeWriteSet
'scallingContext
is properly updated andProgramPoint
s created correctly everywhere, orProgramPoint
s withloc_t
, so that updating the calling context is the responsibility of theVisitor
overhead, rather than ofComputeWriteSet
.Neither of these are trivial, but the latter is probably the most invasive option.