Describir: Analyzing and Optimizing Cache-Friendliness Through Memory Access Patterns: Metrics, Tools, and Methodologies