mirror of
https://github.com/php/php-src.git
synced 2026-03-24 16:22:37 +01:00
* 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
44 lines
867 B
PHP
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
|