Skip to content

Conversation

@dstogov
Copy link
Member

@dstogov dstogov commented Dec 3, 2024

This prevents conflicts caused by spilling to bound PHP stack slots by creating copies.

This prevents conflicts caused by spilling to bound PHP stack slots by
creating copies.
@dstogov dstogov merged commit 89b82ef into php:PHP-8.4 Dec 3, 2024
10 checks passed
dstogov added a commit that referenced this pull request Dec 3, 2024
* PHP-8.4:
  Fix GH-16996: 8.4 tracing JIT phpseclib failures (#17030)
@ndossche
Copy link
Member

ndossche commented Dec 3, 2024

I see, thanks for the fix. Sorry I didn't get to this earlier, I was at work.

I see we may be creating a potentially unused copy of a variable, and storing its ir reference in the register allocation table, if we don't end up binding to a slot after all. I suppose that this doesn't negatively impact codegen.

@dstogov
Copy link
Member Author

dstogov commented Dec 4, 2024

I suppose that this doesn't negatively impact codegen.

This may make regression in some places and improvements in the others.
Actually, register allocator eliminates most of these copies using the same register for result and source.
I compared the code generated for bebch.php, Symfony, PHP-Patser and Wordpress and didn't see significant difference.

@ndossche
Copy link
Member

ndossche commented Dec 4, 2024

Okay thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants