Interesting! I would like to dig deeper or ask google for more information. I had an impression that I once read a paper about this kind of magic number, but not sure where it was from.
@Dmitry Stogov<mailto:dmitrysto...@gmail.com> With your permission, if I found anything, I would like to add a few comments into the source code file for records. From: Dmitry Stogov <dmitrysto...@gmail.com> Sent: Monday, January 17, 2022 8:12 PM To: Su, Tao <tao...@intel.com> Cc: PHP internals <internals@lists.php.net> Subject: Re: [PHP-DEV] Reason for ZEND_JIT_COUNTER_INIT set to 32531? Oh, probably this is just the biggest prime number that fits into a signed 16-bit number :) On Mon, Jan 17, 2022 at 10:49 AM Su, Tao <tao...@intel.com<mailto:tao...@intel.com>> wrote: Thanks Dmitry for the information. With a few debug sessions, I found that 32531 is working well for any thresholds, and is also a big prime number :-). -----Original Message----- From: Dmitry Stogov <dmitrysto...@gmail.com<mailto:dmitrysto...@gmail.com>> Sent: Monday, January 17, 2022 1:37 PM To: Su, Tao <tao...@intel.com<mailto:tao...@intel.com>> Cc: PHP internals <internals@lists.php.net<mailto:internals@lists.php.net>> Subject: Re: [PHP-DEV] Reason for ZEND_JIT_COUNTER_INIT set to 32531? This it's my choice. This number is common for all JIT counters (hot_loop, hot_func, hot_return). It's value was selected to provide the best precision when different counters have different thresholds. Unfortunately, I can't remember the exact equations or logic I used at that time. Thanks. Dmitry. On Thu, Jan 13, 2022 at 1:01 PM Su, Tao <tao...@intel.com<mailto:tao...@intel.com>> wrote: > Hi Internal, > I am not sure this is a correct mail list for asking source code > related question. > If not, I am sorry. Appreciate you guys' help. > > I am reading PHP8 JIT related source code and found that zend_jit.h > has a magic definition ZEND_JIT_COUNTER_INIT as 32531 which I do not > quite understand how this number was chosen and why? > Anybody can provide some historic information? > #define ZEND_JIT_COUNTER_INIT 32531 > > A code example using this definition (looks like the 2nd parameter > computes into a fixed number if hot_func is set by php.ini) > ZEND_OPCODE_TAIL_CALL_EX(zend_jit_trace_counter_helper, > ((ZEND_JIT_COUNTER_INIT + JIT_G(hot_func) - 1) / > JIT_G(hot_func))); > > > ======================================= > Tony Su (Su, Tao) > make a 'lazy' programmer diligently with efficiency > >