Niels Dossche
2e78c080c6
Improve the optimizer's check if a function is a prototype or not ( #10467 )
...
Currently, a function is considered a prototype if the function is not
marked as final. However, a class marked as final also make it
impossible for a function to be overridden. Therefore, we know in this
case too that the function is not a prototype.
This allows the type inference algorithm to determine some types more
precisely, and can allow for more optimizations of the instructions.
Additionally, place some computation of the flags in their respective
blocks as a micro-optimization.
Note: anonymous classes *can* be extended (see test
Zend/tests/anon/011.phpt). Therefore we don't optimize this case.
2023-02-21 00:34:47 +03:00
..
2022-08-29 17:12:57 +03:00
2022-11-07 11:07:58 +03:00
2023-01-23 10:52:14 +01:00
2023-01-09 13:51:57 +03:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2022-03-11 14:30:27 +03:00
2022-05-23 13:33:20 +03:00
2021-04-08 18:24:57 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-11-26 14:10:11 +01:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-08 17:01:13 +02:00
2021-04-08 17:06:40 +02:00
2021-11-25 13:33:26 +03:00
2021-12-06 15:59:30 +03:00
2022-02-28 11:44:22 +03:00
2022-08-01 14:00:19 +03:00
2022-02-22 10:14:54 +01:00
2022-05-05 10:14:56 +02:00
2022-05-05 10:14:56 +02:00
2022-04-10 11:22:36 +02:00
2023-02-08 12:11:41 +00:00
2021-12-27 12:02:13 +03:00
2022-04-25 11:16:10 +03:00
2022-04-25 12:15:55 +03:00
2022-05-11 12:09:11 +03:00
2022-05-11 12:39:26 +03:00
2022-05-16 12:41:25 +03:00
2022-06-06 11:13:53 +03:00
2022-06-14 10:20:45 +03:00
2022-06-14 11:59:35 +03:00
2022-07-18 13:14:15 +03:00
2022-07-18 14:20:06 +03:00
2022-07-25 15:53:06 +03:00
2022-08-22 21:11:39 +03:00
2022-08-23 11:22:31 +03:00
2022-08-23 11:22:31 +03:00
2022-08-23 11:22:31 +03:00
2022-08-23 11:22:31 +03:00
2022-09-19 15:45:34 +03:00
2022-09-26 12:19:12 +03:00
2022-06-20 10:59:37 +03:00
2022-04-25 13:31:01 +03:00
2021-04-03 15:23:25 +02:00
2021-12-10 01:39:28 +03:00
2022-10-17 15:08:21 +03:00
2022-12-26 13:20:55 +03:00
2021-04-03 15:23:25 +02:00
2022-04-26 08:32:28 +03:00
2022-04-26 08:32:28 +03:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-09-20 13:12:43 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-04-03 15:23:25 +02:00
2021-12-13 13:08:05 +03:00
2021-12-24 13:10:22 +03:00
2022-01-10 19:39:19 +03:00
2022-01-28 12:17:46 +03:00
2022-03-11 11:32:23 +03:00
2022-04-18 10:33:52 +03:00
2022-05-16 13:45:31 +03:00
2022-06-20 11:30:07 +03:00
2020-11-27 17:44:30 +01:00
2020-11-27 20:24:00 +01:00
2020-11-27 20:24:00 +01:00
2020-11-27 17:00:12 +01:00
2020-11-30 11:18:21 +01:00
2022-04-25 13:09:05 +03:00
2023-02-21 00:34:47 +03:00
2021-10-06 17:21:02 +03:00