Equality Saturation : Using Equational Reasoning To Optimize Imperative Functions