Parallelization of sequential applications requires extracting information about the loops and how their variables are accessed, and afterwards, augmenting the source code with extra code depending on such information.
Our work in this field includes the BonaFide C Analyzer (BFCA), a tool to automatically classify at compile time all variables used inside each loop according to their accesses. With this information it is much easier to decide whether the variables used inside a loop should be SHARED, PRIVATE, or are unsafe and therefore should be classified as SPECULATIVE.
A recent improvement over BFCA led to BFCA+, a tool that does not only perform such analysis, but automatically generates an OpenMP parallel version of a given loop, with all the variables correctly classified according to their use.
You can find below the links to the corresponding publications (in reverse chronological order).
BFCA+: Automatic Synthesis of Parallel Code with TLS Capabilities. Sergio Aldea, Diego R. Llanos, Arturo Gonzalez Escribano. The Journal of Supercomputing, ISSN 0920-8542, 2016 (online first). DOI: 10.1007/s11227-016-1623-0.
The BonaFide C Analyzer: Automatic Loop-level Characterization and Coverage Measurement. Sergio Aldea, Diego R. Llanos, Arturo González Escribano. The Journal of Supercomputing, Vol. 68, Issue 3, June 2014, pags. 1378-1401. ISSN 0920-8542, DOI 10.1007/s11227-014-1091-3.