# https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
include(../../SpecCPU2017.cmake)
if (NOT TEST_SUITE_SPEC2017_ROOT)
  return ()
endif ()

speccpu2017_benchmark(RATE)

add_definitions(-DSPEC_502 -DIN_GCC -DHAVE_CONFIG_H)
speccpu2017_add_include_dirs(. include spec_qsort)
add_compile_options(-fgnu89-inline -fno-strict-aliasing)

## test ########################################################################

speccpu2017_run_test(
  "${RUN_test_DIR_REL}/t1.c" -O3 -finline-limit=50000 -o t1.opts-O3_-finline-limit_50000.s
  RUN_TYPE test
)

## train #######################################################################

speccpu2017_run_test(
  "${RUN_train_DIR_REL}/200.c" -O3 -finline-limit=50000 -o 200.opts-O3_-finline-limit_50000.s
  RUN_TYPE train
)

speccpu2017_run_test(
  "${RUN_train_DIR_REL}/scilab.c" -O3 -finline-limit=50000 -o scilab.opts-O3_-finline-limit_50000.s
  RUN_TYPE train
)

speccpu2017_run_test(
  "${RUN_train_DIR_REL}/train01.c" -O3 -finline-limit=50000 -o train01.opts-O3_-finline-limit_50000.s
  RUN_TYPE train
)

## ref #########################################################################

speccpu2017_run_test(
  "${RUN_ref_DIR_REL}/gcc-pp.c" -O3 -finline-limit=0 -fif-conversion -fif-conversion2 -o gcc-pp.opts-O3_-finline-limit_0_-fif-conversion_-fif-conversion2.s
  RUN_TYPE ref
  SUITE_TYPE rate
)

speccpu2017_run_test(
  "${RUN_ref_DIR_REL}/gcc-pp.c" -O2 -finline-limit=36000 -fpic -o gcc-pp.opts-O2_-finline-limit_36000_-fpic.s
  RUN_TYPE ref
  SUITE_TYPE rate
)

speccpu2017_run_test(
  "${RUN_ref_DIR_REL}/gcc-smaller.c" -O3 -fipa-pta -o gcc-smaller.opts-O3_-fipa-pta.s
  RUN_TYPE ref
  SUITE_TYPE rate
)

speccpu2017_run_test(
  "${RUN_ref_DIR_REL}/ref32.c" -O5 -o ref32.opts-O5.s
  RUN_TYPE ref
  SUITE_TYPE rate
)

speccpu2017_run_test(
  "${RUN_ref_DIR_REL}/ref32.c" -O3 -fselective-scheduling -fselective-scheduling2 -o ref32.opts-O3_-fselective-scheduling_-fselective-scheduling2.s
  RUN_TYPE ref
  SUITE_TYPE rate
)

################################################################################

