From aa651c7f8321bf96fc88f9a17285225000a753ec Mon Sep 17 00:00:00 2001 From: Matthias Jung Date: Wed, 1 Mar 2017 18:39:56 +0100 Subject: ext: Include SystemC 2.3.1 into gem5 In the past it happened several times that some changes in gem5 broke the SystemC coupling. Recently Accelera has changed the licence for SystemC from their own licence to Apache2.0, which is compatible with gem5. However, SystemC usually relies on the Boost library, but I was able to exchange the boost calls by c++11 alternatives. The recent SystemC version is placed into /ext and is integrated into gem5's build system. The goal is to integrate some SystemC tests for the CI in some following patches. Change-Id: I4b66ec806b5e3cffc1d7c85d3735ff4fa5b31fd0 Reviewed-on: https://gem5-review.googlesource.com/2240 Reviewed-by: Andreas Sandberg Maintainer: Andreas Sandberg --- ext/systemc/src/sysc/qt/time/README.time | 17 ++++++++++ ext/systemc/src/sysc/qt/time/assim | 42 +++++++++++++++++++++++ ext/systemc/src/sysc/qt/time/cswap | 37 ++++++++++++++++++++ ext/systemc/src/sysc/qt/time/go | 43 +++++++++++++++++++++++ ext/systemc/src/sysc/qt/time/init | 42 +++++++++++++++++++++++ ext/systemc/src/sysc/qt/time/prim | 41 ++++++++++++++++++++++ ext/systemc/src/sysc/qt/time/raw | 58 ++++++++++++++++++++++++++++++++ 7 files changed, 280 insertions(+) create mode 100644 ext/systemc/src/sysc/qt/time/README.time create mode 100755 ext/systemc/src/sysc/qt/time/assim create mode 100755 ext/systemc/src/sysc/qt/time/cswap create mode 100755 ext/systemc/src/sysc/qt/time/go create mode 100755 ext/systemc/src/sysc/qt/time/init create mode 100755 ext/systemc/src/sysc/qt/time/prim create mode 100755 ext/systemc/src/sysc/qt/time/raw (limited to 'ext/systemc/src/sysc/qt/time') diff --git a/ext/systemc/src/sysc/qt/time/README.time b/ext/systemc/src/sysc/qt/time/README.time new file mode 100644 index 000000000..4bb190e18 --- /dev/null +++ b/ext/systemc/src/sysc/qt/time/README.time @@ -0,0 +1,17 @@ +The program `raw', when run in `..' runs the program `run' produced +from `meas.c'. It produces a raw output file (see `../tmp/*.raw'). +`raw' will die with an error if run in the current directory. Note +that some versions of `time' produce output in an unexpected format; +edit them by hand. + +`prim', `init', `cswap' and `go' produce formatted table entries used +in the documentation (in `../doc'). For example, from `..', + + foreach i (tmp/*.raw) + time/prim $i + end + +See notes in the QuickThreads document about the applicability of +these microbenchmark measurements -- in general, you can expect all +QuickThreads operations to be a bit slower when used in a real +application. diff --git a/ext/systemc/src/sysc/qt/time/assim b/ext/systemc/src/sysc/qt/time/assim new file mode 100755 index 000000000..6c4c52183 --- /dev/null +++ b/ext/systemc/src/sysc/qt/time/assim @@ -0,0 +1,42 @@ +#! /bin/awk -f + +BEGIN { + nmach = 0; + + init_test = "1"; + abort_test = "6"; + blocki_test = "7"; + block_test = "8"; +} + +{ + mach = $1 + test = $2 + iter = $3 + time = $6 + $8 + + if (machi[mach] == 0) { + machn[nmach] = mach; + machi[mach] = 1; + ++nmach; + } + + us_per_op = time / iter * 1000000 + times[mach "_" test] = us_per_op; +} + + +END { + for (i=0; i