Skip to content

Commit eec9313

Browse files
committed
adds build option to disable vector vms
As the vector implementation is heavy in instantiating templates, this option can be used to reduce compilation times if vector cores are not needed Consuming projects can set the introduced option to OFF
1 parent 3bd855f commit eec9313

1 file changed

Lines changed: 25 additions & 10 deletions

File tree

CMakeLists.txt

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ project(dbt-rise-riscv VERSION 2.1.0 LANGUAGES C CXX)
88

99
option(UPDATE_EXTERNAL_PROJECT "Whether to pull changes in external projects" ON)
1010
option(OPTIMIZE_FOR_NATIVE "Build with -march=native" OFF)
11-
option(NO_GENERIC_CORES "Leave out the genric cores to improve build times" OFF)
11+
option(NO_GENERIC_CORES "Leave out the generic cores to improve build times" OFF)
12+
option(DBT_RISE_RISCV_ENABLE_VECTOR "Build RISC-V vector cores and VMs" ON)
1213
include(GNUInstallDirs)
1314
include(flink)
1415

@@ -80,21 +81,25 @@ if(NOT NO_GENERIC_CORES)
8081
src/iss/arch/rv32i.cpp
8182
src/iss/arch/rv32imac.cpp
8283
src/iss/arch/rv32gc.cpp
83-
src/iss/arch/rv32gcv.cpp
8484
src/iss/arch/rv64i.cpp
8585
src/iss/arch/rv64imac.cpp
8686
src/iss/arch/rv64gc.cpp
87-
src/iss/arch/rv64gcv.cpp
8887
src/vm/interp/vm_rv32i.cpp
8988
src/vm/interp/vm_rv32imac.cpp
9089
src/vm/interp/vm_rv32gc.cpp
91-
src/vm/interp/vm_rv32gcv.cpp
9290
src/vm/interp/vm_rv64i.cpp
9391
src/vm/interp/vm_rv64imac.cpp
9492
src/vm/interp/vm_rv64gc.cpp
9593
src/vm/interp/vm_rv64gc_mp.cpp
96-
src/vm/interp/vm_rv64gcv.cpp
9794
)
95+
if(DBT_RISE_RISCV_ENABLE_VECTOR)
96+
list(APPEND LIB_SOURCES
97+
src/iss/arch/rv32gcv.cpp
98+
src/iss/arch/rv64gcv.cpp
99+
src/vm/interp/vm_rv32gcv.cpp
100+
src/vm/interp/vm_rv64gcv.cpp
101+
)
102+
endif()
98103
endif()
99104
if(TARGET yaml-cpp::yaml-cpp)
100105
list(APPEND LIB_SOURCES
@@ -128,12 +133,16 @@ if(WITH_ASMJIT)
128133
src/vm/asmjit/vm_rv32i.cpp
129134
src/vm/asmjit/vm_rv32imac.cpp
130135
src/vm/asmjit/vm_rv32gc.cpp
131-
src/vm/asmjit/vm_rv32gcv.cpp
132136
src/vm/asmjit/vm_rv64i.cpp
133137
src/vm/asmjit/vm_rv64imac.cpp
134138
src/vm/asmjit/vm_rv64gc.cpp
135-
src/vm/asmjit/vm_rv64gcv.cpp
136139
)
140+
if(DBT_RISE_RISCV_ENABLE_VECTOR)
141+
list(APPEND LIB_SOURCES
142+
src/vm/asmjit/vm_rv32gcv.cpp
143+
src/vm/asmjit/vm_rv64gcv.cpp
144+
)
145+
endif()
137146
endif()
138147
endif()
139148

@@ -283,10 +292,16 @@ if(TARGET scc-sysc)
283292

284293
set(LIB_SOURCES
285294
src/sysc/core_complex.cpp
286-
src/sysc/register_cores.cpp
287-
src/sysc/register_rv32gcv.cpp
288-
src/sysc/register_rv64gcv.cpp
289295
)
296+
if(NOT NO_GENERIC_CORES)
297+
list(APPEND LIB_SOURCES src/sysc/register_cores.cpp)
298+
if(DBT_RISE_RISCV_ENABLE_VECTOR)
299+
list(APPEND LIB_SOURCES
300+
src/sysc/register_rv32gcv.cpp
301+
src/sysc/register_rv64gcv.cpp
302+
)
303+
endif()
304+
endif()
290305

291306
if(IS_DIRECTORY "${PROJECT_SOURCE_DIR}/../dbt-rise-custom")
292307
FILE(GLOB GEN_SC_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../dbt-rise-custom/src/sysc/register_*.cpp)

0 commit comments

Comments
 (0)