<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Dear all,<br>
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 (
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a href="http://insieme-compiler.org/">http://insieme-compiler.org/</a>).
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 :)<br>
<br>
I host this code in the following repository:
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a href="https://github.com/motonacciu/clomp">https://github.com/motonacciu/clomp</a><br>
<br>
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. <br>
<br>
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)<br>
<br>
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. <br>
<br>
Everyone can use it. If you do so, please cite. I am open to
research collaborations. <br>
<br>
cheers, Simone<br>
<br>
<br>
</body>
</html>