{'fraction_non_alphanumeric': 0.019150209455415918, 'fraction_numerical': 0.0, 'mean_word_length': 5.147058823529412, '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}}
Heap Dependence Analysis for Sequential Programs

Identifying dependences present in the body of sequential program is used by parallelizing compilers to automatically extract parallelism from the program. Dependence detection mechanisms for programs with scalar and static variables is well explored and have become a standard part of parallelizing and vectorizing compilers. However, detecting dependences in the presence of dynamic (heap) recursive data structures is highly complex because of the unbound and dynamic nature of the structure. The problem becomes more critical due to the presence of pointer-induced aliasing . This thesis addresses the aforementioned problem and gives a novel approach for dependence analysis of sequential programs in presence of heap data structure. The novelty of our technique lies in the two-phase mechanism, where the first phase identifies dependences for whole procedure. It computes abstract heap access paths for each heap accessing statement in the procedure. The access paths approximate the locations accessed by the statement. For each pair of statements these access paths are checked for interference. The second phase refines the dependence analysis in the context of loops. The main aspect of the second phase is the way we convert the precise access paths, for each statement, into equations that can be solved using traditional tests, e.g. GCD test, and Lamport test. The technique discovers loop dependences, i.e. the dependence among two different iterations of the same loop. Further, we extend the intra-procedural analysis to inter-procedural one. This thesis is dedicated to my parents and my beloved friend.