Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Variable access performance improvements #5260

Merged
merged 5 commits into from
Mar 10, 2017

Conversation

peter-b
Copy link
Contributor

@peter-b peter-b commented Mar 9, 2017

Cherry-picked from #5100.

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()'.
@peter-b peter-b added this to the 9.0.0-dp-7 milestone Mar 9, 2017
@peter-b
Copy link
Contributor Author

peter-b commented Mar 9, 2017

@livecode-vulcan review ok aefe4fd

@livecode-vulcan
Copy link
Contributor

💙 review by @peter-b ok aefe4fd

@livecode-vulcan
Copy link
Contributor

😞 test failure aefe4fd

The new implementation of container path extension uses `std::move`
but doesn't explicitly include `<utility>`.
@livecodeali
Copy link
Member

@livecode-vulcan review ok 5d8e0de

@livecode-vulcan
Copy link
Contributor

💙 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
Copy link
Contributor

😎 test success 5d8e0de

@peter-b peter-b merged commit 9831df3 into livecode:develop Mar 10, 2017
@peter-b peter-b deleted the var-access-improvements branch March 10, 2017 10:31
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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants