Skip to content

Commit 680e714

Browse files
committed
treewide: Update toolchain flags for minimal, auto-generated toolchain
1 parent 78283ed commit 680e714

5 files changed

Lines changed: 33 additions & 26 deletions

File tree

iis-setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export SN_VCS_SEPP=vcs-2024.09
1212
export SN_VERILATOR_SEPP=$SN_OSEDA
1313
export SN_QUESTA_SEPP=questa-2023.4
1414
export SN_YOSYS="$SN_OSEDA yosys"
15-
export SN_LLVM_BINROOT=/usr/scratch2/vulcano/colluca/tools/riscv32-snitch-llvm-almalinux8-15.0.0-snitch-0.5.0/bin
15+
export SN_LLVM_BINROOT=/scratch2/colluca/workspace/REPOS/LLVM_PROJECT/install/bin/
1616

1717
# We need Make >4.3 for grouped targets
1818
export PATH=$PWD/util/bin:$PATH

make/common.mk

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ SN_BENDER ?= bender
2424
SN_PEAKRDL ?= peakrdl
2525
SN_VERIBLE_FMT ?= verible-verilog-format
2626
SN_CLANG_FORMAT ?= $(SN_LLVM_BINROOT)/clang-format
27-
SN_RISCV_MC ?= $(SN_LLVM_BINROOT)/llvm-mc
28-
SN_ADDR2LINE ?= $(SN_LLVM_BINROOT)/llvm-addr2line
2927
# tail is required for nonsense oseda output
3028
SN_VERILATOR_SEPP ?=
3129
SN_VLT_BIN = $(shell $(SN_VERILATOR_SEPP) which verilator_bin | tail -n1 | $(SN_VERILATOR_SEPP) xargs realpath | tail -n1)
@@ -57,10 +55,6 @@ SN_BENDER_YML = $(SN_ROOT)/Bender.yml
5755
# Flags
5856
SN_COMMON_BENDER_FLAGS += -t rtl -t snitch_cluster
5957
SN_COMMON_BENDER_SIM_FLAGS += -t simulation -t test
60-
SN_MCPU ?= snitch
61-
SN_RISCV_MC_FLAGS ?= -disassemble
62-
SN_RISCV_MC_FLAGS += -mcpu=$(SN_MCPU)
63-
SN_ANNOTATE_FLAGS ?= -q --keep-time --addr2line=$(SN_ADDR2LINE)
6458
SN_LAYOUT_EVENTS_FLAGS ?= --cfg=$(SN_CFG)
6559

6660
# Internal state

make/traces.mk

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
#
55
# Luca Colagrande <colluca@iis.ee.ethz.ch>
66

7-
##########
8-
# Traces #
9-
##########
10-
117
# Reads the binary from the logs/.rtlbinary file that is written at start
128
# of simulation in the vsim script
139
SN_BINARY ?= $(shell cat $(SN_SIM_DIR)/.rtlbinary)
@@ -22,7 +18,9 @@ SN_JOINT_PERF_DUMP = $(SN_LOGS_DIR)/perf.json
2218
SN_ROI_DUMP = $(SN_LOGS_DIR)/roi.json
2319
SN_VISUAL_TRACE = $(SN_LOGS_DIR)/trace.json
2420

25-
SN_VISUALIZE_PY_FLAGS += --tracevis "$(SN_BINARY) $(SN_TXT_TRACES) --addr2line $(SN_ADDR2LINE) -f snitch"
21+
SN_RISCV_MC_FLAGS ?= -disassemble $(SN_RISCV_MATTR_FLAG)
22+
SN_ANNOTATE_FLAGS ?= -q --keep-time --addr2line=$(SN_RISCV_ADDR2LINE)
23+
SN_VISUALIZE_PY_FLAGS += --tracevis "$(SN_BINARY) $(SN_TXT_TRACES) --addr2line $(SN_RISCV_ADDR2LINE) -f snitch"
2624
SN_GENTRACE_PY_FLAGS += --mc-exec $(SN_RISCV_MC) --mc-flags "$(SN_RISCV_MC_FLAGS)"
2725

2826
# Do not suspend trace generation upon gentrace errors when debugging

sw/toolchain.mk

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,39 @@
55
# Luca Colagrande <colluca@iis.ee.ethz.ch>
66
# Viviane Potocnik <vivianep@iis.ee.ethz.ch>
77

8+
########
9+
# Util #
10+
########
11+
12+
empty :=
13+
space := $(empty) $(empty)
14+
comma := ,
15+
16+
comma-join = $(subst $(space),$(comma),$(strip $(1)))
17+
818
###################
919
# Build variables #
1020
###################
1121

