Add support for JIT-ing of spl_object_id() and ord() calls #5588
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.
See Optimizing assembly for spl_object_id(), fdiv(), etc in the JIT?
Having an example for a few functions would be useful to build off of.
This PR is only supporting IS_CV (named PHP variables),
because garbage collection and exception handling are unnecessary.
This is also only supporting operands known to have the exact expected type.
I'm only proposing this optimization for the JIT.
Adding too many specialized opcodes to the regular PHP VM might harm performance
by making the VM too large, and would make writing optimizations harder.
Future scope:
such as fdiv(), sin(), cos(), tan(), abs(), etc.
strpos,
get_class()
etc. that may be useful to call directly to avoid the overhead offunction calls and exception handling, when safe to do so
(e.g. no notices or exceptions).