A New GCC Plugin-Based Compiler Pass to Add Support for Thread-Level Speculation into OpenMP

Abstract

In this paper we propose a compile-time system that adds support for Thread-Level Speculation into OpenMP. Our solution augments the original user code with calls to a TLS library that handles the speculative parallel execution of a given loop, with the help of a new OpenMP speculative clause for variable usage classi cation. To support it, we have developed a plugin-based compiler pass for GCC that augments the code of the loop. With this approach, we only need one additional code line to speculatively parallelize the code, compared with the tens or hundreds of changes needed (depending on the number of accesses to speculative variables) to manually apply the required transformations. Moreover, the plugin leads to a faster performance.

DOI: 10.1007/978-3-319-09873-9_20

Extracted Key Phrases

6 Figures and Tables

Cite this paper

@inproceedings{Aldea2014ANG, title={A New GCC Plugin-Based Compiler Pass to Add Support for Thread-Level Speculation into OpenMP}, author={Sergio Aldea and Alvaro Estebanez and Diego R. Llanos Ferraris and Arturo Gonz{\'a}lez-Escribano}, booktitle={Euro-Par}, year={2014} }