[cfe-dev] Announcement: Clang UPC: A UPC compiler based on Clang/LLVM

Gary Funck gary at intrepid.com
Thu Nov 29 14:46:23 PST 2012

On 11/29/12 12:23:52, Hal Finkel wrote:
> Second, as you did not mention this in the e-mail, I'd like to
> point out that as part of this release, Intrepid's UPC runtime
> library has been released under a BSD-style license.

Correct.  My thinking is that for Clang developers, BSD licenses
are expected, so this is a non-event.

> Third, regarding merging with trunk:
>  - The LLVM change seems small, and can probably be proposed as-is

Good idea.  Thanks.

>  - Regarding the Clang additions, it looks like you need to
> rebase them (maybe I'm reading the github page wrong, but it
> looks like this has not been done for a few months)

We have been working from the 3.1 release branch.
That is, the clang-upc master started as the 3.1 release branch.

We are currently looking into re-syncing with the 3.2 release branch,
which is going into the "feature freeze" stage today.

> Can you comment on whether it would be possible to extend Clang's
> plugin interface to implement UPC as a plugin (maybe a static
> plugin if we're worried about exporting too many symbols)? When
> Intel proposed implementing Cilk++ in Clang, this approach was
> suggested. It seemed difficult to evaluate, however, because there
> is no implementation via which to truly gauge the requirements
> of the necessary interfaces. Given that we now have a public UPC
> implementation based on Clang, I think that we could use this to
> gauge the necessary requirements for language-extension plugins.

I haven't looked at the plugin API, but I think that we did ask
Doug Gregor about this when we met with him before starting the
project, and he said that UPC would likely not be a candidate
for a plugin.

IIRC, both OpenMP and Cilk++ are pragma-based.  Thus, essentially
no new syntax.  They also do not need to address distributed memory,
thus there is no need to extend the type system to acoommodate
pointers-to-shared.  For those reasons, I think that those two
"languages" might be more amenable to being implemented as plugins.

> I'll also point out that UPC is a standardized C99 extension
> with implementations by IBM, HP, Cray, etc. in addition to several
> available open-source implementations.


More information about the cfe-dev mailing list