Clang UPC is invoked by the running the clang-upc driver (or a convenience symbolic link upc). clang-upc must be used for linking to automatically include the UPC runtime on the command line (Just as clang++ is used for C++).

Clang UPC has a number of UPC specific options, in addition to those supported by Clang. The following options are available.

  • -fupc-threads-N
    Compiles under the static threads environment with N threads. N must be a positive decimal integer. Different values of this option are not binary compatible except that translation units compiled under the dynamic threads environment may be combined with translation units compiled under the static threads environment.

  • -x upc
    Forces sources to be treated as UPC.

  • -fno-upc-inline-lib
    Disable inlining of UPC runtime calls

  • -fno-upc-pre-include
    Disable pre-include of UPC specific include files

  • -fupc-debug
    Generate UPC runtime calls that include debugging information

  • -fupc-packed-bits=<value>
    Specify the UPC packed pointer-to-shared representation (e.g. 20,10,34)

  • -fupc-pts-vaddr-order=<value>
    Specify the UPC pointer-to-shared address field order (first or last)

  • -fupc-pts=<value>
    Specify the UPC pointer-to-shared representation (packed or struct)

  • -fupc-ir
    Generate UPC Remote Pointer access routines in LLVM (disabled by default).