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
|
# Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update
|
||||||
accfill 3963
|
accfill 3820
|
||||||
argv 3431
|
argv 3431
|
||||||
assrtest 3847
|
assrtest 3847
|
||||||
attrprob 4088
|
attrprob 4088
|
||||||
@@ -7,39 +7,39 @@ banked 1056
|
|||||||
bankedbg 1067
|
bankedbg 1067
|
||||||
banklocl 4832
|
banklocl 4832
|
||||||
banktest 3767
|
banktest 3767
|
||||||
bgi_img 6572
|
bgi_img 6233
|
||||||
bgitest 4053
|
bgitest 3737
|
||||||
bios_text 4460
|
bios_text 4460
|
||||||
cat 915
|
cat 915
|
||||||
cblstream 6277
|
cblstream 6224
|
||||||
cbltest 6407
|
cbltest 6354
|
||||||
cblwav 6486
|
cblwav 6431
|
||||||
conio 4631
|
conio 4631
|
||||||
conio2 3954
|
conio2 3954
|
||||||
dec_test 860
|
dec_test 860
|
||||||
errno 6145
|
errno 5966
|
||||||
fbench 8656
|
fbench 8195
|
||||||
fdmax 6328
|
fdmax 6050
|
||||||
filetest 11143
|
filetest 10637
|
||||||
gets 509
|
gets 509
|
||||||
gfx_dbuf 5378
|
gfx_dbuf 5062
|
||||||
gfx_demo 4286
|
gfx_demo 4113
|
||||||
hello 4167
|
hello 4167
|
||||||
hello2 4244
|
hello2 4244
|
||||||
irqtest 5881
|
irqtest 5853
|
||||||
ls 4916
|
ls 4916
|
||||||
malloc 4462
|
malloc 4462
|
||||||
mdview 19115
|
mdview 19113
|
||||||
mdview2 27033
|
mdview2 27031
|
||||||
mem_test 4558
|
mem_test 4556
|
||||||
mouse 4384
|
mouse 4384
|
||||||
openenv 6127
|
openenv 6127
|
||||||
ptime 5896
|
ptime 5768
|
||||||
rt_test 4906
|
rt_test 4905
|
||||||
seek 4177
|
seek 4177
|
||||||
simple 960
|
simple 960
|
||||||
solidt 12107
|
solidt 11600
|
||||||
stattest 7700
|
stattest 7583
|
||||||
stdlib 6643
|
stdlib 6643
|
||||||
stest2 3644
|
stest2 3644
|
||||||
strtest 1340
|
strtest 1340
|
||||||
|
|||||||
|
+2
-2
@@ -47,11 +47,11 @@ safe: $(LIB_SAFE)
|
|||||||
|
|
||||||
$(BUILD)/fast/common/%.rel: $(CURDIR)/common/%.c
|
$(BUILD)/fast/common/%.rel: $(CURDIR)/common/%.c
|
||||||
@mkdir -p $(dir $@)
|
@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
|
$(BUILD)/fast/bgi256/%.rel: $(CURDIR)/bgi256/%.c
|
||||||
@mkdir -p $(dir $@)
|
@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'и включены (по умолчанию) ---
|
# --- Safe version: guard'и включены (по умолчанию) ---
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -72,7 +72,7 @@ safe: $(LIB_SAFE)
|
|||||||
# --- Fast: -DLIBC_NOCHECK (параметр-валидации выключены) ------------
|
# --- Fast: -DLIBC_NOCHECK (параметр-валидации выключены) ------------
|
||||||
$(BUILD)/fast/%.rel: $(CURDIR)/%.c
|
$(BUILD)/fast/%.rel: $(CURDIR)/%.c
|
||||||
@mkdir -p $(dir $@)
|
@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
|
$(BUILD)/fast/%.rel: $(PROJ_ROOT)/runtime/%.s
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
|
|||||||
Reference in New Issue
Block a user