• Marius Wachtler's avatar
    vregs: split them in three parts and reuse them in some cases · f1424848
    Marius Wachtler authored
    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.
    f1424848
irgen.cpp 50.1 KB