@@ -614,25 +614,19 @@ static inline int32_t
614614compute_exit_quality (_Py_CODEUNIT * target_instr , int opcode ,
615615 const _PyJitTracerState * tracer )
616616{
617- // We need to check for this, otherwise the first instruction (JUMP_BACKWARD usually)
618- // is mistakenly thought of as an exit.
619- if (uop_buffer_length ((_PyJitUopBuffer * )& tracer -> code_buffer ) > CODE_SIZE_NO_PROGRESS ) {
620- if (target_instr == tracer -> initial_state .start_instr ||
621- target_instr == tracer -> initial_state .close_loop_instr ) {
622- return EXIT_QUALITY_CLOSE_LOOP ;
623- }
624- else if (target_instr -> op .code == ENTER_EXECUTOR && !_PyJit_EnterExecutorShouldStopTracing (opcode )) {
625- return EXIT_QUALITY_ENTER_EXECUTOR ;
626- }
627- else if (opcode == JUMP_BACKWARD_JIT || opcode == JUMP_BACKWARD ) {
628- return EXIT_QUALITY_BACKWARD_EDGE ;
629- }
630- else if (opcode == JUMP_BACKWARD_NO_INTERRUPT ) {
631- return EXIT_QUALITY_BACKWARD_EDGE_COROUTINE ;
632- }
633- else if (_PyOpcode_Caches [_PyOpcode_Deopt [opcode ]] > 0 ) {
634- return EXIT_QUALITY_SPECIALIZABLE ;
635- }
617+ if (target_instr == tracer -> initial_state .close_loop_instr ) {
618+ return EXIT_QUALITY_CLOSE_LOOP ;
619+ }
620+ else if (target_instr -> op .code == ENTER_EXECUTOR && !_PyJit_EnterExecutorShouldStopTracing (opcode )) {
621+ return EXIT_QUALITY_ENTER_EXECUTOR ;
622+ }
623+ else if (opcode == JUMP_BACKWARD_JIT ||
624+ opcode == JUMP_BACKWARD ||
625+ opcode == JUMP_BACKWARD_NO_INTERRUPT ) {
626+ return EXIT_QUALITY_BACKWARD_EDGE ;
627+ }
628+ else if (_PyOpcode_Caches [_PyOpcode_Deopt [opcode ]] > 0 ) {
629+ return EXIT_QUALITY_SPECIALIZABLE ;
636630 }
637631 return EXIT_QUALITY_DEFAULT ;
638632}
0 commit comments