Commit Graph

2501 Commits

Author SHA1 Message Date
Nikita Popov
36235cf5d7 Read from original address
References are derefed into FCARG1, which is later clobbered by the
undef handling code. Make sure we load from the original address
instead.
2019-07-10 14:13:29 +02:00
Nikita Popov
26431d1995 Implement array access notice in JIT 2019-07-10 12:20:16 +02:00
Dmitry Stogov
db02d7ae75 Reduce cost for GC references to strings and resources in JIT 2019-07-10 12:41:19 +03:00
Nikita Popov
3ee570ae0d Remove redundant variable declaration 2019-07-08 12:50:00 +02:00
David Carlier
5e13688142 JIT: Reading php binary symbols list on FreeBSD
Closes GH-4363.
2019-07-08 12:39:18 +02:00
Nikita Popov
da8b583ac1 Always generate interrupt check in jit
Even if zend_interrupt_function is NULL, we still need to perform
the interrupt check for timeouts (which do not use
zend_interrupt_function).
2019-07-05 20:52:30 +02:00
Nikita Popov
a92e6d7136 Merge branch 'PHP-7.4' 2019-07-05 12:05:10 +02:00
Nikita Popov
73fd2da754 Make sure all cases of fetch_dim_w adjustment are handled
Use EMPTY_SWITCH_DEFAULT_CASE() to trigger an assertion in case
we miss something.

Add missing FE_RESET_RW case.
2019-07-05 12:02:26 +02:00
Nikita Popov
8ae9e1b9a2 Merge branch 'PHP-7.4' 2019-07-05 11:43:26 +02:00
Nikita Popov
1086198711 Merge branch 'PHP-7.3' into PHP-7.4 2019-07-05 11:41:57 +02:00
Nikita Popov
920283ff2b Merge branch 'PHP-7.2' into PHP-7.3 2019-07-05 11:40:45 +02:00
Nikita Popov
c353f17d42 Fix inference for compound object op on dim 2019-07-05 11:39:42 +02:00
Dmitry Stogov
1f800e2f82 Removed die('skip wurstuoppe'); 2019-07-05 12:20:12 +03:00
Dmitry Stogov
1b5b8175af Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
2019-07-05 12:16:30 +03:00
Dmitry Stogov
48ca5a1e17 Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP 2019-07-05 12:03:25 +03:00
Nikita Popov
215e9d069c Merge branch 'PHP-7.4' 2019-07-05 11:00:54 +02:00
Nikita Popov
24ecfcc833 Add test
Forgot to commit this.
2019-07-05 11:00:27 +02:00
Nikita Popov
f8d8b96e92 Merge branch 'PHP-7.4' 2019-07-05 10:47:01 +02:00
Nikita Popov
ea43624972 Fix wrong size calculation related to function name
It would be nice if we could drop this manual function name reuse
code altogether and rely on interning for it.
2019-07-05 10:46:41 +02:00
Nikita Popov
d3c4841b18 Preloading: Don't move conditional functions to back to scripts
Conditional function declaration may be referenced by functions or
classes that have been preloaded, so we should not move them back
to scripts.

