1
0
mirror of https://github.com/php/php-src.git synced 2026-04-28 10:43:30 +02:00
Commit Graph

245 Commits

Author SHA1 Message Date
Dmitry Stogov 790a08c885 Improve JIT code for FCALL with "fake" INIT and avoid fcall_guard if possible. 2020-04-28 13:05:56 +03:00
Dmitry Stogov 29fc6846d8 Fixed incorrect side exit address 2020-04-27 15:59:37 +03:00
Nikita Popov a447897db0 Use information about classes returned by internal functions 2020-04-27 12:50:24 +02:00
Dmitry Stogov 6ab2e82ab5 Avoid STORE of register inherited from parent trace 2020-04-24 16:32:31 +03:00
Dmitry Stogov 8a04d39d1c Skip life range with LOAD and single use 2020-04-24 16:14:58 +03:00
Dmitry Stogov 9ddf9ac98e cleanup 2020-04-24 16:14:44 +03:00
Dmitry Stogov dc379e1c45 Abort register allocation if no candidates 2020-04-24 14:24:52 +03:00
Dmitry Stogov 13df3fcb0a More accurate life range termination 2020-04-23 11:49:28 +03:00
Dmitry Stogov 11c698f1f3 Reorder conditions 2020-04-22 15:56:54 +03:00
Dmitry Stogov 572b799b52 Fixed register allocation constraints 2020-04-22 13:49:54 +03:00
Dmitry Stogov 94fba02621 Reuse registers allocated for parent trace in side traces 2020-04-21 17:34:31 +03:00
Dmitry Stogov 333a28ed58 Register allocation is useless if JIT just calls standarad VM handlers 2020-04-21 14:56:56 +03:00
Dmitry Stogov 832cfa15eb Removed old TODO 2020-04-21 12:07:36 +03:00
Christoph M. Becker 321d9d9ae3 Fix OPcache build
`||` at the beginning of a line has special meaning for the DynAsm
preprocessor.
2020-04-20 17:40:16 +02:00
Dmitry Stogov b0b43e86ae Register allocator and deoptimizer for tracing JIT. 2020-04-20 16:02:03 +03:00
Tyson Andre 4e1219ac88 [skip ci] Fix typos in jit code comments
And in Opcache's zend_cfg.h

Closes GH-5414
2020-04-19 10:03:49 -04:00
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