This repository was archived by the owner on Aug 31, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 222
Variable access performance improvements #5260
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This patch adds some tests and some benchmarks covering variable access operations.
This patch removes the 'rootmatches()' method from MCVarref along with its uses in the arithmetic commands. The latter used it to compute overlap between base and value expressions but this information is no longer needed.
This patch changes the creation of MCContainers so that the constructors act on a reference, rather than returning a new object. This allows stack allocation of MCContainer classes in almost all cases.
This patch removes the 'evalvar()' virtual method from MCExpression replacing all uses with 'evalcontainer()'.
@livecode-vulcan review ok aefe4fd |
The new implementation of container path extension uses `std::move` but doesn't explicitly include `<utility>`.
@livecode-vulcan review ok 5d8e0de |
💙 review by @livecodeali ok 5d8e0de |
livecode-vulcan
added a commit
that referenced
this pull request
Mar 10, 2017
Variable access performance improvements Cherry-picked from #5100.
livecode-vulcan
added a commit
that referenced
this pull request
Mar 22, 2017
Minor refactoring of variable access This set of patches follows on from #5260 with some further refactoring of LCS variable handling code. The intention is to eventually refactor `MCVariable` in a similar way to the way `MCContainer` was changed in #5260 in order to be able to move `MCVariable` instances from the heap to the stack, or to coalesce `MCVariable` allocations into single bulk allocations on the heap. Both these changes would improve cache locality when executing LCS code.
livecode-vulcan
added a commit
that referenced
this pull request
Apr 3, 2017
Minor refactoring of variable access This set of patches follows on from #5260 with some further refactoring of LCS variable handling code. The intention is to eventually refactor `MCVariable` in a similar way to the way `MCContainer` was changed in #5260 in order to be able to move `MCVariable` instances from the heap to the stack, or to coalesce `MCVariable` allocations into single bulk allocations on the heap. Both these changes would improve cache locality when executing LCS code.
livecode-vulcan
added a commit
that referenced
this pull request
Apr 20, 2017
Minor refactoring of variable access This set of patches follows on from #5260 with some further refactoring of LCS variable handling code. The intention is to eventually refactor `MCVariable` in a similar way to the way `MCContainer` was changed in #5260 in order to be able to move `MCVariable` instances from the heap to the stack, or to coalesce `MCVariable` allocations into single bulk allocations on the heap. Both these changes would improve cache locality when executing LCS code.
livecode-vulcan
added a commit
that referenced
this pull request
Apr 20, 2017
Minor refactoring of variable access This set of patches follows on from #5260 with some further refactoring of LCS variable handling code. The intention is to eventually refactor `MCVariable` in a similar way to the way `MCContainer` was changed in #5260 in order to be able to move `MCVariable` instances from the heap to the stack, or to coalesce `MCVariable` allocations into single bulk allocations on the heap. Both these changes would improve cache locality when executing LCS code.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Cherry-picked from #5100.