Mark all GC functions as yk_outline.
#131
Merged
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.
There are few, if any, GC functions that we want to trace directly but at the moment, SWT inserts tracing blocks which (a) slows these functions down in all cases (b) particularly slows them down if tracing is active.
At first I started going through these individually, seeing which end up being outlined before realising that really what I want to do is say "all of the functions in this file should be outlined". I don't believe there's a way to attach such an attribute to a file in LLVM -- or, at least, we don't have the right hooks for it in ykllvm right now -- so this commit simply marks every function in this file as
yk_outline. It wouldn't surprise me if, in the future, we come back and unmark one or two functions, but I doubt we'll need or want to do that soon.Across our benchmark suite this leads to a sizeable performance increase, with many benchmarks improving by around 8-9%.