lssndrbarbieri@gmail.com Alessandro Barbieri Mercurium is a C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping developed by the Programming Models group at the Barcelona Supercomputing Center. Mercurium is used, together with the Nanos++ Runtime Library, to implement the OmpSs programming model. Both tools provide also an implementation of OpenMP 3.1. More recently, Mercurium has been also used to implement the OmpSs-2 programming model together with the Nanos6 Runtime Library. Apart from that, since Mercurium is quite extensible it has been used to implement other programming models or compiler transformations, examples include Cell Superscalar, Software Transactional Memory, Distributed Shared Memory or the ACOTES project, just to name a few. Extending Mercurium is achieved using a plugin architecture, where plugins represent several phases of the compiler. These plugins are written in C++ and dynamically loaded by the compiler according to the chosen profile configuration. Code transformations can be implemented in terms of source code (there is no need to modify or know the internal syntactic representation of the compiler). bsc-pm/mcxx Enables analysis phase Enable GNU Fortran compiler > 8 array descriptors Use this when debugging bison grammars Build and install TL example phases Enables Extrae instrumentation of Mercurium itself Enables the MPI Nanos++ Lowering phase in Mercurium Enables support for Nanos++ Enables support of OmpSs Programming Model using Nanos++ Enables support of OmpSs-2 using Nanos6 Enables the OpenCL Nanos++ Lowering phase in Mercurium Enables support of OpenMP using Nanos++ Enables support for __float128 and __int128. It also enables REAL(KIND=16) and INTEGER(KIND=16) in Fortran Enable support for Transparent Checkpoint Library Enables support of OpenMP TL for GOMP (EXPERIMENTAL and UNSUPPORTED) Enables support of OpenMP profile mode Enables Vectorization phase