History log of /PHP-8.2/ext/opcache/jit/zend_jit_helpers.c (Results 126 – 150 of 169)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# b4b5734d 19-Jun-2020 Dmitry Stogov

JIT for FETCH_OBJ_W


# 18347758 17-Jun-2020 Dmitry Stogov

Improved JIT for SEPARATE_ARRAY


# a4597999 16-Jun-2020 Dmitry Stogov

Improved JIT for ZVAL_COPY_DEREF


# 217f6e16 10-Jun-2020 Dmitry Stogov

Use cheaper variant of zend_hash_index_find()


# 83a77015 08-Jun-2020 twosee

Add helper APIs for maybe-interned string creation

Add ZVAL_CHAR/RETVAL_CHAR/RETURN_CHAR as a shortcut for using
ZVAL_INTERNED_STRING and ZSTR_CHAR.

Add zend_string_init_fast()

Add helper APIs for maybe-interned string creation

Add ZVAL_CHAR/RETVAL_CHAR/RETURN_CHAR as a shortcut for using
ZVAL_INTERNED_STRING and ZSTR_CHAR.

Add zend_string_init_fast() as a helper for the empty string /
one char interned string / zend_string_init() pattern.

Also add corresponding ZVAL_STRINGL_FAST etc macros.

Closes GH-5684.

show more ...


# e18f631a 19-May-2020 Dmitry Stogov

Use light version of zend_array_destroy() to free arrays without refcounted elements and string indexes.


# 1179686f 24-Apr-2020 Máté Kocsis

Improve error messages for invalid property access

Closes GH-5446
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>


# 36935e42 30-Mar-2020 Máté Kocsis

Improve undefined variable error messages

Closes GH-5312


# 37154753 20-Mar-2020 Dmitry Stogov

JIT for INIT_NS_FCALL_BY_NAME


# 12cdab2d 18-Mar-2020 Dmitry Stogov

Improved JIT for BIND_GLOBAL


# 941a3b6c 06-Mar-2020 Nikita Popov

Remove unnecessary uses of CHECK_SILENT

If no error is passed, it is always silent.


# 43443857 07-Jan-2020 Nikita Popov

Add static return type

RFC: https://wiki.php.net/rfc/static_return_type

The "static" type is represented as MAY_BE_STATIC, rather than
a class type like "self" and "parent", as

Add static return type

RFC: https://wiki.php.net/rfc/static_return_type

The "static" type is represented as MAY_BE_STATIC, rather than
a class type like "self" and "parent", as it has special
resolution semantics, and cannot be cached in the runtime cache.

Closes GH-5062.

show more ...


# bc6bab6c 06-Dec-2019 Nikita Popov

Basic JIT support for verify return


# 170cc105 06-Feb-2020 Dmitry Stogov

Fixed JIT for PTR_INC instruction to return de-referenced value of reference


# daee9857 04-Feb-2020 Dmitry Stogov

Fixed JIT for BIND_GLOBAL


# bd197728 16-Jan-2020 Nikita Popov

Use zend_type inside type lists

Instead of having a completely independent encoding for type list
entries. This is going to use more memory, but I'm not particularly
concerned about

Use zend_type inside type lists

Instead of having a completely independent encoding for type list
entries. This is going to use more memory, but I'm not particularly
concerned about that, as type unions that contain multiple classes
should be uncommon. On the other hand, this allows us to treat
top-level types and types inside lists mostly the same.

A new ZEND_TYPE_FOREACH macros allows to transparently treat list
and non-list types the same way. I'm not using it everywhere it could be
used for now, just the places that seemed most obvious.

Of course, this will make any future type system changes much simpler,
as it will not be necessary to duplicate all logic two times.

show more ...


# bfe3f934 07-Jan-2020 George Peter Banyard

Add warning and convert to exception in string offset assignment:

Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned t

Add warning and convert to exception in string offset assignment:

Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned to the offset if provided
a needle that is longer than one byte.

[1] https://wiki.php.net/rfc/engine_warnings

show more ...


# 2bc0a6e9 20-Dec-2019 Nikita Popov

Fix string offset signed int UB in jit as well


Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3
# 999e32b6 25-Sep-2019 Nikita Popov

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same t

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same time. Additionall, zend_type_list is
introduced as a new kind of pointer payload, which is used to store
multiple class types. Each of the class types is a tagged pointer,
which may be either a class name or class entry. The latter is only
used for typed properties, while arguments/returns will instead use
cache slots. A type list can contain a mix of both names and CEs at
the same time, as not all classes may be resolvable.

One thing this is missing is support for union types in arginfo
and stubs, which I want to handle separately.

I've also dropped the special object code from the JIT implementation
for now -- I plan to add this back in a different form at a later time.
For now I did not want to include non-trivial JIT changes together
with large functional changes.

Another possible piece of follow-up work is to implement "iterable"
as an internal alias for "array|Traversable". I believe this will
eliminate quite a few special-cases that had to be implemented.

Closes GH-4838.

show more ...


Revision tags: php-7.2.23, php-7.3.10
# ac4e0f08 20-Sep-2019 Nikita Popov

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

To avoid increasing the size of arginfo structures, the
pass_by_reference and is_variadic fields are now stored as part of
the type_mask (8-bit are reserved for custom use).

Different types of pointer payloads are distinguished based on bits
in the type_mask.

show more ...


# 14bdb0cf 04-Nov-2019 Máté Kocsis

Fix consistency issues with array accesses warnings/exceptions

* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "res

Fix consistency issues with array accesses warnings/exceptions

* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "resource used as offset" warning for isset() as well.
* Make array_key_exists() behavior with regard to different key
types consistent with isset() and normal array accesses. All key
types now use the usual coercions and array/object keys throw
TypeError.

Closes GH-4887.

show more ...


# fe6c420b 23-Oct-2019 Nikita Popov

JIT: Handle typed refs in assign dim


# 2f80fbe3 22-Oct-2019 Nikita Popov

JIT: Fix handling of typed ref in assign op


# 097184ca 22-Oct-2019 Nikita Popov

JIT: UNDEF result on "Illegal offset type" exception


# e80934d7 17-Oct-2019 Nikita Popov

Pass cache slot when printing type errors

Instead of using a separate ce.


1234567