What we probably should be doing though is to discard conditional
functions that are not used in the optimizer. This is probably
reasonably common for polyfills, where we will be able to const-eval
the conditions and drop the BBs declaring the functions, but won't
delete the function declarations themselves.
2019-07-05 10:46:41 +02:00
Nikita Popov
9fbf9e3e13 Merge branch 'PHP-7.4' 2019-07-04 17:13:04 +02:00
Nikita Popov
a0e7624059 Compact literals: Don't insert unmergeable keys
LITERAL_VALUE with related literals cannot be merged, avoid inserting
them in the literals hash in the first place. Otherwise we may end up
inserting the same key multiple times. We may also miss merging
opportunities due to the duplicate keys.
2019-07-04 17:12:55 +02:00
Nikita Popov
8c647946ff Merge branch 'PHP-7.4' 2019-07-04 12:20:40 +02:00
Nikita Popov
b250f89b92 Preloading: Relax known type restrictions
Check whether there is a parent/interface/trait method with the same
name and only then require the type to be known. This reduces the
number of cases where this triggers in practice a lot.
2019-07-04 12:20:32 +02:00
Nikita Popov
4a2646cf45 Preloading: Also handle trait methods outside main script 2019-07-04 12:20:31 +02:00
Nikita Popov
6473ec30a1 Merge branch 'PHP-7.4' 2019-07-04 11:07:14 +02:00
Nikita Popov
df243f19be Preloading: Prevent autoloading while resolving constants 2019-07-04 11:05:01 +02:00
Nikita Popov
f124bf22e0 Merge branch 'PHP-7.4' 2019-07-03 14:05:31 +02:00
Nikita Popov
f857648270 Improve unlinked class diagnostics during preloading 2019-07-03 14:05:10 +02:00
Nikita Popov
fa1a03f7a2 Merge branch 'PHP-7.4' 2019-07-03 10:22:41 +02:00
Nikita Popov
c0924cf67d Merge branch 'PHP-7.3' into PHP-7.4 2019-07-03 10:20:32 +02:00
Nikita Popov
4892bbc167 Fixed bug #78230 2019-07-03 10:20:07 +02:00
Nikita Popov
ad81aae8bf Merge branch 'PHP-7.4' 2019-07-02 12:28:51 +02:00
Nikita Popov
4a08885ed9 Merge branch 'PHP-7.3' into PHP-7.4 2019-07-02 12:28:46 +02:00
Nikita Popov
7174c44557 Merge branch 'PHP-7.2' into PHP-7.3 2019-07-02 12:28:37 +02:00
Alex Scott
a4acff3e21 Fix bug #78138: opcache.validate_permission incorrectly works with PHAR files
opcache incorrectly handles PHAR files when opcache.validate_permission
option enabled, because it calls

  access("phar://path-to/file.phar/path/inside.php", R_OK);

rather than

  access("path-to/file.phar", R_OK)
2019-07-02 12:25:50 +02:00
Nikita Popov
2f7c3971cc Merge branch 'PHP-7.4' 2019-07-02 11:59:21 +02:00
David Carlier
7f1fef9fe0 Fix opcache huge page mapping on FreeBSD
Too much room were given process mappings and were not unmapped.

Closes GH-4345.
2019-07-02 11:59:08 +02:00
Christoph M. Becker
fc94e0fc6e Fix SKIPIF conditions
The SKIPIF sections are executed in the directory where run-tests.php
is located; therefore a relative path like `../skipif.inc` won't work
as desired.
2019-07-01 19:47:23 +02:00
Christoph M. Becker
8a0717255c Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIFs
2019-07-01 18:14:55 +02:00
Christoph M. Becker
52a0630cd4 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Add missing SKIPIFs
2019-07-01 18:13:52 +02:00
Christoph M. Becker
3e25ddb07b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add missing SKIPIFs
2019-07-01 18:12:28 +02:00
Christoph M. Becker
57688ad7bf Add missing SKIPIFs
All these tests are meant to run with OPcache available, and some will
even fail inevitably without it, so we add OPcache as SKIPIF
requirement.
2019-07-01 18:11:13 +02:00
Christoph M. Becker
017e293992 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add missing SKIPIFs
2019-07-01 17:25:31 +02:00
Christoph M. Becker
42bedcfb50 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Add missing SKIPIFs
2019-07-01 17:24:33 +02:00
Christoph M. Becker
99e6c701e6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add missing SKIPIFs
2019-07-01 17:22:55 +02:00
Christoph M. Becker
75bc3446f8 Add missing SKIPIFs
All these tests are meant to run with OPcache available, and some will
even fail inevitably without it, so we add OPcache as SKIPIF
requirement.
2019-07-01 17:21:16 +02:00
Nikita Popov
4e1a225e3e Merge branch 'PHP-7.4' 2019-07-01 16:55:39 +02:00
David Carlier
994a01ea43 opcache huge pages: Little fix for FreeBSD
Calculating the vm entries size beforehand, as we could
possibly miss few entries.

Closes GH-4344.
2019-07-01 16:55:23 +02:00
Christoph M. Becker
b8d6d4a2bd Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix brittle test
2019-07-01 16:45:49 +02:00