Describir: Achieving High Performance the Functional Way: Expressing High-Performance Optimizations as Rewrite Strategies.