Dmitry Stogov
ea0110f0de
Improve registers reuse
2020-04-16 14:35:51 +03:00
Nikita Popov
00013401ff
Allow using prototypes when optimizing arg passing
...
Closes GH-5193.
2020-04-16 12:15:19 +02:00
Nikita Popov
dd163d05ff
Remove OP_RANGE_EX distinction
...
Only leave OP_RANGE macros, which always have the "EX" behavior.
This was already done for most other macros before, but these
were missed. This helps avoid mistakes by using the wrong macro.
2020-04-15 13:00:36 +02:00
Dmitry Stogov
99084262c3
Use proper macro
2020-04-15 13:09:55 +03:00
Dmitry Stogov
782dc8d73b
Removed unused parameter
2020-04-15 13:08:09 +03:00
Nikita Popov
bac5137e4e
Add zend_create_member_string() API
...
This is a recurring pattern.
2020-04-14 16:52:13 +02:00
Dmitry Stogov
11c5c78401
Added missed '~'
2020-04-14 15:37:20 +03:00
Dmitry Stogov
0a408be0d2
Separate zend_jit_dump_lifetime_interval() function
2020-04-10 16:10:19 +03:00
Dmitry Stogov
d3dda1e0f1
Fixed overflow handling
2020-04-10 14:42:26 +03:00
Dmitry Stogov
66f2ebe448
Register allocator refactoring
2020-04-09 19:31:18 +03:00
Nikita Popov
d030ddb2cd
Export the zend_string_concat3() API
2020-04-09 15:06:53 +02:00
Dmitry Stogov
41c2b275f7
cleanup
2020-04-09 14:33:29 +03:00
Dmitry Stogov
ba64b3fd41
Don't get number of passed arguments from "fake" INIT frames
2020-04-09 13:38:40 +03:00
Máté Kocsis
3709e74b5e
Store default parameter values of internal functions in arg info
...
Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal functions.
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com >
2020-04-08 18:37:51 +02:00
Dmitry Stogov
3042b2b201
Dump information about trace side exits
2020-04-08 12:39:24 +03:00
Dmitry Stogov
f915b5516c
Update stack type, only if necessary
2020-04-08 10:34:24 +03:00
Dmitry Stogov
a172e056a0
Fixed TYPE/INFO mismatch
2020-04-08 00:27:19 +03:00
Dmitry Stogov
4e69970fb7
cleanup
2020-04-07 21:37:10 +03:00
Dmitry Stogov
cff7703a61
Revert "cleanup" (wrong commit)
...
This reverts commit 5db5f71f28 .
2020-04-07 21:34:18 +03:00
Dmitry Stogov
5db5f71f28
cleanup
2020-04-07 21:30:47 +03:00
Dmitry Stogov
864b1cc3ef
Free room for information about register allocation at astact stack and at trace_exit_info. Implement simple deoptimizer.
2020-04-07 12:01:48 +03:00
Dmitry Stogov
4006c0008e
Save CPU regesters on side exit for deoptimization
2020-04-06 23:48:20 +03:00
Dmitry Stogov
c4bdf41862
Minor register allocator refactoring
2020-04-06 16:17:02 +03:00
Máté Kocsis
21cfa03f17
Generate function entries for another batch of extensions
...
Closes GH-5352
2020-04-05 21:15:30 +02:00
Nikita Popov
1ed132e2e5
Unify checks for binary operator errors for ct eval
...
Move everything into one function and share it with opcache.
This fixes some discrepancies.
2020-04-01 14:42:58 +02:00
Nikita Popov
56b18d478e
Don't convert binop operand types in opcache
...
This may produce different behavior if operator overloading is
involved, and may change the error message.
If there's strong interest, this could be done in the DFA pass
with available type information. It does not look particularly
practically useful to me though.
2020-04-01 14:39:41 +02:00
Nikita Popov
2d8f9f34dd
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix literal compaction collision between string and double
2020-04-01 14:23:07 +02:00
Nikita Popov
59c8d6a863
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix literal compaction collision between string and double
2020-04-01 14:22:27 +02:00
Nikita Popov
14b770d407
Fix literal compaction collision between string and double
...
For the sake of simplicity I'm using a separate hashtable, rather
than trying to do hash perturabation on the double strings.
2020-04-01 14:20:59 +02:00
Máté Kocsis
36935e42ea
Improve undefined variable error messages
...
Closes GH-5312
2020-03-31 13:02:32 +02:00
Tyson Andre
47ddd95836
Do constant evaluation for str_contains in opcache
...
Both arguments must be strings.
str_contains deliberately does not emit a warning for an empty needle.
Closes GH-5324
2020-03-30 09:54:38 -04:00
Dmitry Stogov
44390beb42
cleanup
2020-03-30 14:27:01 +03:00
Dmitry Stogov
4c9ee6a8ca
Initialize variable numbers
2020-03-30 12:50:19 +03:00
Nikita Popov
a34480ec82
SCCP: Optimize strpos with empty needle
...
This is no longer special cases in PHP 8.
2020-03-30 10:37:22 +02:00
Dmitry Stogov
099ffc2169
BIND_GLOBAL and BIND_STATIC don't use value of the first operand
2020-03-27 15:20:21 +03:00
Dmitry Stogov
150df5b17c
Removed useless variable
2020-03-27 12:24:15 +03:00
Nikita Popov
97cb81ead5
Remove HAVE_REALPATH checks
...
We do not actually use realpath(), but a custom implementation.
Make sure the realpath() function is always available.
Closes GH-5290.
2020-03-26 11:46:00 +01:00
George Peter Banyard
3e6667d338
Fix -Wtype-limits warning by using correct type declaration in JIT trace
...
Namely int as that is the type of 'definition'
Closes GH-5299
2020-03-26 00:01:59 +01:00
Dmitry Stogov
51a305d2a4
Separate zend_jit_var_supports_reg() and cleanup
2020-03-25 23:09:32 +03:00
Dmitry Stogov
40fa6284eb
Fixed incorrect "TSSA start" headers
2020-03-25 23:07:21 +03:00
Dmitry Stogov
5a05fef2af
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).
2020-03-25 17:38:08 +03:00
Dmitry Stogov
91ee85c20c
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).
2020-03-25 17:31:33 +03:00
Dmitry Stogov
65120cfc09
Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).
2020-03-25 17:31:06 +03:00
Dmitry Stogov
b7c6244dfc
Add new line before basic-block labels (except for the first BB0)
2020-03-25 14:26:42 +03:00
Dmitry Stogov
0684b9fcdc
Always print numeric opline numbers
2020-03-25 14:26:42 +03:00
Dmitry Stogov
ce8202f996
Rename "var" to "stack". This is an abstract stack that holds TSSA variable numbers.
2020-03-25 10:49:01 +03:00
Dmitry Stogov
af3142daaf
Make SSA dump format controlled by opcache.jit_debug more readable (always print opcode number).
...
This doesn't affect dumps controlled by opcache.opt_debug_level.
2020-03-24 22:44:11 +03:00
Nikita Popov
568592f1e9
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Add test file
2020-03-23 17:14:42 +01:00
Nikita Popov
534e15b477
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Add test file
2020-03-23 17:14:16 +01:00
Nikita Popov
2e8db5d6be
Add test file
...
Forgot the git add again...
2020-03-23 17:13:57 +01:00