bench with fully inlined/specialized implementation #52
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.
This PRs to my own branch.
In my very very small benchmark of
(+ 1 2)
and(const 1 2)
,SpecializedCEK
performs more than 10x better. This is definitely just GHC specialization and inlining compared toSpecializedCEK
.At the moment of the start of this PR, these are the current numbers on my M2 mac:
A few things
SpecializedCEK
does vsCEK
:Eval
rawBuiltinEnv
is used directly within the call of evalPart of the problem with our natives which GHC may be unhappy with, is
evalCEK
,returnCEK
andreturnCEKValue
being exported may not make GHC happy.The point of this PR is make
CEK.hs
fast within a reasonable margin ofSpecializedCEK
.