[Windows] allow clang to build tailcall vm, use __preserve_none for Call VM if available with msvc#21563
Draft
henderkes wants to merge 2 commits intophp:masterfrom
Draft
[Windows] allow clang to build tailcall vm, use __preserve_none for Call VM if available with msvc#21563henderkes wants to merge 2 commits intophp:masterfrom
henderkes wants to merge 2 commits intophp:masterfrom
Conversation
…Call VM if available
8d8808b to
774082c
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Not the largest improvement (~5-8% in my testing), but msvc's __preserve_none is not stable enough to use the tailcall vm with
[[msvc::musttail]].The tailcall VM for clang is a nice 25-30% improvement, but it still lags far behind msvc.
I'm not 100% sure if switching the call vm to __preserve_none could have any ill effects - Edit: forgot about the JIT... will take a while to track that down. If it's even feasible, I've never looked at the jit code.
PS: removing
/GUARD:CF(fromPHP_SECURITY_FLAGS) gives a 40% performance uplift in phoronix phpbench. I'm guessing disabling that isn't a good idea?