libc+libbgi: fast-версии собираются с --max-allocs-per-node 100000
Идея из mdview2 (memory/mdview2_size_budget): большее время компиляции покупает более агрессивную регистровую аллокацию SDCC. Применено к fast-вариантам обеих библиотек (sprinter.lib, bgi256.lib); safe-версии остаются на дефолте — быстрая пересборка для отладки. Замер (47 программ, роста нет): solidt -507, filetest -506, fbench -461, bgi_img -339, bgitest -316, gfx_dbuf -316, fdmax -278, errno -179, gfx_demo -173, accfill -143, ptime -128, stattest -117, cbl* -53, остальные до -28. Время сборки: libc fast 17с -> 68с, libbgi 43с (обе) — терпимо. MAME: filetest + bgitest зелёные. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+20
-20
@@ -1,5 +1,5 @@
|
||||
# Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update
|
||||
accfill 3963
|
||||
accfill 3820
|
||||
argv 3431
|
||||
assrtest 3847
|
||||
attrprob 4088
|
||||
@@ -7,39 +7,39 @@ banked 1056
|
||||
bankedbg 1067
|
||||
banklocl 4832
|
||||
banktest 3767
|
||||
bgi_img 6572
|
||||
bgitest 4053
|
||||
bgi_img 6233
|
||||
bgitest 3737
|
||||
bios_text 4460
|
||||
cat 915
|
||||
cblstream 6277
|
||||
cbltest 6407
|
||||
cblwav 6486
|
||||
cblstream 6224
|
||||
cbltest 6354
|
||||
cblwav 6431
|
||||
conio 4631
|
||||
conio2 3954
|
||||
dec_test 860
|
||||
errno 6145
|
||||
fbench 8656
|
||||
fdmax 6328
|
||||
filetest 11143
|
||||
errno 5966
|
||||
fbench 8195
|
||||
fdmax 6050
|
||||
filetest 10637
|
||||
gets 509
|
||||
gfx_dbuf 5378
|
||||
gfx_demo 4286
|
||||
gfx_dbuf 5062
|
||||
gfx_demo 4113
|
||||
hello 4167
|
||||
hello2 4244
|
||||
irqtest 5881
|
||||
irqtest 5853
|
||||
ls 4916
|
||||
malloc 4462
|
||||
mdview 19115
|
||||
mdview2 27033
|
||||
mem_test 4558
|
||||
mdview 19113
|
||||
mdview2 27031
|
||||
mem_test 4556
|
||||
mouse 4384
|
||||
openenv 6127
|
||||
ptime 5896
|
||||
rt_test 4906
|
||||
ptime 5768
|
||||
rt_test 4905
|
||||
seek 4177
|
||||
simple 960
|
||||
solidt 12107
|
||||
stattest 7700
|
||||
solidt 11600
|
||||
stattest 7583
|
||||
stdlib 6643
|
||||
stest2 3644
|
||||
strtest 1340
|
||||
|
||||
|
+2
-2
@@ -47,11 +47,11 @@ safe: $(LIB_SAFE)
|
||||
|
||||
$(BUILD)/fast/common/%.rel: $(CURDIR)/common/%.c
|
||||
@mkdir -p $(dir $@)
|
||||
$(SDCC) -mz80 --no-std-crt0 --std-c99 --opt-code-size -DGFX_NOCHECK $(INC) -c -o $@ $<
|
||||
$(SDCC) -mz80 --no-std-crt0 --std-c99 --opt-code-size -DGFX_NOCHECK --max-allocs-per-node 100000 $(INC) -c -o $@ $<
|
||||
|
||||
$(BUILD)/fast/bgi256/%.rel: $(CURDIR)/bgi256/%.c
|
||||
@mkdir -p $(dir $@)
|
||||
$(SDCC) -mz80 --no-std-crt0 --std-c99 --opt-code-size -DGFX_NOCHECK $(INC) -c -o $@ $<
|
||||
$(SDCC) -mz80 --no-std-crt0 --std-c99 --opt-code-size -DGFX_NOCHECK --max-allocs-per-node 100000 $(INC) -c -o $@ $<
|
||||
|
||||
# --- Safe version: guard'и включены (по умолчанию) ---
|
||||
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ safe: $(LIB_SAFE)
|
||||
# --- Fast: -DLIBC_NOCHECK (параметр-валидации выключены) ------------
|
||||
$(BUILD)/fast/%.rel: $(CURDIR)/%.c
|
||||
@mkdir -p $(dir $@)
|
||||
$(SDCC) $(CC_FLAGS) -DLIBC_NOCHECK -c -o $@ $<
|
||||
$(SDCC) $(CC_FLAGS) -DLIBC_NOCHECK --max-allocs-per-node 100000 -c -o $@ $<
|
||||
|
||||
$(BUILD)/fast/%.rel: $(PROJ_ROOT)/runtime/%.s
|
||||
@mkdir -p $(dir $@)
|
||||
|
||||
Reference in New Issue
Block a user