Title :
Mis-speculation-Driven Compiler Framework for Aggressive Loop Automatic Parallelization
Author :
Jin Lin ; Xinmin Tian ; Ng, Jason
Author_Institution :
Mobile Comput. & Compilers, Intel Corp., Santa Clara, CA, USA
Abstract :
Large real world applications with irregular control-flow and/or data-flow pose challenges on the progressive improvement of state-of-the-art optimizing compilers. These irregular control-flow and data-flow are often not compile-time analyzable, and had inhibited important loop optimizations such as parallelization and vectorization. Conventional compiler techniques on parallelizing loops with such irregular control-flow and/or data-flow have mainly focused on eliminating the loop carried control-flow or data-flow dependencies. The issue to effectively enable both control and data speculation for different loop optimizations remains open. This paper proposes a new unified compiler framework which takes both control and data speculation into account to enable more aggressive loop optimizations including loop parallelization, loop vectorization, loop fusion and loop distribution through mis-speculation-driven loop splitting. Our main ideas are: i) unifying control and data speculation in the compiler framework to enable more loop optimizations; ii) performing lazy inspection code generation based on speculation guards to enable later compiler analyses and optimizations without requiring any change to accommodate the speculative information; iii) driving loop splitting using the unified mis-speculation information generated by the inspection code to enable more loops being parallelized. The proposed techniques and framework have been implemented in Intel´s product compiler. Our experimental results show that the new techniques yield significant performance gains from 35% to 62% on some SPEC CPU2006 benchmarks.
Keywords :
data flow computing; optimising compilers; parallelising compilers; program control structures; software performance evaluation; Intel product compiler; SPEC CPU2006 benchmarks; aggressive loop automatic parallelization; compiler techniques; data speculation; data-flow dependencies; driving loop splitting; irregular control-flow; irregular data-flow; lazy inspection code generation; loop carried control-flow; loop optimizations; misspeculation-driven compiler framework; optimizing compilers; unified compiler framework; unified misspeculation information; vectorization; Arrays; Indexes; Inspection; Mobile computing; Optimization; Parallel processing; Program processors; lazy inspection; parallelization; speculation guard;
Conference_Titel :
Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), 2013 IEEE 27th International
Conference_Location :
Cambridge, MA
Print_ISBN :
978-0-7695-4979-8
DOI :
10.1109/IPDPSW.2013.165