Skip to Main content Skip to Navigation
Conference papers

Effects Dependence Graph: A Key Data Concept for C Source-to-Source Compilers

Abstract : Optimizations, transformations and analyses are applied to programs by compilers at the intermediate representation level, which usually does not include explicit variable declarations. This description level is fine for middle-ends and for source-to-source optimizers of simple languages. Meanwhile, the C language has become much more flexible since the C99 standard, and let variable and type declarations appear almost anywhere in source code. We present in this paper a new concept to manage C99 declarations in a source-to-source compiler: the Effects Dependence Graph, which is an extension of the classical Data Dependence Graph. It deals particularly efficiently with user-defined type declarations or dependent types like Variable-Length Array. It is also interesting because no legal scheduling transformation is hindered and because existing algorithms are either not or slightly modified. Finally it reduces the need for variable, struct and array privatization or live range analyses in automatic parallelizers. To the best of our knowledge, the declaration issue is ignored in the literature: existing C source-to-source compilers either do not support C99, or accept only restricted portions of code, and production compilers use low-level intermediate representations, possibly with annotations. In this way our solution addresses a wider range of compiler analysis issues.
Document type :
Conference papers
Complete list of metadata

Cited literature [23 references]  Display  Hide  Download

https://hal-mines-paristech.archives-ouvertes.fr/hal-01359465
Contributor : Claire Medrala <>
Submitted on : Tuesday, February 7, 2017 - 3:11:09 PM
Last modification on : Wednesday, October 14, 2020 - 3:52:20 AM
Long-term archiving on: : Monday, May 8, 2017 - 12:11:06 PM

File

A-643.pdf
Files produced by the author(s)

Identifiers

Citation

Nelson Lossing, Pierre Guillou, François Irigoin. Effects Dependence Graph: A Key Data Concept for C Source-to-Source Compilers. 16th IEEE International Working Conference on Source Code Analysis and Manipulation , Oct 2016, Raleigh, United States. pp.167-176, ⟨10.1109/SCAM.2016.20⟩. ⟨hal-01359465⟩

Share

Metrics

Record views

273

Files downloads

1069