mirror of
https://github.com/php/php-src.git
synced 2026-04-28 10:43:30 +02:00
16ca097ef2
JIT'ed ASSIGN_OBJ expressions will exit to VM when the prop is undef. However, in a constructor it's very likely the case. Therefore most traces with `new` expressions will exit to VM. Here I ensure that we don't need to exit to VM when it's likely that the prop will be undef. In the function JIT we compile a slow path to handle such properties, but not in the tracing JIT, assumingly to reduce code size. Here I enable compilation of the slow path in the tracing JIT when it's likely the prop will be undef. Quite conveniently we already record the prop type during tracing, so I use that to make the decision. This results in a 1.20% wall time improvement on the symfony demo benchmark with 20 warmup requests. Closes GH-18576