Files
SPEC-CONFIG/SPEC2017/gcc-config-general.cfg

148 lines
4.9 KiB
INI

# match spec result standard
reportable = yes
# skip peak
basepeak = yes
# show live output
teeout = yes
# speedup compilation
makeflags = --jobs=%{nproc}
# compilers
default:
preENV_LD_LIBRARY_PATH = /usr/lib64:/usr/lib:/lib64
SPECLANG = /usr/bin/
%if %{clang} eq "1"
CC = $(SPECLANG)clang -std=c99
CXX = $(SPECLANG)clang++
%else
CC = $(SPECLANG)gcc -std=c99
CXX = $(SPECLANG)g++
%endif
%if %{flang} eq "1"
FC = $(SPECLANG)flang-new
%else
FC = $(SPECLANG)gfortran
%endif
# allow to override compilers
%ifdef %{override-cc}
CC = %{override-cc} -std=c99
%endif
%ifdef %{override-cxx}
CXX = %{override-cxx}
%endif
%ifdef %{override-fc}
FC = %{override-fc}
%endif
# How to say "Show me your version, please"
CC_VERSION_OPTION = -v
CXX_VERSION_OPTION = -v
FC_VERSION_OPTION = -v
# perf: use runcpu --define perf=1 --noreportable to enable
%if %{perf} eq "1"
# override branch-misses counter if necessary
# e.g. on ARMv8 PMUv3, use r22 for branch misses
# e.g. on Apple M1, use rcb for branch misses
%ifndef %{perf-branchmisses}
%define perf-branchmisses branch-misses
%endif
# override branches counter if necessary
# e.g. on Apple M1, use r8d for branches
%ifndef %{perf-branches}
%define perf-branches branches
%endif
default:
command_add_redirect = 1
# bind to core if requested
%ifdef %{bindcore}
monitor_wrapper = mkdir -p $[top]/result/perf.$lognum; echo "$command" > $[top]/result/perf.$lognum/$benchmark.cmd.$iter.\$\$; taskset -c %{bindcore} perf stat -x \\; -e instructions,cycles,%{perf-branches},%{perf-branchmisses},task-clock -o $[top]/result/perf.$lognum/$benchmark.perf.$iter.\$\$ $command
%else
monitor_wrapper = mkdir -p $[top]/result/perf.$lognum; echo "$command" > $[top]/result/perf.$lognum/$benchmark.cmd.$iter.\$\$; perf stat -x \\; -e instructions,cycles,%{perf-branches},%{perf-branchmisses},task-clock -o $[top]/result/perf.$lognum/$benchmark.perf.$iter.\$\$ $command
%endif
%endif
# portability flags
default:
EXTRA_PORTABILITY = -DSPEC_LP64
500.perlbench_r,600.perlbench_s: #lang='C'
%if %{machine} eq "x86_64"
PORTABILITY = -DSPEC_LINUX_X64
%else
PORTABILITY = -DSPEC_LINUX_AARCH64
%endif
521.wrf_r,621.wrf_s: #lang='F,C'
CPORTABILITY = -DSPEC_CASE_FLAG
FPORTABILITY = -fconvert=big-endian
523.xalancbmk_r,623.xalancbmk_s: #lang='CXX'
PORTABILITY = -DSPEC_LINUX
526.blender_r: #lang='CXX,C'
PORTABILITY = -funsigned-char -DSPEC_LINUX
%if %{clang} eq "1"
# from config/Example-aocc-linux-x86.cfg
CXXPORTABILITY = -D__BOOL_DEFINED
%endif
527.cam4_r,627.cam4_s: #lang='F,C'
PORTABILITY = -DSPEC_CASE_FLAG
628.pop2_s: #lang='F,C'
CPORTABILITY = -DSPEC_CASE_FLAG
FPORTABILITY = -fconvert=big-endian
intspeed,fpspeed:
EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP
fpspeed:
#
# 627.cam4 needs a big stack; the preENV will apply it to all
# benchmarks in the set, as required by the rules.
#
preENV_OMP_STACKSIZE = 120M
default=base: # flags for all base
%ifdef %{extralibs}
EXTRA_LIBS = %{extralibs}
%endif
%ifdef %{optflags}
OPTIMIZE = %{optflags}
%else
OPTIMIZE = -O3
%endif
# -std=c++03 required for https://www.spec.org/cpu2017/Docs/benchmarks/510.parest_r.html
CXXOPTIMIZE = -std=c++03
%if %{flang} ne "1"
# -fallow-argument-mismatch required for https://www.spec.org/cpu2017/Docs/benchmarks/521.wrf_r.html
FOPTIMIZE = -fallow-argument-mismatch
%endif
intrate,intspeed=base: # flags for integer base
EXTRA_COPTIMIZE = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only -fgnu89-inline -fcommon
# Notes about the above
# - 500.perlbench_r/600.perlbench_s needs -fno-strict-aliasing, -fno-unsafe-math-optimizations and -fno-finite-math-only
# - 502.gcc_r/602.gcc_s needs -fgnu89-inline or -z muldefs
# - 525.x264_r/625.x264_s needs -fcommon
# - For 'base', all benchmarks in a set must use the same options.
# - Therefore, all base benchmarks get the above. See:
# https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
# https://www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
# https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
# https://www.spec.org/cpu2017/Docs/benchmarks/525.x264_r.html
%if %{clang} eq "1"
# https://github.com/llvm/llvm-project/issues/96859
# 523.xalancbmk_r
EXTRA_CXXOPTIMIZE = -fdelayed-template-parsing
%endif
%if %{gcc15} eq "1"
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116064
# 523.xalamcbmk_r
EXTRA_CXXOPTIMIZE += -Wno-error=template-body
%endif
fprate,fpspeed=base: # flags for fp base
EXTRA_COPTIMIZE = -Wno-error=implicit-int
# Notes about the above
# - 527.cam4_r,627.cam4_s needs -Wno-error=implicit-int