Register allocation & spilling via graph coloring | Synapse