On 09/15/2010 08:54 AM, Arnaud Charlet wrote:
Given the current limitations of Gimple, another area to focus on could be
task parallelism (rather than data parallelism).  In that case a language
like [Google] Go (via GCC) might make a better talking point than C or
Fortran.

An even better starting point would be Ada which has built-in multi-tasking
constructs.

Arno


Hi everybody,

At the last GROW workshop in Pisa, I presented Gomet, an extension to GCC which (among other things) performs GIMPLE-to-C translation for parallelization purpose.
http://ctuning.org/dissemination/grow10-02.pdf
The paper is out of date now with respect to the progress made in Gomet this year, but you may find some information in there anyway.

It is definitely possible to achieve such translation, and the information available in the middle-end are sufficient. If the input source code is C, then the biggest required transformation is to adapt the SSA form and lower PHI nodes. Additional glitches (coming from floating point types, array and type sizes in pointer arithmetics, includes) can be overcome.

If the input source code is not C, additional work is required to map specific language constructs to C. In Gomet, a subset of Fortran and C++ is supported for free. I did not try Ada, Go or other input languages.

Regards,
N. BENOIT

Reply via email to