Locality Driven Memory Hierarchy Optimizations