{'fraction_non_alphanumeric': 0.01717171717171717, 'fraction_numerical': 0.0, 'mean_word_length': 5.006060606060606, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Compiler Analysis to Determine Useful Cache Size for Energy Efficiency

As processor and memory system speeds have significantly diverged, system designers have introduced ever larger caches in an effort to supply the processor with data at a rate it is capable of processing it. However, application characteristics vary and not all programs can effectively utilize large caches due to their inherent data reuse properties. The inability to use all the available cache capacity leads to wasted cache power dissipation. The rising specter of "dark silicon" makes it critical to avoid wasted power on a chip.In this paper, we develop a compile-time approach to analyze data reuse characteristics of affine computations and deduce the useful cache size(s) for a given system configuration. The non-useful cache can be power-gated to save power. Analysis of benchmarks shows that significant fractions of the last level cache of current processors may be turned off with no performance loss.