Skip to content

Commit 62c2890

Browse files
authored
0.9.4 Release (#256)
Release 0.9.4 contains a variety of new features including: * A new Branch Predictor * Draft of an Apple M1 Firestorm core model * Update targetted AArch64 support to Armv9.2 * New creation process for modelled core * SimEng output prefixes
1 parent 1401c0c commit 62c2890

120 files changed

Lines changed: 7604 additions & 18119 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@ source .jenkins/build_test_run.sh
66
checkout
77

88
## Setup environment
9-
module load cdt/20.03
109
export CMAKE_C_COMPILER=cc
1110
export CMAKE_CXX_COMPILER=CC
1211

1312
## Load compilers/libraries
14-
echo "Compiler Armclang 20.0"
15-
module swap PrgEnv-cray PrgEnv-allinea
16-
module swap Generic-AArch64/SUSE/12/arm-linux-compiler/20.0 ThunderX2CN99/SUSE/12/arm-linux-compiler-20.0/armpl/20.0.0
13+
echo "Compiler Armclang 22.0.2"
14+
module use /software/arm64/modulefiles
15+
module load tools/arm-compiler-sles
1716
module load tools/cmake
1817

1918
## Build, test, and run SimEng

.jenkins/build_test_run.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,16 @@ run () {
5151
echo "Simulation without configuration file argument:"
5252
cat run
5353
echo ""
54-
compare_outputs "$(tail -n 3 run | head -n 1)" "retired: 3145731" "retired instructions"
55-
compare_outputs "$(tail -n 1 run | cut -c10-16)" "3145738" "simulated ticks"
54+
compare_outputs "$(grep "retired:" run | rev | cut -d ' ' -f1 | rev)" "3145731" "retired instructions"
55+
compare_outputs "$(grep "cycles:" run | rev | cut -d ' ' -f1 | rev)" "3145736" "simulated cycles"
5656
echo ""
5757

5858
./bin/simeng "$SIMENG_TOP"/configs/tx2.yaml > run
5959
echo "Simulation with configuration file argument:"
6060
cat run
6161
echo ""
62-
compare_outputs "$(tail -n 3 run | head -n 1)" "retired: 3145732" "retired instructions"
63-
compare_outputs "$(tail -n 1 run | cut -c10-16)" "1048593" "simulated ticks"
62+
compare_outputs "$(grep "retired:" run | rev | cut -d ' ' -f1 | rev)" "3145732" "retired instructions"
63+
compare_outputs "$(grep "cycles:" run | rev | cut -d ' ' -f1 | rev)" "1048588" "simulated cycles"
6464
echo ""
6565
}
6666

CMakeLists.txt

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,17 @@ FetchContent_Declare(
4444
)
4545

4646
FetchContent_Declare(
47-
capstone
47+
capstone-lib
4848
GIT_REPOSITORY https://github.com/UoB-HPC/capstone.git
49-
GIT_TAG e7be7d99e718ef9741026b80fc6f5e100fdf4f94 # trunk
49+
GIT_TAG Armv9.2-update
50+
GIT_PROGRESS TRUE
51+
52+
# Old Git tag pre-Armv9.2
53+
# GIT_TAG e7be7d99e718ef9741026b80fc6f5e100fdf4f94 # trunk
5054
)
5155

5256
cmake_policy(SET CMP0048 NEW)
53-
project(SimEng VERSION 0.9.3 LANGUAGES C CXX)
57+
project(SimEng VERSION 0.9.4 LANGUAGES C CXX)
5458

5559
# If no build type was defined, default to Release
5660
if(NOT CMAKE_BUILD_TYPE)
@@ -87,6 +91,7 @@ install(DIRECTORY src/include/simeng
8791
set(CAPSTONE_BUILD_TESTS OFF CACHE BOOL "Disable Capstone tests")
8892
set(CAPSTONE_BUILD_SHARED OFF CACHE BOOL "Disable Capstone shared library")
8993
set(CAPSTONE_BUILD_CSTOOL OFF CACHE BOOL "Disable cstool build")
94+
set(CAPSTONE_INSTALL OFF CACHE BOOL "Disable install of capstone")
9095

9196
set(CAPSTONE_ARM_SUPPORT OFF CACHE BOOL "Disable A32 support")
9297
set(CAPSTONE_MIPS_SUPPORT OFF CACHE BOOL "Disable MIPS support")
@@ -104,7 +109,7 @@ set(CAPSTONE_WASM_SUPPORT OFF CACHE BOOL "Disable WASM support")
104109
set(CAPSTONE_BPF_SUPPORT OFF CACHE BOOL "Disable BPF support")
105110
set(CAPSTONE_RISCV_SUPPORT OFF CACHE BOOL "Disable RISCV support")
106111

107-
FetchContent_MakeAvailable_Args(capstone EXCLUDE_FROM_ALL)
112+
FetchContent_MakeAvailable_Args(capstone-lib EXCLUDE_FROM_ALL)
108113
include_directories("${capstone_BINARY_DIR}/include" "${capstone_SOURCE_DIR}/include")
109114

110115
## Setup yaml-cpp ##
@@ -118,7 +123,7 @@ option(SIMENG_USE_EXTERNAL_LLVM "Use an external LLVM rather than building it as
118123
option(SIMENG_SANITIZE "Enable compiler sanitizers" OFF)
119124
option(SIMENG_OPTIMIZE "Enable Extra Compiler Optimizatoins" OFF)
120125

121-
if(SIMENG_OPTIMIZE)
126+
if (SIMENG_OPTIMIZE)
122127
# Turn on link time optimization for all targets.
123128
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
124129

@@ -177,12 +182,17 @@ if(SIMENG_ENABLE_TESTS)
177182
# make sure we get the headers too
178183
include_directories("${llvm_BINARY_DIR}/include" "${llvm_SOURCE_DIR}/include")
179184

180-
find_package(LLVM REQUIRED CONFIG NO_DEFAULT_PATH
185+
find_package(LLVM REQUIRED CONFIG NO_DEFAULT_PATH
181186
PATHS "${llvm_BINARY_DIR}/lib/cmake/llvm")
182-
187+
183188
# NOTE: we don't do the usual version checks here because it needs vars exported in find_LLVM
184189
# we just assume it's good beacuse it must be whitelisted in FetchContent_Declare
185-
190+
191+
endif()
192+
193+
# Check LLVM version
194+
if ((${LLVM_PACKAGE_VERSION} VERSION_LESS "9.0") OR (${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL "13.0"))
195+
message(FATAL_ERROR "LLVM version must be >= 9.0 and < 13.0")
186196
endif()
187197

188198
set(SIMENG_LLVM_VERSION ${LLVM_VERSION_MAJOR} CACHE INTERNAL "LLVM major version number used.")

CONTRIBUTORS.txt

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
Major contributors to SimEng to date include:
22

3-
Project leader
4-
Simon McIntosh-Smith
5-
3+
Project leader:
4+
Simon McIntosh-Smith
5+
66
Original SimEng design and implementation:
7-
Hal Jones
8-
James Price
7+
Hal Jones
8+
James Price
99

1010
Current development team:
11-
Jack Jones (lead developer)
12-
Finn Wilkinson
13-
14-
Prior development members:
15-
Harry Waugh
16-
17-
Code reviewers:
18-
Andrei Poenaru
19-
20-
Build structure design:
21-
Tom Lin
11+
Jack Jones (Lead Developer)
12+
Finn Wilkinson
13+
Rahat Muneeb
14+
Daniel Weaver
2215

23-
Internship contributions:
24-
Daniel Weaver
25-
Mutalib Mohammed
26-
Seunghun Lee
16+
Additional Contributors:
17+
Ainsley Rutterford
18+
Andrei Poenaru
19+
Harry Waugh
20+
Mutalib Mohammed
21+
Seunghun Lee
22+
Tom Hepworth
23+
Tom Lin
24+
Will Robinson
2725

2826
SimEng's development has been funded by the UKRI/EPSRC ASiMoV project, EP/S005072/1.

LICENSE_CAPSTONE.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
This is the software license for Capstone disassembly framework.
2+
Capstone has been designed & implemented by Nguyen Anh Quynh <aquynh@gmail.com>
3+
4+
See http://www.capstone-engine.org for further information.
5+
6+
Copyright (c) 2013, COSEINC.
7+
All rights reserved.
8+
9+
Redistribution and use in source and binary forms, with or without
10+
modification, are permitted provided that the following conditions are met:
11+
12+
* Redistributions of source code must retain the above copyright notice,
13+
this list of conditions and the following disclaimer.
14+
* Redistributions in binary form must reproduce the above copyright notice,
15+
this list of conditions and the following disclaimer in the documentation
16+
and/or other materials provided with the distribution.
17+
* Neither the name of the developer(s) nor the names of its
18+
contributors may be used to endorse or promote products derived from this
19+
software without specific prior written permission.
20+
21+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31+
POSSIBILITY OF SUCH DAMAGE.

LICENSE_GTEST.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Copyright 2008, Google Inc.
2+
All rights reserved.
3+
4+
Redistribution and use in source and binary forms, with or without
5+
modification, are permitted provided that the following conditions are
6+
met:
7+
8+
* Redistributions of source code must retain the above copyright
9+
notice, this list of conditions and the following disclaimer.
10+
* Redistributions in binary form must reproduce the above
11+
copyright notice, this list of conditions and the following disclaimer
12+
in the documentation and/or other materials provided with the
13+
distribution.
14+
* Neither the name of Google Inc. nor the names of its
15+
contributors may be used to endorse or promote products derived from
16+
this software without specific prior written permission.
17+
18+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

0 commit comments

Comments
 (0)