[cfe-dev] CLOMP: OpenMP frontend for Clang (and much more)

Hal Finkel hfinkel at anl.gov
Tue May 8 11:08:53 PDT 2012


Simone,

Thank you for taking the time to extract this from your codebase. For
any of this code to be directly usable in clang, it will need to be
relicensed (most of the files seem to be under the GPL currently). Once
that is done, I will certainly help with the rebasing, coding-standards
changes, etc.

Sincerely,
Hal

On Tue, 08 May 2012 15:11:39 +0200
Simone Pellegrini <spellegrini at dps.uibk.ac.at> wrote:

> Dear all,
> I worked for some time on an OpenMP frontend based on Clang. This is
> not just an OpenMP frontend but a more comprehensive framework to
> handle user defined pragmas. OpenMP is implemented just to test its 
> functionalities. This was implemented as part of a bigger project
> called insieme which is developed at the university of Innsbruck ( 
> http://insieme-compiler.org/). Several people asked me to release
> this code since long time and I finally took some time to isolate the
> pragma handling mechanism from the rest of the project and open
> source it. This is only the frontend part, there is no backend.
> Therefore, if you happen to have an OpenMP backend for LLVM and you
> need a frontend then you just found your soul mate :)
> 
> I host this code in the following repository: 
> https://github.com/motonacciu/clomp
> 
> This project contains the infrastructure for pragma handling and the 
> OpenMP frontend. It doesn't work on the current SVN release on clang.
> It requires LLVM/Clang 3.0 and additionally a small patch has to be
> applied to Clang in order for the all thing to work. However the
> patch can be easily updated to work with the latest clang. The
> project contains a couple of examples that show how it is meant to be
> used.
> 
> In order to compile the project you need to do 2 things. First of all 
> install the patched version of LLVM/Clang. This can be done by
> running the llvm-3.0-installer.sh script stored in the script folder.
> Clomp is built with cmake. Specify the
> LLVM_HOME=/path/to/patched-llvm env variable when you run CMAKE. It
> is required to set up some internal paths. (I will add installation
> instruction in the project web page soon)
> 
> It would be nice to have the code in Clang (so that I don't have to 
> update the patch every time a new release of clang comes along) but I 
> really have no time to rewrite everything to conform with the coding 
> style of LLVM. I use C++11 a lot and templates as well and I know
> LLVM how people here feel about those things. :) Also the code was
> first written more than 1 year ago and I suppose in the meantime
> several things have changed in Clang and probably there is an easier
> way to do some of the things. If someone is interested in taking over
> the effort of going through a code review and port it into clang I
> can help, just contact me. The code is well tested and functional. It
> can handle several OpenMP benchmark codes like the NAS Parallel
> Benchmarks and Rodinia benchmarks.
> 
> Everyone can use it. If you do so, please cite. I am open to research 
> collaborations.
> 
> cheers, Simone
> 
> 



-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the cfe-dev mailing list