1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 03:03:26 +02:00
Commit Graph

3630 Commits

Author SHA1 Message Date
Nikita Popov ac5486b832 Merge branch 'PHP-8.0'
* PHP-8.0:
  Preserve trait method alias name during preloading
2020-11-03 10:57:01 +01:00
Nikita Popov 6f2431860b Preserve trait method alias name during preloading 2020-11-03 10:55:59 +01:00
Nikita Popov d5dff02e72 Merge branch 'PHP-8.0'
* PHP-8.0:
  Rename opcache.jit_max_loops_unroll to opcache.jit_max_loop_unrolls
2020-11-02 12:25:28 +01:00
Nikita Popov 0571f09424 Rename opcache.jit_max_loops_unroll to opcache.jit_max_loop_unrolls 2020-11-02 12:25:21 +01:00
Alex Dowad e2dc80b4e4 Merge branch 'PHP-8.0' 2020-10-30 22:07:41 +02:00
Alex Dowad d44235acae Convert numeric string array keys to integers correctly in JITted code
While fixing bugs in mbstring, one of my new test cases failed with a strange
error message stating: 'Warning: Undefined array key 1...', when clearly the
array key had been set properly.

GDB'd that sucker and found that JIT'd PHP code was calling directly into
`zend_hash_add_new` (which was not converting the numeric string key to an
integer properly). But where was that code coming from? I examined the disasm,
looked up symbols to figure out where call instructions were going, then grepped
the codebase for those function names. It soon became clear that the disasm I
was looking at was compiled from `zend_jit_fetch_dim_w_helper`.
2020-10-30 22:07:08 +02:00
Nikita Popov 1b3b430f47 Add --repeat testing mode
This testing mode executes the test multiple times in the same
process (but in different requests). It is primarily intended to
catch tracing JIT bugs, but also catches state leaks across
requests.

Closes GH-6365.
2020-10-30 17:29:33 +01:00
Nikita Popov 3e2b127e63 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix SSA integrity violation for type inference in dead code
2020-10-30 15:52:59 +01:00
Nikita Popov 5958137dc5 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix SSA integrity violation for type inference in dead code
2020-10-30 15:52:46 +01:00
Nikita Popov 83738281eb Fix SSA integrity violation for type inference in dead code
The foreach body can never be executed and thus may contain empty
types. We should still uphold our SSA integrity invariants in that
case.
2020-10-30 15:52:10 +01:00
Dmitry Stogov fab8ef62ff Merge branch 'PHP-8.0'
* PHP-8.0:
  Create TSSA loops for recursive call/return traces and move invariant type guards out of loops.
2020-10-30 13:10:08 +03:00
Dmitry Stogov b133183e35 Create TSSA loops for recursive call/return traces and move invariant type guards out of loops. 2020-10-30 13:08:31 +03:00
Dmitry Stogov a49200a031 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed memory leak in Zend/tests/bug78999.phpt
2020-10-28 10:47:56 +03:00
Dmitry Stogov 47a56208f0 Fixed memory leak in Zend/tests/bug78999.phpt 2020-10-28 10:47:23 +03:00
Dmitry Stogov a73b2ddc30 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed tracing JIT support for aliasses (Zend/tests/bug75420.13.phpt and ext/standard/tests/streams/bug60106.phpt)
2020-10-27 23:45:32 +03:00
Dmitry Stogov e6b51ccc58 Fixed tracing JIT support for aliasses (Zend/tests/bug75420.13.phpt and ext/standard/tests/streams/bug60106.phpt) 2020-10-27 23:44:29 +03:00
Dmitry Stogov 1f1dbd7f48 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed support for named parameters (Zend/tests/named_params/references.phpt)
  Update NEWS for 8.0.0RC4
  Update NEWS for PHP 8.0.0RC3
