This repository was archived by the owner on Oct 12, 2022. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 415
GC micro-optimizations #1919
Merged
Merged
GC micro-optimizations #1919
Changes from all commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
cc24872
Range is no longer just bot/top, use local ScanRange
rainers f658df8
do not reload pool data, check range instead of min/max
rainers ae859cc
do not rescan last pointer in range
rainers 0c34dcd
mark: avoid unnecessary check when local stack is full
rainers 7a4a49c
mark: skip unnecessary check for empty range
rainers dbcf55a
gc: use constant bitmask shift values if known
rainers c25a68e
simplify flow control
rainers ae64448
use shiftBy enum, rename rngAddr to memSize
rainers ef551d5
GC.mark: calc base only if necessary
rainers 7d08f30
GC.mark: rearrange loop to use forward jumps only
rainers f3540b8
do not inline ScanRange.grow
rainers 4cc4d6c
GC.mark: avoid copy through temporary ScanRange
rainers 47945ea
GC.mark: do not save result of comparison in a bool, it adds extra in…
rainers 3e93b74
GC.mark: use known Bin size for B_PAGE
rainers e61ae3d
GC.mark: remove redundant calculation of the same value
rainers 208bf47
GC.mark: p1 not incremented in addRange when stack not full
rainers 3de7c0e
GC.mark: protect against empty range
rainers ef9c67e
GC.mark: clear pcache when getting new range
rainers File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was it necessary to remove that name?
Even dmd should be able to optimize this and deciphering
base != sentinel_sub(p)
isn't that trivial.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, it it doesn't just use the comparison in the following
if
, but stores the result to a byte withsete
and uses that, adding a number of gratuitious instructions.