77
88from parser import Stmt , SimpleStmt , BlockStmt , IfStmt , WhileStmt , ForStmt , MacroIfStmt
99
10- MAX_CACHED_REGISTER = 3
10+ MAX_GENERATED_CACHED_REGISTER = 5
1111
1212@dataclass
1313class EscapingCall :
@@ -1369,13 +1369,13 @@ def is_large(uop: Uop) -> bool:
13691369
13701370def get_uop_cache_depths (uop : Uop ) -> Iterator [tuple [int , int , int ]]:
13711371 if uop .name == "_SPILL_OR_RELOAD" :
1372- for inputs in range (MAX_CACHED_REGISTER + 1 ):
1373- for outputs in range (MAX_CACHED_REGISTER + 1 ):
1372+ for inputs in range (MAX_GENERATED_CACHED_REGISTER + 1 ):
1373+ for outputs in range (MAX_GENERATED_CACHED_REGISTER + 1 ):
13741374 if inputs != outputs :
13751375 yield inputs , outputs , inputs
13761376 return
13771377 if uop .name in ("_DEOPT" , "_HANDLE_PENDING_AND_DEOPT" , "_EXIT_TRACE" , "_DYNAMIC_EXIT" ):
1378- for i in range (MAX_CACHED_REGISTER + 1 ):
1378+ for i in range (MAX_GENERATED_CACHED_REGISTER + 1 ):
13791379 yield i , 0 , 0
13801380 return
13811381 if uop .name in ("_START_EXECUTOR" , "_JUMP_TO_TOP" , "_COLD_EXIT" ):
@@ -1397,20 +1397,20 @@ def get_uop_cache_depths(uop: Uop) -> Iterator[tuple[int, int, int]]:
13971397 has_array = True
13981398 break
13991399 ideal_outputs += 1
1400- if ideal_inputs > MAX_CACHED_REGISTER :
1401- ideal_inputs = MAX_CACHED_REGISTER
1402- if ideal_outputs > MAX_CACHED_REGISTER :
1403- ideal_outputs = MAX_CACHED_REGISTER
1400+ if ideal_inputs > MAX_GENERATED_CACHED_REGISTER :
1401+ ideal_inputs = MAX_GENERATED_CACHED_REGISTER
1402+ if ideal_outputs > MAX_GENERATED_CACHED_REGISTER :
1403+ ideal_outputs = MAX_GENERATED_CACHED_REGISTER
14041404 at_end = uop .properties .sync_sp or uop .properties .side_exit_at_end
14051405 exit_depth = ideal_outputs if at_end else ideal_inputs
14061406 if uop .properties .escapes or uop .properties .sync_sp or has_array or is_large (uop ):
14071407 yield ideal_inputs , ideal_outputs , exit_depth
14081408 return
1409- for inputs in range (MAX_CACHED_REGISTER + 1 ):
1409+ for inputs in range (MAX_GENERATED_CACHED_REGISTER + 1 ):
14101410 outputs = ideal_outputs - ideal_inputs + inputs
14111411 if outputs < ideal_outputs :
14121412 outputs = ideal_outputs
1413- elif outputs > MAX_CACHED_REGISTER :
1413+ elif outputs > MAX_GENERATED_CACHED_REGISTER :
14141414 continue
14151415 yield inputs , outputs , outputs if at_end else inputs
14161416
0 commit comments