vregs: split them in three parts and reuse them in some cases
user visible: used for all non compiler generated names, name could be used in a single block or multiple all frames contain atleast this vregs in order to do frame introspection cross block : used for compiler generated names which get used in several blocks or which have closure scope single block: used by compiler created names which are only used in a single block. get reused for different names we assign the lowest numbers to the user visible ones, followed by the cross block ones and finally the single block ones. we do this because not all tiers use all of the vregs and it still makes it fast to switch between tiers.
Showing
Please register or sign in to comment