1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Files
archived-php-src/ext/opcache/tests/preload_optimizer.phpt
Ilija Tovilo 2e9cc9bc30 Allow optimizer to depend on preloaded symbols (#15021)
* Allow optimizer to depend on preloaded symbols

It is safe for the optimizer to rely on preloaded symbols. This can occur when
compiling non-preloaded files, referencing preloaded ones.

* Disable inline pass for observer test

* Move duplicated code into functions

* Add comment to specific optimization value

* Optimizer should only rely on preloaded symbols in the symbol table

* Fix skipif for windows
2024-08-02 17:35:27 +02:00

44 lines
867 B
PHP

--TEST--
Optimizer may rely on preloaded symbols
--INI--
opcache.enable=1
opcache.enable_cli=1
opcache.preload={PWD}/preload_optimizer.inc
opcache.opt_debug_level=0x20000
--EXTENSIONS--
opcache
--SKIPIF--
<?php
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
?>
--FILE--
<?php
echo foo();
?>
--EXPECTF--
$_main:
; (lines=1, args=0, vars=0, tmps=%d)
; (after optimizer)
; $PRELOAD$:0-0
0000 RETURN null
foo:
; (lines=1, args=0, vars=0, tmps=%d)
; (after optimizer)
; %spreload_optimizer.inc:3-5
0000 RETURN int(42)
$_main:
; (lines=1, args=0, vars=0, tmps=%d)
; (after optimizer)
; %spreload_optimizer.inc:1-6
0000 RETURN int(1)
$_main:
; (lines=2, args=0, vars=0, tmps=%d)
; (after optimizer)
; %spreload_optimizer.php:1-4
0000 ECHO string("42")
0001 RETURN int(1)
42