1222
# Compiler toolchain
13-
SN_LLVM_BINROOT ?= $(dir $(shell which riscv32-unknown-elf-clang))
14-
SN_RISCV_CC ?= $(SN_LLVM_BINROOT)/clang
15-
SN_RISCV_CXX ?= $(SN_LLVM_BINROOT)/clang++
16-
SN_RISCV_LD ?= $(SN_LLVM_BINROOT)/ld.lld
17-
SN_RISCV_AR ?= $(SN_LLVM_BINROOT)/llvm-ar
18-
SN_RISCV_OBJCOPY ?= $(SN_LLVM_BINROOT)/llvm-objcopy
19-
SN_RISCV_OBJDUMP ?= $(SN_LLVM_BINROOT)/llvm-objdump
23+
SN_LLVM_BINROOT ?= $(dir $(shell which riscv32-unknown-elf-clang))
24+
SN_RISCV_CC ?= $(SN_LLVM_BINROOT)/clang
25+
SN_RISCV_CXX ?= $(SN_LLVM_BINROOT)/clang++
26+
SN_RISCV_LD ?= $(SN_LLVM_BINROOT)/ld.lld
27+
SN_RISCV_AR ?= $(SN_LLVM_BINROOT)/llvm-ar
28+
SN_RISCV_OBJCOPY ?= $(SN_LLVM_BINROOT)/llvm-objcopy
29+
SN_RISCV_OBJDUMP ?= $(SN_LLVM_BINROOT)/llvm-objdump
30+
SN_RISCV_MC ?= $(SN_LLVM_BINROOT)/llvm-mc
31+
SN_RISCV_ADDR2LINE ?= $(SN_LLVM_BINROOT)/llvm-addr2line
2032

2133
# Compiler flags
22-
SN_MCPU ?= snitch
23-
SN_RISCV_CFLAGS := -mcpu=$(SN_MCPU)
34+
SN_RISCV_FEATURES = xfrep xssr xdma xcopift xsmallfloat
35+
SN_RISCV_CFLAGS := -march=rv32imafd_zfh_zifencei
36+
SN_RISCV_CFLAGS += $(foreach feat,$(SN_RISCV_FEATURES),-Xclang -target-feature -Xclang +$(feat))
2437
SN_RISCV_CFLAGS += -menable-experimental-extensions
2538
SN_RISCV_CFLAGS += -mabi=ilp32d
2639
SN_RISCV_CFLAGS += -mcmodel=medany
27-
SN_RISCV_CFLAGS += -mno-fdiv
40+
# SN_RISCV_CFLAGS += -mno-fdiv
2841
SN_RISCV_CFLAGS += -fno-builtin-printf
2942
SN_RISCV_CFLAGS += -fno-builtin-sqrtf
3043
SN_RISCV_CFLAGS += -fno-common
@@ -49,5 +62,7 @@ SN_RISCV_LDFLAGS += -lm
4962
SN_RISCV_ARFLAGS := rcs
5063

5164
# Objdump flags
52-
SN_RISCV_OBJDUMP_FLAGS := --mcpu=$(SN_MCPU)
53-
SN_RISCV_OBJDUMP_FLAGS += -D
65+
SN_RISCV_MATTR_FEATURES = $(call comma-join,$(addprefix +,$(SN_RISCV_FEATURES)))
66+
SN_RISCV_MATTR_FLAG = --mattr=+m,+a,+f,+d,+zfh,+zifencei,$(SN_RISCV_MATTR_FEATURES)
67+
SN_RISCV_OBJDUMP_FLAGS := --triple=riscv32 $(SN_RISCV_MATTR_FLAG)
68+
SN_RISCV_OBJDUMP_FLAGS += -D

util/trace/gen_trace.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ def load_opcodes():
365365

366366

367367
@lru_cache
368-
def disasm_inst(hex_inst, mc_exec='llvm-mc', mc_flags='-disassemble -mcpu=snitch'):
368+
def disasm_inst(hex_inst, mc_exec='llvm-mc', mc_flags='-disassemble'):
369369
"""Disassemble a single RISC-V instruction using llvm-mc."""
370370
# Reverse the endianness of the hex instruction
371371
inst_fmt = ' '.join(f'0x{byte:02x}' for byte in bytes.fromhex(hex_inst)[::-1])
@@ -1266,7 +1266,7 @@ def main():
12661266
)
12671267
parser.add_argument(
12681268
'--mc-flags',
1269-
default='-disassemble -mcpu=snitch',
1269+
default='-disassemble',
12701270
help='Flags to pass to the llvm-mc executable'
12711271
)
12721272

0 commit comments

Comments
 (0)