# 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