Browse Source

build: LLVM: Add Flang compiler support and enable OpenMP for Clang

Signed-off-by: Paul Osmialowski <pawel.osmialowski@arm.com>
tags/v0.2.20^2
Paul Osmialowski 8 years ago
parent
commit
42bbe74791
4 changed files with 54 additions and 3 deletions
  1. +17
    -1
      Makefile.system
  2. +15
    -0
      cmake/fc.cmake
  3. +4
    -0
      common_arm64.h
  4. +18
    -2
      f_check

+ 17
- 1
Makefile.system View File

@@ -414,7 +414,6 @@ CCOMMON_OPT += -fopenmp
endif

ifeq ($(C_COMPILER), CLANG)
$(error OpenBLAS: Clang didn't support OpenMP yet.)
CCOMMON_OPT += -fopenmp
endif

@@ -584,6 +583,23 @@ endif
# Fortran Compiler dependent settings
#

ifeq ($(F_COMPILER), FLANG)
CCOMMON_OPT += -DF_INTERFACE_FLANG
ifdef BINARY64
ifdef INTERFACE64
ifneq ($(INTERFACE64), 0)
FCOMMON_OPT += -i8
endif
endif
FCOMMON_OPT += -Wall
else
FCOMMON_OPT += -Wall
endif
ifeq ($(USE_OPENMP), 1)
FCOMMON_OPT += -fopenmp
endif
endif

ifeq ($(F_COMPILER), G77)
CCOMMON_OPT += -DF_INTERFACE_G77
FCOMMON_OPT += -Wall


+ 15
- 0
cmake/fc.cmake View File

@@ -3,6 +3,21 @@
## Description: Ported from portion of OpenBLAS/Makefile.system
## Sets Fortran related variables.

if (${F_COMPILER} STREQUAL "FLANG")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FLANG")
if (BINARY64)
if (INTERFACE64)
set(FCOMMON_OPT "${FCOMMON_OPT} -i8")
endif ()
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
else ()
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
endif ()
if (USE_OPENMP)
set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
endif ()
endif ()

if (${F_COMPILER} STREQUAL "G77")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G77")
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")


+ 4
- 0
common_arm64.h View File

@@ -39,7 +39,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#define INLINE inline

#ifdef F_INTERFACE_FLANG
#define RETURN_BY_STACK
#else
#define RETURN_BY_COMPLEX
#endif

#ifndef ASSEMBLER



+ 18
- 2
f_check View File

@@ -33,6 +33,7 @@ if ($compiler eq "") {
"ppuf77", "ppuf95", "ppuf90", "ppuxlf",
"pathf90", "pathf95",
"pgf95", "pgf90", "pgf77",
"flang",
"ifort");

OUTER:
@@ -78,8 +79,13 @@ if ($compiler eq "") {
$vendor = GFORTRAN;
$openmp = "-fopenmp";
} else {
$vendor = G77;
$openmp = "";
if ($compiler =~ /flang/) {
$vendor = FLANG;
$openmp = "-fopenmp";
} else {
$vendor = G77;
$openmp = "";
}
}

}
@@ -197,6 +203,12 @@ if ($compiler eq "") {
$openmp = "-mp";
}

if ($compiler =~ /flang/) {
$vendor = FLANG;
$bu = "_";
$openmp = "-fopenmp";
}

if ($vendor eq "") {
$nofortran = 1;
$compiler = "gfortran";
@@ -331,6 +343,10 @@ if ($vendor eq "INTEL"){
$linker_a .= "-lgfortran"
}

if ($vendor eq "FLANG"){
$linker_a .= "-lflang"
}

open(MAKEFILE, ">> $makefile") || die "Can't append $makefile";
open(CONFFILE, ">> $config" ) || die "Can't append $config";



Loading…
Cancel
Save