Skip to content

Commit d54f204

Browse files
committed
Update Trace Linking Rules comment
1 parent 2e70a89 commit d54f204

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

ext/opcache/jit/zend_jit_vm_helpers.c

+31-15
Original file line numberDiff line numberDiff line change
@@ -613,20 +613,36 @@ static int zend_jit_trace_subtrace(zend_jit_trace_rec *trace_buffer, int start,
613613
* Trace Linking Rules
614614
* ===================
615615
*
616-
* flags
617-
* +----------+----------+----------++----------+----------+----------+
618-
* | || JIT |
619-
* +----------+----------+----------++----------+----------+----------+
620-
* start | LOOP | ENTER | RETURN || LOOP | ENTER | RETURN |
621-
* +========+==========+==========+==========++==========+==========+==========+
622-
* | LOOP | loop | | loop-ret || COMPILED | LINK | LINK |
623-
* +--------+----------+----------+----------++----------+----------+----------+
624-
* | ENTER |INNER_LOOP| rec-call | return || LINK | LINK | LINK |
625-
* +--------+----------+----------+----------++----------+----------+----------+
626-
* | RETURN |INNER_LOOP| | rec-ret || LINK | | LINK |
627-
* +--------+----------+----------+----------++----------+----------+----------+
628-
* | SIDE | unroll | | side-ret || LINK | LINK | LINK |
629-
* +--------+----------+----------+----------++----------+----------+----------+
616+
* opline trace flags
617+
* +----------+----------+----------+
618+
* | LOOP | ENTER | RETURN |
619+
* +========+==========+==========+==========+
620+
* | LOOP | loop | | loop-ret |
621+
* +--------+----------+----------+----------+
622+
* | ENTER |INNER_LOOP| rec-call | return |
623+
* start +--------+----------+----------+----------+
624+
* flags | RETURN |INNER_LOOP| | rec-ret |
625+
* +--------+----------+----------+----------+
626+
* | SIDE | unroll | | side-ret |
627+
* +--------+----------+----------+----------+
628+
*
629+
*
630+
* opline trace flags
631+
* +----------+----------+----------+
632+
* | JITED |
633+
* +----------+----------+----------+
634+
* | LOOP | ENTER | RETURN |
635+
* +========+==========+==========+==========+
636+
* | LOOP | COMPILED | LINK | LINK |
637+
* +--------+----------+----------+----------+
638+
* | ENTER | LINK | LINK | LINK |
639+
* start +--------+----------+----------+----------+
640+
* flags | RETURN | LINK | | LINK |
641+
* +--------+----------+----------+----------+
642+
* | SIDE | LINK | LINK | LINK |
643+
* +--------+----------+----------+----------+
644+
*
645+
*
630646
*
631647
* loop: LOOP if "cycle" and level == 0, otherwise INNER_LOOP
632648
* INNER_LOOP: abort recording and start new one (wait for loop)
@@ -637,7 +653,7 @@ static int zend_jit_trace_subtrace(zend_jit_trace_rec *trace_buffer, int start,
637653
* return: RETURN if level == 0
638654
* rec_ret: RECURSIVE_RET if "cycle" and ret_level > N, otherwise continue
639655
* side_ret: RETURN if level == 0 && ret_level == ret_depth, otherwise continue
640-
*
656+
* LINK: stop recording. End of new trace jumps to the other one.
641657
*/
642658

643659
zend_jit_trace_stop ZEND_FASTCALL zend_jit_trace_execute(zend_execute_data *ex,

0 commit comments

Comments
 (0)