Value numbering

32 points by asb


david_chisnall

The Pro64 compiler suite used a representation known as hashed static single assignment (HSSA). This named new instructions by hashing the operands and operator and inserting them into a hash table, deduplicating common subexpressions during the initial creation phase.

It’s a neat approach, but it was patented so things like LLVM couldn’t use it. The patent expired over a decade ago though, so I’d recommend reading Fred Chow’s paper describing it.