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
>
>

Reply via email to