{'fraction_non_alphanumeric': 0.014878621769772905, 'fraction_numerical': 0.0031323414252153485, 'mean_word_length': 5.69109947643979, '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}}
Identifying Parallelism in Construction Operations of Cyclic Pointer-Linked Data Structures

Pointer analysis has been an active research field in recent years. Combining pointer analysis and dependence analysis can identify parallelism in programs with pointers or dynamic pointer-linked data structures. After parallelism is identified, programs can be parallelized and then executed on parallel multiprocessor systems to achieve good performance. The compiler analysis techniques that have been proposed so far can only analyze parallelism in the traversal operations in programs with dynamic pointer-linked data structures. As a result, only the traversal operations will be parallelized while the construction operations will be executed in sequential. Although the traversal phase of such programs, which usually account for over 90% of total execution times, can be parallelized, the rest of programs that accounts for less than 10% will dominate the execution on multiprocessor systems. This paper presents a technique that can identify parallelism in the construction phase of programs with pointer-linked data structures. Experiment results show this approach can parallelize the construction phase of such programs and achieve good speedup on multiprocessor systems.