2020-10-27 16:36:58 +03:00
Dmitry Stogov 43e493884c Fixed support for named parameters (Zend/tests/named_params/references.phpt) 2020-10-27 16:35:24 +03:00
Dmitry Stogov b961b7f0b5 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed support for typed references
2020-10-27 12:59:53 +03:00
Dmitry Stogov 45e2b9a7dd Fixed support for typed references 2020-10-27 12:59:35 +03:00
Dmitry Stogov 9bfb158872 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed tracing JIT for tests/classes/unset_properties.phpt
2020-10-27 10:31:09 +03:00
Dmitry Stogov b8a6717da6 Fixed tracing JIT for tests/classes/unset_properties.phpt 2020-10-27 10:30:38 +03:00
Dmitry Stogov 990bac4efc Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed memory leak
2020-10-27 01:20:46 +03:00
Dmitry Stogov a17cec446a Fixed memory leak 2020-10-27 01:20:22 +03:00
Dmitry Stogov 9fd5851551 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed register allocation
  Fixed MAY_BE_INDIRECT inference.
2020-10-26 21:49:14 +03:00
Dmitry Stogov ba525a68d9 Fixed register allocation 2020-10-26 21:48:47 +03:00
Dmitry Stogov b7df636589 Fixed MAY_BE_INDIRECT inference. 2020-10-26 21:48:13 +03:00
Dmitry Stogov f663546b2a Merge branch 'PHP-8.0'
* PHP-8.0:
  Better JIT support for aliases
2020-10-26 19:05:23 +03:00
Dmitry Stogov 9d3cc223b2 Better JIT support for aliases 2020-10-26 19:05:08 +03:00
Dmitry Stogov 55c5763be5 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1.phpt
2020-10-26 15:57:23 +03:00
Dmitry Stogov 0fa154ad8d Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1.phpt 2020-10-26 15:56:37 +03:00
Nikita Popov f9fd3313cf Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed some typos

[ci skip]
2020-10-23 09:34:37 +02:00
Javier Eguiluz c64dcda5e5 Fixed some typos
Closes GH-6373.

[ci skip]
2020-10-23 09:34:09 +02:00
Dmitry Stogov 680466cd82 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed register allocation
  Fixed reference-counter inference
  Missed warning
2020-10-22 23:17:19 +03:00
Dmitry Stogov 0f8518f875 Fixed register allocation 2020-10-22 23:16:41 +03:00
Dmitry Stogov 838d8d0ba0 Fixed reference-counter inference 2020-10-22 23:15:39 +03:00
Dmitry Stogov 5626dcdb9d Missed warning 2020-10-22 23:15:15 +03:00
Dmitry Stogov 66271df663 Merge branch 'PHP-8.0'
* PHP-8.0:
  Checj type guards before loading values into CPU registers
  Avoid register allocation for ASSIGN into aliased variable (it might be indirectly changed into IS_REFERENCE)
2020-10-22 18:24:22 +03:00
Dmitry Stogov 20cbb233c4 Checj type guards before loading values into CPU registers 2020-10-22 18:23:49 +03:00
Dmitry Stogov 30cf0a04bf Avoid register allocation for ASSIGN into aliased variable (it might be indirectly changed into IS_REFERENCE) 2020-10-22 18:22:36 +03:00
Dmitry Stogov 585f20ab2f Merge branch 'PHP-8.0'
* PHP-8.0:
  More accurate live range construction
2020-10-21 16:05:34 +03:00
Dmitry Stogov cb6f9a6568 More accurate live range construction 2020-10-21 16:05:13 +03:00
Dmitry Stogov c39c7002da Merge branch 'PHP-8.0'
* PHP-8.0:
  Eliminate useless mov(s)
2020-10-21 16:03:54 +03:00
Dmitry Stogov 9efb258fc1 Eliminate useless mov(s) 2020-10-21 16:03:28 +03:00
Dmitry Stogov 7f595ba5ce Merge branch 'PHP-8.0'
* PHP-8.0:
  Eliminate dead type store
2020-10-20 23:37:39 +03:00
Dmitry Stogov a1cac4fefc Eliminate dead type store 2020-10-20 23:37:19 +03:00
Dmitry Stogov e2f347ed12 Merge branch 'PHP-8.0'
* PHP-8.0:
  Improve JIT for fetching character form string
2020-10-20 20:31:09 +03:00
Dmitry Stogov 0ac810bbc5 Improve JIT for fetching character form string 2020-10-20 20:29:33 +03:00
Nikita Popov e0054fc942 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix bug #79643: Invalid memory read when opcache.interned_strings_buffer is 0
2020-10-20 12:51:17 +02:00
Nikita Popov cf04707938 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix bug #79643: Invalid memory read when opcache.interned_strings_buffer is 0
2020-10-20 12:51:08 +02:00