mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-11-01 18:04:12 +08:00
tools: one script for the bank sizes
bank_occupancy.sh takes the main and branch build directories as optional arguments and prints a markdown table, so CI calls it instead of a second script. It gains the HOME, BANK4 and stack rows, and reads the web assets from the build directory, where html_min is now.
This commit is contained in:
1 parent
2cd68167fc
commit
0cdf029afd
3 files changed
+31
-41
No files matched your search
+28
-19
@@ -1,31 +1,40 @@
|
||||
#!/bin/bash
|
||||
MACHINE="$1"
|
||||
if [[ ! -s output-main/rtlplayground.map ]]; then
|
||||
MAIN="${2:-output-main}"
|
||||
BRANCH="${3:-output/$MACHINE}"
|
||||
if [[ ! -s "$MAIN/rtlplayground.map" ]]; then
|
||||
original_branch=$(git branch --show-current)
|
||||
#trap 'git switch "$original_branch"' EXIT
|
||||
git switch main && make CI=1 MACHINE="$MACHINE" BUILDDIR=output-main
|
||||
git switch main && make CI=1 MACHINE="$MACHINE" BUILDDIR="$MAIN"
|
||||
git switch "$original_branch"
|
||||
fi
|
||||
source <(sed -rn 's/^([XCD]SEG|(BANK[0-9])).*=\s+([0-9]+)\. bytes.*$/main_\1=\3/p' output-main/rtlplayground.map | sort -u)
|
||||
|
||||
main_WEB=$(du -sb output-main/html_min | awk '{print $1}')
|
||||
if [[ ! -s "output/$MACHINE/rtlplayground.map" ]]; then
|
||||
make CI=1 MACHINE="$MACHINE"
|
||||
if [[ ! -s "$BRANCH/rtlplayground.map" ]]; then
|
||||
make CI=1 MACHINE="$MACHINE" BUILDDIR="$BRANCH"
|
||||
fi
|
||||
source <(sed -rn 's/^([XCD]SEG|(BANK[0-9])).*=\s+([0-9]+)\. bytes.*$/branch_\1=\3/p' output/"$MACHINE"/rtlplayground.map | sort -u)
|
||||
branch_WEB=$(du -sb output/html_min | awk '{print $1}')
|
||||
|
||||
seg() {
|
||||
sed -rn "s/^$1[^=]*=\s+([0-9]+)\. bytes.*$/\1/p" "$2/rtlplayground.map" | head -n 1
|
||||
}
|
||||
|
||||
stack() {
|
||||
sed -rn 's/.* with ([0-9]+) bytes available.*/\1/p' "$1/rtlplayground.mem"
|
||||
}
|
||||
|
||||
web() {
|
||||
du -sb "$1/html_min" | awk '{print $1}'
|
||||
}
|
||||
|
||||
print_line() {
|
||||
local name=$1 main=$2 branch=$3
|
||||
printf '%-20s %-20s %-20s %-20s\n' "$name" "$main" "$branch" "$((branch - main))"
|
||||
echo "| $name | $main | $branch | $((${branch:-0} - ${main:-0})) |"
|
||||
}
|
||||
|
||||
printf '%-20s %-20s %-20s %-20s\n' "segment" "main" "branch" "change"
|
||||
|
||||
print_line "BANK1" "$main_BANK1" "$branch_BANK1"
|
||||
print_line "BANK2" "$main_BANK2" "$branch_BANK2"
|
||||
print_line "BANK3" "$main_BANK3" "$branch_BANK3"
|
||||
print_line "CSEG" "$main_CSEG" "$branch_CSEG"
|
||||
print_line "DSEG" "$main_DSEG" "$branch_DSEG"
|
||||
print_line "XSEG" "$main_XSEG" "$branch_XSEG"
|
||||
print_line "WEB" "$main_WEB" "$branch_WEB"
|
||||
echo "### $MACHINE"
|
||||
echo
|
||||
echo "| segment | main | branch | change |"
|
||||
echo "| --- | ---: | ---: | ---: |"
|
||||
for s in HOME CSEG BANK1 BANK2 BANK3 BANK4 DSEG XSEG; do
|
||||
print_line "$s" "$(seg "$s" "$MAIN")" "$(seg "$s" "$BRANCH")"
|
||||
done
|
||||
print_line "stack available" "$(stack "$MAIN")" "$(stack "$BRANCH")"
|
||||
print_line "WEB" "$(web "$MAIN")" "$(web "$BRANCH")"
|
||||
Reference in new issue
Block a user