Dmitry Stogov
ea0110f0de
Improve registers reuse
2020-04-16 14:35:51 +03: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
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
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
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
36935e42ea
Improve undefined variable error messages
...
Closes GH-5312
2020-03-31 13:02:32 +02: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
Dmitry Stogov
150df5b17c
Removed useless variable
2020-03-27 12:24:15 +03: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
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
e88c7bf5c7
Fix signed integer overflow UB in dasm
...
Should hopefully fix the ubsan and community builds.
2020-03-23 11:12:42 +01:00
Nikita Popov
6766b5f9bc
Fix pointer UB in dynasm
...
Looks like newer GCC versions started warning about this.
2020-03-23 11:03:56 +01:00
Tyson Andre
26b9780d02
Fix compilation error on mac with -Wshift-negative-value
...
Fix for mac OS build error seen in ccc49ead68
when shifting -1 (max argument count?)
```
ext/opcache/jit/zend_jit_trace.c:1668:2:
error: shifting a negative signed value is undefined
[-Werror,-Wshift-negative-value]
TRACE_FRAME_INIT(frame, op_array, 0, -1);
```
Closes GH-5284.
2020-03-23 09:24:26 +01:00
Dmitry Stogov
4b8171e087
Add tracing JIT guards for INTI_FCALL_BY_NAME and INIT_NS_FCALL_BY_NAME
2020-03-20 16:59:02 +03:00
Dmitry Stogov
3715475381
JIT for INIT_NS_FCALL_BY_NAME
2020-03-20 15:36:40 +03:00
Dmitry Stogov
166bc64caf
CAST to the same type mat be JIT-ed as QM_ASSIGN
2020-03-20 13:31:55 +03:00
Dmitry Stogov
517c30b05f
JIT for FETCH_THIS
2020-03-20 12:33:41 +03:00
Dmitry Stogov
ccc49ead68
Change jit_trace_stack_frame layout
2020-03-20 10:54:45 +03:00
Dmitry Stogov
9232af91fd
JIT for STRLEN
2020-03-20 01:23:36 +03:00
Dmitry Stogov
3958d5bdc5
JIT for ECHO and variable string operands
2020-03-20 01:01:33 +03:00
Dmitry Stogov
282265bccd
JIT for SEND_FUNC_ARG
2020-03-19 23:59:11 +03:00
Dmitry Stogov
8e879b9f44
JIT for ZEND_CHECK_FUNC_ARG
2020-03-18 23:56:03 +03:00
Dmitry Stogov
c2f1c36e30
Eliminate run-time check
2020-03-18 21:19:31 +03:00
Dmitry Stogov
12cdab2d76
Improved JIT for BIND_GLOBAL
2020-03-18 17:20:40 +03:00
Nikita Popov
70ef2f3817
Use different scratch register in read_obj
...
We already use r0 to hold the zval.
2020-03-18 11:44:34 +01:00
Nikita Popov
69937870da
Explicitly pass scratch register to SAVE_VALID_OPLINE
2020-03-18 11:44:25 +01:00
Dmitry Stogov
f767807986
Result of ASSIGN may be different from the assigned value when LHS is a typed reference
2020-03-18 01:40:41 +03:00
Dmitry Stogov
a8e8c40ad4
Use zend_fetch_arg_info_type()
2020-03-17 18:10:27 +03:00
Dmitry Stogov
29bef78e9f
Use _const_op_type() for converting constant into type info
2020-03-17 17:55:34 +03:00
Dmitry Stogov
4b89d96489
Improved JIT for ZEND_ASSIGN
2020-03-17 15:45:54 +03:00
Nikita Popov
b1a082da25
Fix typos
2020-03-17 12:59:37 +01:00