{'fraction_non_alphanumeric': 0.023539668700959023, 'fraction_numerical': 0.0, 'mean_word_length': 5.342541436464089, '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}}
Run-time Assisted Interprocedural Analysis of Memory Access Patterns

In this paper we present a unified framework based on the existing IPA and speculative run-time parallelization technology analysis in the Polaris compiler. The framework is able to analyze efficiently all statically un-analyzable cases in a uniform manner. We use the same technique to extract run-time assertions from any loop and depending on the case at hand, generate run-time tests that range from a low cost scalar comparison to a full, reference by reference LRPD test. We accomplish this by both extending compile time IP analysis techniques and by incorporating speculative run-time techniques when necessary. In essence our solution is to bridge ''free'' compile time techniques with exhaustive run-time techniques through a continuum of simple to complex solutions. We have implemented our framework in the Polaris compiler by introducing an innovative intermediate representation (RT_LMAD) and associated run-time operations. It includes intersection, union, last-value assignment, aggregated inspectors and LRPD tests for both dense and sparse reference patterns.