Skip to content

More efficient implementation of uniqAway

Currently the implementation of VarEnv.uniqAway is a tad odd: It iteratively tries various uniques until it finds one that is not in scope. Thankfully it uses the size of the in-scope set as the step-size, so it often doesn't take many attempts. However, this implementation is quite quite perplexing given that we could rather just use Data.IntMap.findMax to get the largest unique which is in-scope. Of course, this might increase the chance that we overflow the unique space, but this is something we should handle gracefully anyways.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information