speccpu2017_verify_output()
speccpu2017_add_executable(
  main.c
  cc1-checksum.c
  alias.c
  alloca.c
  alloc-pool.c
  argv.c
  attribs.c
  auto-inc-dec.c
  bb-reorder.c
  bid2dpd_dpd2bid.c
  bitmap.c
  bt-load.c
  c-lang.c
  c-errors.c
  c-lex.c
  c-pragma.c
  c-decl.c
  c-typeck.c
  c-convert.c
  c-aux-info.c
  c-common.c
  c-opts.c
  c-format.c
  c-semantics.c
  c-ppoutput.c
  c-objc-common.c
  c-dump.c
  c-parser.c
  c-gimplify.c
  c-pretty-print.c
  c-omp.c
  caller-save.c
  calls.c
  cfg.c
  cfganal.c
  cfgbuild.c
  cfgcleanup.c
  cfgexpand.c
  cfghooks.c
  cfglayout.c
  cfgloop.c
  cfgloopanal.c
  cfgloopmanip.c
  cfgrtl.c
  cgraph.c
  cgraphbuild.c
  cgraphunit.c
  combine.c
  combine-stack-adj.c
  concat.c
  convert.c
  coverage.c
  cp-demangle.c
  cp-demint.c
  cplus-dem.c
  cpp_directives.c
  cpp_lex.c
  cpp_errors.c
  cpp_expr.c
  cpp_charset.c
  cpp_macro.c
  cpp_traditional.c
  cpp_line-map.c
  cpp_symtab.c
  cpp_identifiers.c
  cpp_mkdeps.c
  cpp_pch.c
  cpp_directives-only.c
  crc32.c
  cse.c
  cselib.c
  dbxout.c
  dbgcnt.c
  dce.c
  ddg.c
  debug.c
  decContext.c
  decimal128.c
  decimal32.c
  decimal64.c
  decNumber.c
  df-byte-scan.c
  df-core.c
  df-problems.c
  df-scan.c
  dfp.c
  diagnostic.c
  dojump.c
  dominance.c
  domwalk.c
  double-int.c
  dse.c
  dwarf2asm.c
  dwarf2out.c
  dyn-string.c
  ebitmap.c
  emit-rtl.c
  et-forest.c
  except.c
  explow.c
  expmed.c
  expr.c
  fdmatch.c
  fibheap.c
  filename_cmp.c
  final.c
  fixed-value.c
  floatformat.c
  fold-const.c
  fopen_unlocked.c
  function.c
  fwprop.c
  gcse.c
  genrtl.c
  getopt1.c
  getopt.c
  getpwd.c
  getruntime.c
  ggc-common.c
  ggc-page.c
  gimple.c
  gimple-iterator.c
  gimple-low.c
  gimple-pretty-print.c
  gimplify.c
  graph.c
  graphds.c
  graphite.c
  graphite-blocking.c
  graphite-clast-to-gimple.c
  graphite-dependences.c
  graphite-interchange.c
  graphite-poly.c
  graphite-ppl.c
  graphite-scop-detection.c
  graphite-sese-to-poly.c
  gtype-desc.c
  haifa-sched.c
  hashtab.c
  hex.c
  hooks.c
  host-ieee128.c
  host-ieee32.c
  host-ieee64.c
  host-linux.c
  i386.c
  i386-c.c
  ifcvt.c
  incpath.c
  init-regs.c
  insn-attrtab.c
  insn-automata.c
  insn-emit.c
  insn-extract.c
  insn-modes.c
  insn-opinit.c
  insn-output.c
  insn-peep.c
  insn-preds.c
  insn-recog.c
  integrate.c
  ipa-cp.c
  ipa-inline.c
  ipa-prop.c
  ipa-pure-const.c
  ipa-reference.c
  ipa-struct-reorg.c
  ipa-type-escape.c
  ipa-utils.c
  ipa.c
  ira.c
  ira-build.c
  ira-costs.c
  ira-conflicts.c
  ira-color.c
  ira-emit.c
  ira-lives.c
  jump.c
  lambda-code.c
  lambda-mat.c
  lambda-trans.c
  langhooks.c
  lbasename.c
  lcm.c
  lists.c
  loop-doloop.c
  loop-init.c
  loop-invariant.c
  loop-iv.c
  loop-unroll.c
  loop-unswitch.c
  lower-subreg.c
  lrealpath.c
  lto-cgraph.c
  lto-streamer-in.c
  lto-streamer-out.c
  lto-section-in.c
  lto-section-out.c
  lto-symtab.c
  lto-opts.c
  lto-streamer.c
  lto-wpa-fixup.c
  make-relative-prefix.c
  make-temp-file.c
  partition.c
  matrix-reorg.c
  mcf.c
  md5.c
  mkstemps.c
  mode-switching.c
  modulo-sched.c
  objalloc.c
  obstack.c
  omega.c
  omp-low.c
  optabs.c
  options.c
  opts-common.c
  opts.c
  params.c
  passes.c
  physmem.c
  plugin.c
  pointer-set.c
  postreload-gcse.c
  postreload.c
  predict.c
  pretty-print.c
  print-rtl.c
  print-tree.c
  profile.c
  recog.c
  reg-stack.c
  regcprop.c
  regex.c
  reginfo.c
  regmove.c
  regrename.c
  regstat.c
  reload.c
  reload1.c
  reorg.c
  resource.c
  rtl-error.c
  rtl.c
  rtlanal.c
  rtlhooks.c
  safe-ctype.c
  sbitmap.c
  sched-deps.c
  sched-ebb.c
  sched-rgn.c
  sched-vis.c
  sdbout.c
  sel-sched-ir.c
  sel-sched-dump.c
  sel-sched.c
  sese.c
  sha1.c
  simplify-rtx.c
  sort.c
  spaces.c
  sparseset.c
  splay-tree.c
  sreal.c
  stack-ptr-mod.c
  statistics.c
  stmt.c
  stor-layout.c
  store-motion.c
  stringpool.c
  strsignal.c
  stub-objc.c
  targhooks.c
  timevar.c
  tracer.c
  tree-affine.c
  tree-call-cdce.c
  tree-cfg.c
  tree-cfgcleanup.c
  tree-chrec.c
  tree-complex.c
  tree-data-ref.c
  tree-dfa.c
  tree-dump.c
  tree-eh.c
  tree-if-conv.c
  tree-inline.c
  tree-into-ssa.c
  tree-iterator.c
  tree-loop-distribution.c
  tree-loop-linear.c
  tree-mudflap.c
  tree-nested.c
  tree-nrv.c
  tree-object-size.c
  tree-optimize.c
  tree-outof-ssa.c
  tree-parloops.c
  tree-phinodes.c
  tree-predcom.c
  tree-pretty-print.c
  tree-profile.c
  tree-scalar-evolution.c
  tree-sra.c
  tree-switch-conversion.c
  tree-ssa-address.c
  tree-ssa-alias.c
  tree-ssa-ccp.c
  tree-ssa-coalesce.c
  tree-ssa-copy.c
  tree-ssa-copyrename.c
  tree-ssa-dce.c
  tree-ssa-dom.c
  tree-ssa-dse.c
  tree-ssa-forwprop.c
  tree-ssa-ifcombine.c
  tree-ssa-live.c
  tree-ssa-loop-ch.c
  tree-ssa-loop-im.c
  tree-ssa-loop-ivcanon.c
  tree-ssa-loop-ivopts.c
  tree-ssa-loop-manip.c
  tree-ssa-loop-niter.c
  tree-ssa-loop-prefetch.c
  tree-ssa-loop-unswitch.c
  tree-ssa-loop.c
  tree-ssa-math-opts.c
  tree-ssa-operands.c
  tree-ssa-phiopt.c
  tree-ssa-phiprop.c
  tree-ssa-pre.c
  tree-ssa-propagate.c
  tree-ssa-reassoc.c
  tree-ssa-sccvn.c
  tree-ssa-sink.c
  tree-ssa-structalias.c
  tree-ssa-ter.c
  tree-ssa-threadedge.c
  tree-ssa-threadupdate.c
  tree-ssa-uncprop.c
  tree-ssa.c
  tree-ssanames.c
  tree-stdarg.c
  tree-tailcall.c
  tree-vect-generic.c
  tree-vect-patterns.c
  tree-vect-data-refs.c
  tree-vect-stmts.c
  tree-vect-loop.c
  tree-vect-loop-manip.c
  tree-vect-slp.c
  tree-vectorizer.c
  tree-vrp.c
  tree.c
  unlink-if-ordinary.c
  value-prof.c
  var-tracking.c
  varpool.c
  varasm.c
  varray.c
  vec.c
  vmsdbgout.c
  web.c
  xatexit.c
  xcoffout.c
  xexit.c
  xmalloc.c
  xmemdup.c
  xstrdup.c
  xstrerror.c
  xstrndup.c
  c-cppbuiltin.c
  c-pch.c
  cpp_files.c
  cpp_init.c
  cppdefault.c
  intl.c
  prefix.c
  strerror.c
  toplev.c
  vasprintf.c
  version.c
  builtins.c
  real.c
  mini-gmp.c
  spec_qsort/spec_qsort.c
)

speccpu2017_prepare_rundir()
