Skip to content

Commit 341318d

Browse files
authored
add amdflang to supported compilers (#1196)
2 parents 4a97217 + b61379f commit 341318d

File tree

1 file changed

+40
-7
lines changed

1 file changed

+40
-7
lines changed

src/fpm_compiler.F90

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
! PGI pgfortran pgcc -module -I -mp X
1212
! NVIDIA nvfortran nvc -module -I -mp X
1313
! LLVM flang flang clang -module-dir -I -fopenmp X
14+
! AMD flang amdflang amdclang -module-dir -I -fopenmp X
1415
! LFortran lfortran --- -J -I --openmp X
1516
! Lahey/Futjitsu lfc ? -M -I -openmp ?
1617
! NAG nagfor ? -mdir -I -openmp x
@@ -73,6 +74,7 @@ module fpm_compiler
7374
id_nag, &
7475
id_flang_classic, &
7576
id_flang, &
77+
id_amdflang, &
7678
id_f18, &
7779
id_ibmxl, &
7880
id_cray, &
@@ -302,7 +304,7 @@ function get_default_flags(self, release) result(flags)
302304
! Append position-independent code (PIC) flag, that is necessary
303305
! building shared libraries
304306
select case (self%id)
305-
case (id_gcc, id_f95, id_caf, id_flang_classic, id_f18, id_lfortran, &
307+
case (id_gcc, id_f95, id_caf, id_flang_classic, id_amdflang, id_f18, id_lfortran, &
306308
id_intel_classic_nix, id_intel_classic_mac, id_intel_llvm_nix, &
307309
id_intel_llvm_unknown, id_pgi, id_nvhpc, id_nag, id_cray, id_ibmxl)
308310
pic_flag = " -fPIC"
@@ -421,6 +423,11 @@ subroutine get_release_compile_flags(id, flags)
421423
flag_lfortran_opt
422424

423425
case(id_flang)
426+
flags = &
427+
flag_flang_opt//&
428+
429+
flag_flang_pic
430+
case(id_amdflang)
424431
flags = &
425432
flag_flang_opt//&
426433
flag_flang_pic
@@ -526,6 +533,11 @@ subroutine get_debug_compile_flags(id, flags)
526533
flag_flang_debug//&
527534
flag_flang_pic
528535

536+
case(id_amdflang)
537+
flags = &
538+
flag_flang_debug//&
539+
flag_flang_pic
540+
529541
end select
530542
end subroutine get_debug_compile_flags
531543

@@ -538,7 +550,7 @@ pure subroutine set_cpp_preprocessor_flags(id, flags)
538550
select case(id)
539551
case default
540552
flag_cpp_preprocessor = ""
541-
case(id_caf, id_gcc, id_f95, id_nvhpc, id_flang)
553+
case(id_caf, id_gcc, id_f95, id_nvhpc, id_flang, id_amdflang)
542554
flag_cpp_preprocessor = "-cpp"
543555
case(id_intel_classic_windows, id_intel_llvm_windows)
544556
flag_cpp_preprocessor = "/fpp"
@@ -633,7 +645,7 @@ function get_include_flag(self, path) result(flags)
633645
flags = "-I "//path
634646

635647
case(id_caf, id_gcc, id_f95, id_cray, id_nvhpc, id_pgi, &
636-
& id_flang_classic, id_flang, id_f18, &
648+
& id_flang_classic, id_flang, id_amdflang, id_f18, &
637649
& id_intel_classic_nix, id_intel_classic_mac, &
638650
& id_intel_llvm_nix, id_lahey, id_nag, id_ibmxl, &
639651
& id_lfortran)
@@ -660,7 +672,7 @@ function get_module_flag(self, path) result(flags)
660672
case(id_nvhpc, id_pgi, id_flang_classic)
661673
flags = "-module "//path
662674

663-
case(id_flang, id_f18)
675+
case(id_flang, id_f18, id_amdflang)
664676
flags = "-module-dir "//path
665677

666678
case(id_intel_classic_nix, id_intel_classic_mac, &
@@ -691,7 +703,7 @@ function get_shared_flag(self) result(shared_flag)
691703
select case (self%id)
692704
case default
693705
shared_flag = "-shared"
694-
case (id_gcc, id_f95, id_flang, id_flang_classic, id_lfortran)
706+
case (id_gcc, id_f95, id_flang, id_amdflang, id_flang_classic, id_lfortran)
695707
shared_flag = "-shared"
696708
case (id_intel_classic_nix, id_intel_llvm_nix, id_pgi, id_nvhpc)
697709
shared_flag = "-shared"
@@ -729,6 +741,9 @@ function get_feature_flag(self, feature) result(flags)
729741
case(id_flang)
730742
flags = flag_flang_no_implicit_typing
731743

744+
case(id_amdflang)
745+
flags = flag_flang_no_implicit_typing
746+
732747
end select
733748

734749
case("implicit-typing")
@@ -780,6 +795,9 @@ function get_feature_flag(self, feature) result(flags)
780795
case(id_flang)
781796
flags = flag_flang_free_form
782797

798+
case(id_amdflang)
799+
flags = flag_flang_free_form
800+
783801
end select
784802

785803
case("fixed-form")
@@ -809,6 +827,9 @@ function get_feature_flag(self, feature) result(flags)
809827
case(id_flang)
810828
flags = flag_flang_fixed_form
811829

830+
case(id_amdflang)
831+
flags = flag_flang_fixed_form
832+
812833
end select
813834

814835
case("default-form")
@@ -878,7 +899,7 @@ subroutine get_default_c_compiler(f_compiler, c_compiler)
878899
case(id_intel_llvm_nix,id_intel_llvm_windows)
879900
c_compiler = 'icx'
880901

881-
case(id_flang_classic, id_flang, id_f18)
902+
case(id_flang_classic, id_flang, id_f18 )
882903
c_compiler='clang'
883904

884905
case(id_ibmxl)
@@ -890,6 +911,9 @@ subroutine get_default_c_compiler(f_compiler, c_compiler)
890911
case(id_gcc)
891912
c_compiler = 'gcc'
892913

914+
case(id_amdflang)
915+
c_compiler = 'amdclang'
916+
893917
case default
894918
! Fall-back to using Fortran compiler
895919
c_compiler = f_compiler
@@ -916,6 +940,9 @@ subroutine get_default_cxx_compiler(f_compiler, cxx_compiler)
916940
case(id_flang_classic, id_flang, id_f18)
917941
cxx_compiler='clang++'
918942

943+
case(id_amdflang)
944+
cxx_compiler='amdclang++'
945+
919946
case(id_ibmxl)
920947
cxx_compiler='xlc++'
921948

@@ -1077,6 +1104,11 @@ function match_compiler_type(compiler) result(id)
10771104
return
10781105
end if
10791106

1107+
if (check_compiler(compiler, "amdflang")) then
1108+
id = id_amdflang
1109+
return
1110+
end if
1111+
10801112
if (check_compiler(compiler, "f18")) then
10811113
id = id_f18
10821114
return
@@ -1127,7 +1159,7 @@ pure elemental subroutine validate_compiler_name(compiler_name, is_valid)
11271159

11281160
select case (lname)
11291161
case("gfortran", "ifort", "ifx", "pgfortran", &
1130-
"nvfortran", "flang", "caf", &
1162+
"nvfortran", "flang", "amdflang", "caf", &
11311163
"f95", "lfortran", "lfc", "nagfor",&
11321164
"crayftn", "xlf90", "ftn95", "all")
11331165
is_valid = .true.
@@ -1863,6 +1895,7 @@ pure function compiler_id_name(id) result(name)
18631895
case(id_nag); name = "nagfor"
18641896
case(id_flang_classic); name = "flang-classic"
18651897
case(id_flang); name = "flang"
1898+
case(id_amdflang); name = "amdflang"
18661899
case(id_f18); name = "f18"
18671900
case(id_ibmxl); name = "xlf90"
18681901
case(id_cray); name = "crayftn"

0 commit comments

Comments
 (0)