Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion contrib/linx/flows/tools/linx_trace_diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from typing import Optional


DEFAULT_COMMIT_SCHEMA_ID = "LC-COMMIT-BUNDLE-V1"
DEFAULT_COMMIT_SCHEMA_ID = "LC-COMMIT-BUNDLE-V2"

# Decision 0142 minimum commit/retire bundle fields (as used by LinxCore M1):
# pc/insn/len/next_pc + wb/mem/trap groups.
Expand Down Expand Up @@ -36,16 +36,27 @@
"insn",
"len",
"next_pc",
"src0_valid",
"src0_reg",
"src0_data",
"src1_valid",
"src1_reg",
"src1_data",
"dst_valid",
"dst_reg",
"dst_data",
"wb_valid",
"wb_rd",
"wb_data",
"mem_valid",
"mem_is_store",
"mem_addr",
"mem_wdata",
"mem_rdata",
"mem_size",
"trap_valid",
"trap_cause",
"traparg0",
]


Expand Down
54 changes: 50 additions & 4 deletions contrib/linx/flows/tools/run_linx_qemu_vs_pyc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,54 @@
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
LINX_ROOT="$(cd "${ROOT}/../.." && pwd)"
LINXCORE_ROOT="${LINXCORE_ROOT:-/Users/zhoubot/LinxCore}"
PYC_ROOT="$(cd "${ROOT}/../.." && pwd)"

find_linx_root() {
local cand
if [[ -n "${LINX_ROOT:-}" && -d "${LINX_ROOT}/tools/bringup" ]]; then
echo "${LINX_ROOT}"
return 0
fi
for cand in \
"$(cd "${ROOT}/../../../.." && pwd)" \
"$(cd "${PYC_ROOT}/.." && pwd)" \
"/Users/zhoubot/linx-isa"
do
if [[ -d "${cand}/tools/bringup" ]]; then
echo "${cand}"
return 0
fi
done
return 1
}

LINX_ROOT="$(find_linx_root)" || {
echo "error: unable to resolve linx-isa superproject root" >&2
exit 2
}

find_linxcore_root() {
local cand
if [[ -n "${LINXCORE_ROOT:-}" && -d "${LINXCORE_ROOT}/generated/cpp/linxcore_top" ]]; then
echo "${LINXCORE_ROOT}"
return 0
fi
for cand in \
"${LINX_ROOT}/rtl/LinxCore" \
"/Users/zhoubot/LinxCore"
do
if [[ -d "${cand}/generated/cpp/linxcore_top" ]]; then
echo "${cand}"
return 0
fi
done
return 1
}

LINXCORE_ROOT="$(find_linxcore_root)" || {
echo "error: unable to resolve LinxCore root" >&2
exit 2
}

DEFAULT_SRC=""
for cand in \
Expand All @@ -18,7 +64,7 @@ do
done
SRC="${1:-$DEFAULT_SRC}"

LLVM_BUILD="${LLVM_BUILD:-$HOME/llvm-project/build-linxisa-clang}"
LLVM_BUILD="${LLVM_BUILD:-${LINX_ROOT}/compiler/llvm/build-linxisa-clang}"
LLVM_MC="${LLVM_MC:-$LLVM_BUILD/bin/llvm-mc}"

QEMU_BIN="${QEMU_BIN:-}"
Expand Down Expand Up @@ -50,7 +96,7 @@ OBJ="$WORK/test.o"
QEMU_TRACE="$WORK/qemu.jsonl"
PYC_TRACE="$WORK/pyc.jsonl"
TRACE_SCHEMA_VERSION="${LINX_TRACE_SCHEMA_VERSION:-1.0}"
COMMIT_SCHEMA_ID="${LINX_COMMIT_SCHEMA_ID:-LC-COMMIT-BUNDLE-V1}"
COMMIT_SCHEMA_ID="${LINX_COMMIT_SCHEMA_ID:-LC-COMMIT-BUNDLE-V2}"
DFX_DUMP_DIR="${LINX_DIFF_DFX_DUMP_DIR:-$WORK/dfx_dump}"
DFX_PRE="${LINX_DIFF_DFX_PRE:-8}"
DFX_POST="${LINX_DIFF_DFX_POST:-16}"
Expand Down
10 changes: 6 additions & 4 deletions runtime/cpp/pyc_linxtrace.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,11 +208,13 @@ class LinxTraceWriter {
}

private:
static constexpr std::array<const char *, 16> kCanonicalStageOrder = {
"IB", "D1", "D2", "D3", "S1", "S2", "IQ", "P1",
"I1", "I2", "E1", "W1", "W2", "CMT", "FLS", "XCHK",
static constexpr std::array<const char *, 39> kCanonicalStageOrder = {
"F0", "F1", "F2", "F3", "F4", "D1", "D2", "D3", "IQ", "S1",
"S2", "P1", "I1", "I2", "E1", "E2", "E3", "E4", "W1", "W2",
"LIQ", "LHQ", "STQ", "SCB", "MDB", "L1D", "BISQ", "BCTRL", "TMU", "TMA",
"CUBE", "VEC", "TAU", "BROB", "ROB", "CMT", "FLS", "XCHK", "IB",
};
static constexpr const char *kPipelineSchemaId = "LC-TRACE1-FA870FA28B15";
static constexpr const char *kPipelineSchemaId = "LC-TRACE1-1ABD8F1C22C0";

struct RowInfo {
std::uint64_t row_id = 0;
Expand Down
Loading