Skip to content

Instantly share code, notes, and snippets.

@bahusoid
Created February 17, 2024 19:37
Show Gist options
  • Save bahusoid/d627e4d19e3d99906ba20a7cdfc9872b to your computer and use it in GitHub Desktop.
Save bahusoid/d627e4d19e3d99906ba20a7cdfc9872b to your computer and use it in GitHub Desktop.
../utils/analysis/bloat-o-meter.py ./bootloader.2011.elf ./bootloader.2024.trim.elf
function old new delta
lcd_static_framebuffer - 77440 +77440
cache_buffer - 16384 +16384
usb_stack 1376 4448 +3072
__thread_entries - 2432 +2432
storage_thread_stack - 2048 +2048
UnwStartThumb - 1860 +1860
disk_init 192 1960 +1768
UnwStartArm - 1720 +1720
fobindings - 1352 +1352
cache_map_entry - 1024 +1024
fat_readdir - 928 +928
INT_USB_FUNC - 888 +888
open_streams - 748 +748
dir_fatent - 688 +688
walk_path - 668 +668
open_internal_inner1 - 648 +648
static.reset_endpoints - 604 +604
stream_mutexes - 520 +520
cache_entry - 512 +512
fat_create_file 84 588 +504
path_append_ex - 464 +464
buflib_alloc_ex - 464 +464
ftruncate_internal - 460 +460
dc_cache_probe - 436 +436
usb_drv_control_response - 392 +392
buflib_compact_and_shrink - 364 +364
buflib_compact - 356 +356
write_bootdata - 344 +344
fat_closewrite 108 444 +336
storage_thread - 324 +324
inherit_priority - 324 +324
wakeup_thread_queue_multi_transfer - 312 +312
parse_short_direntry - 312 +312
open_path_component - 308 +308
fileobj_fileop_open - 308 +308
mrsw_read_release - 300 +300
usb_thread 432 724 +292
usb_drv_recv_nonblocking - 292 +292
open_stream_internal - 292 +292
thread_set_priority - 284 +284
alloc_and_load_cp_table - 280 +280
sd_event - 276 +276
fat_mount 1004 1276 +272
fsync_internal - 264 +264
lcd_scroll_stop_viewport_rect - 260 +260
panicf_f - 256 +256
readwrite_fill_cache - 252 +252
mrsw_read_acquire - 252 +252
fileobj_fileop_close - 248 +248
fat_extend_dir - 248 +248
clip_viewport_rect - 248 +248
static.check_tmo_expired_inner - 244 +244
root_mount_path - 240 +240
move_block - 236 +236
load_firmware_filename - 236 +236
path_strip_volume - 232 +232
get_redirect_dir - 220 +220
fat_remove - 216 +216
free_direntries - 204 +204
ns_open_root - 200 +200
buflib_free - 196 +196
block_thread_ - 196 +196
update_fat_entry32 - 192 +192
static.aux_pathwalk - 192 +192
cp_info - 192 +192
update_fat_entry16 - 188 +188
wakeup_thread_ - 184 +184
find_free_cluster32 - 176 +176
find_free_cluster16 - 176 +176
init_pl180_controller - 172 +172
fat_recalc_free_internal32 - 168 +168
next_write_cluster - 164 +164
dc_get_buffer - 164 +164
irqname 128 288 +160
bind_source_info - 160 +160
ascodec_int_audio_cb - 160 +160
root_unmount_volume - 156 +156
mrsw_write_acquire - 156 +156
timeout_register - 152 +152
font_getstringnsize - 152 +152
fileobj_sync_parent - 152 +152
fat_recalc_free_internal16 - 152 +152
create_stream_internal - 152 +152
check_block_handle - 152 +152
rb_backtrace - 148 +148
mrsw_write_release - 148 +148
fileobj_mgr_unmount - 148 +148
cache_direntry - 148 +148
wakeup_thread_transfer - 144 +144
storage_queue - 144 +144
dc_writeback_callback - 144 +144
queue_wait_w_tmo 152 292 +140
get_volume_name - 136 +136
read 20 152 +132
ns_parse_root - 132 +132
free_cluster_chain - 132 +132
static.usb_core_do_set_config - 128 +128
priority_disinherit_internal_inner - 128 +128
memHashIndex - 128 +128
fat_bpbs 92 216 +124
usb_core_legacy_control_request - 120 +120
thread_alloc_init - 120 +120
request_handler_endpoint_drivers - 120 +120
lcd_init_viewport - 120 +120
fileobj_mgr_init - 120 +120
UnwMemHashWrite - 120 +120
UnwMemHashRead - 120 +120
storage_init - 116 +116
dc_commit_all - 116 +116
close_internal - 116 +116
static.__func__ - 113 +113
wakeup_thread_release - 112 +112
get_next_cluster16 - 112 +112
UnwMemReadRegister - 112 +112
update_fsinfo32 - 108 +108
find_block_before - 108 +108
timeout_tick - 104 +104
sd_init_card 824 928 +104
fat_seek 240 344 +104
usb_status_tmo_callback - 100 +100
prio_move_entry - 100 +100
parse_path_component - 100 +100
iso_decode_d_name - 100 +100
get_filestr - 100 +100
dbop_set_mode - 100 +100
static.core_rtr_remove - 96 +96
static.ascodec_wait - 96 +96
dc_release_buffer - 96 +96
close_stream_internal - 96 +96
cache_sector - 96 +96
find_first_set_bit - 92 +92
UnwMemHashGC - 92 +92
get_next_cluster32 - 88 +88
filestr_copy_cache - 88 +88
volume_onmount_internal - 84 +84
usb_status_event - 84 +84
fat_file_is_same - 84 +84
disk_present - 84 +84
disk_mount_all 40 124 +84
unmount_item - 80 +80
thread_alloc - 80 +80
reset_poweroff_timer - 80 +80
card_info 80 160 +80
buflib_unpin - 80 +80
UnwInitState - 80 +80
usb_storage_notify_hotswap - 76 +76
timeout_cancel - 76 +76
switch_thread 208 284 +76
set_sleep_timer - 76 +76
semaphore_wait 132 208 +76
format_thread_name - 76 +76
fileobj_mount - 76 +76
fat_truncate 92 168 +76
dc_discard_all - 76 +76
crc_32 - 76 +76
CliReport - 76 +76
lcd_scroll_stop 20 92 +72
fileobj_unmount - 72 +72
disk_unmount_all 20 92 +72
dc_init - 72 +72
data_abort_handler - 72 +72
cache_bitmap_clear_bit - 72 +72
buflib_panic - 72 +72
UnwindStart - 72 +72
UIE 256 328 +72
usb_core_transfer_complete 112 180 +68
usb_core_handle_notify - 68 +68
sd_gpioa_isr - 68 +68
make_volume_root - 68 +68
lcd_set_viewport_ex - 68 +68
check_block_length - 68 +68
__popcountsi2 - 68 +68
__popcountdi2 - 68 +68
strmemccpy - 64 +64
static.crc32_lookup - 64 +64
static.core_rtr_add - 64 +64
find_first_free - 64 +64
fat_query_sectornum - 64 +64
fat_open_rootdir - 64 +64
fat_empty_fat_direntry - 64 +64
ascodec_init 208 272 +64
__threads - 64 +64
INT_MCI0 - 64 +64
wait_queue_wake - 60 +60
uncached_readdir_internal - 60 +60
static.walk_check_prefix - 60 +60
static.wait_queue_find_priority - 60 +60
filestr_assign_cache - 60 +60
file_cache_free - 60 +60
fat_dir_is_parent - 60 +60
disk_mount 272 332 +60
mutex_lock 84 140 +56
mrsw_init - 56 +56
dc_dirty_buf - 56 +56
__cores - 56 +56
thread_panicf - 52 +52
open_noiso_internal - 52 +52
open - 52 +52
lldc_remove - 52 +52
fileobj_fileop_sync - 52 +52
file_cache_alloc - 52 +52
dc_discard_buf - 52 +52
__get_sp - 52 +52
sd1_oneshot_callback - 48 +48
safe_read8 - 48 +48
safe_read32 - 48 +48
safe_read16 - 48 +48
priority_inherit_internal_inner - 48 +48
part 48 96 +48
lldc_insert_last - 48 +48
lldc_insert_first - 48 +48
ll_remove_next - 48 +48
file_internal_unlock_WRITER - 48 +48
file_internal_lock_WRITER - 48 +48
disk_unmount 84 132 +48
thread_free - 44 +44
thread_exit_final - 44 +44
prio_add_entry - 44 +44
memccpy - 44 +44
longent_char_next - 44 +44
lcd_clear_viewport 276 320 +44
filestr_base_init - 44 +44
fileobj_fileop_create - 44 +44
fat_seek_to_stream - 44 +44
cache_discard_entry - 44 +44
cache_commit - 44 +44
buflib_pin - 44 +44
INT_DMAC 112 156 +44
sd_present - 40 +40
lcd_update 100 140 +40
lcd_scroll_stop_viewport - 40 +40
lcd_puts 32 72 +40
kernel_device_init - 40 +40
file_internal_mrsw - 40 +40
fat_rewind - 40 +40
char2dos 104 144 +40
usb_enable 32 68 +36
usb_core_hotswap_event - 36 +36
tmo_list - 36 +36
static.__bitarray_ffs - 36 +36
show_logo 88 124 +36
semaphore_release 76 112 +36
path_append - 36 +36
loader_strerror - 36 +36
lld_remove - 36 +36
ll_remove - 36 +36
lcd_set_backdrop 84 120 +36
lcd_frameaddress_default - 36 +36
fileobj_change_flags - 36 +36
file_binding_remove - 36 +36
file_binding_insert_last - 36 +36
core_alloc_ex - 36 +36
UnwMemWriteRegister - 36 +36
usb_start_monitoring 20 52 +32
static.CSWTCH - 32 +32
queue_wait 120 152 +32
lld_insert_last - 32 +32
ll_insert_last - 32 +32
iso_decode 592 624 +32
irq_handler 44 76 +32
handle_to_block - 32 +32
filesystem_init - 32 +32
ep_data 224 256 +32
endpoints 224 256 +32
enable_controller - 32 +32
usb_storage_disconnect 4 32 +28
queue_post 60 88 +28
fileobj_get_next_stream - 28 +28
core_unpin - 28 +28
core_pin - 28 +28
core_free - 28 +28
__bitarray_set_bit - 28 +28
UnwInvalidateRegisterFile - 28 +28
new_thread_id - 24 +24
ll_remove_first - 24 +24
filestr_free_cache - 24 +24
filesize 92 116 +24
file_internal_unlock_READER - 24 +24
fat_open 68 92 +24
dc_unlock_cache - 24 +24
dc_lock_cache - 24 +24
core_ctx - 24 +24
backlight_hw_on - 24 +24
backlight_hw_off - 24 +24
usb_core_exit 120 140 +20
thread_self - 20 +20
sd_transfer_sectors 1168 1188 +20
sd_get_info 76 96 +20
mutex_unlock 80 100 +20
mci_delay - 20 +20
init_tick - 20 +20
filestr_discard_cache - 20 +20
file_cache_init - 20 +20
disk_cache_mutex - 20 +20
cpufreq_mtx - 20 +20
ascodec_wait_cb - 20 +20
__errno - 20 +20
static.invalid_chars_tbl - 19 +19
rbversion - 18 +18
volumes - 16 +16
vec_int_srcs 64 80 +16
static.funcs - 16 +16
static.enable_interrupt - 16 +16
static.disable_interrupt_save - 16 +16
static.disable_interrupt - 16 +16
sd_write_sectors 76 92 +16
sd_removable - 16 +16
sd_read_sectors 76 92 +16
priority_disinherit - 16 +16
lcd_framebuffer_default - 16 +16
lcd_delay - 16 +16
filestr_base_destroy - 16 +16
fileobj_get_sizep - 16 +16
fileobj_get_flags - 16 +16
file_cache_reset - 16 +16
fat_rewinddir - 16 +16
cluster2sec 60 76 +16
cliCallbacks - 16 +16
busy_bindings - 16 +16
UnwReportRetAddr - 16 +16
INT_GPIOA - 16 +16
CliReadW - 16 +16
CliReadH - 16 +16
CliReadB - 16 +16
usb_remove_int 20 32 +12
usb_insert_int 20 32 +12
static.tmo - 12 +12
static.sd1_oneshot - 12 +12
static.fatlong_parse_start - 12 +12
mutex_init 20 32 +12
static.replace_chars_tbl - 11 +11
usb_storage_init_connection 160 168 +8
usb_mode 128 136 +8
thread_exit 128 136 +8
system_init 352 360 +8
sysfont 116 124 +8
sd_mtx 12 20 +8
req_list - 8 +8
pl180_base - 8 +8
lcd_init 24 32 +8
free_bindings - 8 +8
filestr_alloc_cache - 8 +8
fat_filestr_init - 8 +8
cache_vol_map - 8 +8
buffered_request - 8 +8
ascodec_read 88 96 +8
as_mtx 12 20 +8
__main_thread_name_str - 5 +5
usb_queue 140 144 +4
usb_num_acks_to_expect - 4 +4
usb_last_broadcast_tick - 4 +4
usb_init_device - 4 +4
usb_handle - 4 +4
usb_core_enable_driver 20 24 +4
usb_core_control_request 52 56 +4
transfer_error 4 8 +4
transfer_completion_signal 12 16 +4
threadalloc - 4 +4
storage_thread_name - 4 +4
storage_thread_id - 4 +4
static.slept_at - 4 +4
static.last_status - 4 +4
static.boosted - 4 +4
sleeptimer_endtick - 4 +4
sleeptimer_duration - 4 +4
semaphore_init 20 24 +4
root_bindp - 4 +4
num_active_requests - 4 +4
new_usbmode - 4 +4
memset 136 140 +4
loaded_cp_tid - 4 +4
lcd_current_viewport - 4 +4
last_event_tick - 4 +4
init_queues - 4 +4
force_close_writer_internal - 4 +4
drivers 48 52 +4
dma_pause_channel 48 52 +4
dma_disable_channel 48 52 +4
default_cp_tid - 4 +4
default_cp_table_ref - 4 +4
default_cp_handle - 4 +4
default_cp - 4 +4
cp_table_ref - 4 +4
control_write_data - 4 +4
cache_lru - 4 +4
bitset32 32 36 +4
bitmod32 40 44 +4
bitclr32 32 36 +4
adc_done_sem 12 16 +4
active_request - 4 +4
static.remove_chars_tbl - 3 +3
root_entry_flags - 3 +3
codepage_table 65536 65538 +2
usb_host_present - 1 +1
static.triggered - 1 +1
static.sd_enabled - 1 +1
sleeptimer_key_restarts - 1 +1
sleeptimer_active - 1 +1
skip_first - 1 +1
locked 1 2 +1
hs_card - 1 +1
ejected 1 2 +1
drivers_connected - 1 +1
control_write_data_done - 1 +1
tempbuf_locked 1 - -1
sd_enabled 1 - -1
initialized 3 2 -1
display_flipped 1 - -1
r_entry_mode 2 - -2
r_disp_control_rev 2 - -2
mru_len 2 - -2
vsnprintf 84 80 -4
vol_drive 4 - -4
usb_exclusive_storage 56 52 -4
usb_drv_send_nonblocking 52 48 -4
tick_start 92 88 -4
tick_add_task 84 80 -4
strrchr 76 72 -4
static.usb_countdown 4 - -4
static.last_usb_status 4 - -4
sprfunc 56 52 -4
req_tail 4 - -4
req_head 4 - -4
remove_array_ptr 56 52 -4
loaded_cp_table 4 - -4
led 52 48 -4
lcd_write_reg 52 48 -4
font_lock 4 - -4
error 108 104 -4
errno 4 - -4
default_codepage 4 - -4
current_vp 4 - -4
button_read_device 116 112 -4
button_init_device 44 40 -4
bidi_l2v 76 72 -4
as_audio_req 28 24 -4
main_thread_name 5 - -5
sd_thread_name 7 - -7
scroll_name 7 - -7
usb_core_release_endpoint 68 60 -8
set_time 8 - -8
send_csw 224 216 -8
lcd_write_cmd 92 84 -8
ep_send 204 196 -8
dbop_read_input 180 172 -8
control_request_handler_drivers 136 128 -8
ascodec_readbytes 176 168 -8
fat_partition_types 10 - -10
tempbuf_mutex 12 - -12
static.tnl 12 - -12
static.tl 12 - -12
static.mo 12 - -12
sd_wait_for_tran_state 216 204 -12
printf 144 132 -12
lcd_putsxy 24 12 -12
find_array_ptr 36 24 -12
default_vp 52 40 -12
cache_mutex 12 - -12
cp_2_table 14 - -14
usb_storage_request_endpoints 120 104 -16
usb_drv_send 144 128 -16
usb_drv_init 588 572 -16
usb_core_request_endpoint 88 72 -16
thread_self_entry 16 - -16
send_cmd 332 316 -16
queue_broadcast 88 72 -16
fat_unmount 96 80 -16
cores 16 - -16
closedir_uncached 16 - -16
INT_TIMER2 144 128 -16
filename 20 - -20
file_open 20 - -20
ascodec_start_req 156 136 -20
UIRQ 152 132 -20
transfer 160 136 -24
_backlight_on 24 - -24
_backlight_off 24 - -24
static.invalid_chars 27 - -27
usb_storage_control_request 136 108 -28
strcasecmp 144 116 -28
sd_select_bank 444 416 -28
sd_enable 28 - -28
scroll_thread 28 - -28
lcd_set_viewport 36 8 -28
flush_cache 204 176 -28
thread_stkov 52 20 -32
init_threads 212 180 -32
core_schedule_wakeup 36 4 -32
bitset16 32 - -32
bitclr16 32 - -32
create_thread 308 272 -36
ascodec_submit 100 64 -36
utf8decode 264 224 -40
usb_release_exclusive_storage 40 - -40
release_files 40 - -40
release_dirs 40 - -40
lcd_puts_style_offset 40 - -40
fat_time 380 340 -40
fat_release_sector_buffer 40 - -40
copy_padded 108 68 -40
bitmod16 40 - -40
utf8encode 164 120 -44
thread_queue_wake 44 - -44
lcd_update_viewport_rect 44 - -44
lcd_init_device 832 788 -44
usb_wait_for_disconnect 48 - -48
usb_drv_release_endpoint 196 148 -48
remove_from_list_l 48 - -48
commit_dcache 48 - -48
add_to_list_l 48 - -48
INT_AUDIO 100 52 -48
strlcpy 108 56 -52
lcd_bitmap 52 - -52
scroll_init 60 4 -56
strcat 60 - -60
main 412 352 -60
close 164 104 -60
block_thread 60 - -60
add_to_list_tmo 60 - -60
snprintf 104 40 -64
kernel_init 64 - -64
diacritic_mru 64 - -64
fat_get_sector_buffer 72 - -72
wakeup_thread 80 - -80
ascodec_wait 84 - -84
thread_get_name 88 - -88
fat_init 140 52 -88
INT_I2C_AUDIO 428 340 -88
fat_opendir 96 - -96
remove_from_list_tmo 100 - -100
strlen 136 32 -104
request_handler_endoint_drivers 116 - -116
strcpy 144 24 -120
sd_init 288 168 -120
font_getstringsize 164 44 -120
usb_drv_request_endpoint 308 184 -124
flush_fat 124 - -124
block_thread_w_tmo 124 - -124
dbop_write_data 280 152 -128
commit_discard_dcache_range 128 - -128
sd_thread 136 - -136
strchr 188 48 -140
sd_queue 140 - -140
lcd_window 140 - -140
fat_readwrite 872 732 -140
set_day_of_week 144 - -144
flush_fat_sector 144 - -144
lcd_puts_style_xyoffset 148 - -148
get_next_cluster 152 - -152
usb_tick 340 184 -156
strerror 156 - -156
ascodec_read_cb 156 - -156
randomize_dos_name 324 160 -164
update_fsinfo 172 - -172
readdir_uncached 176 - -176
atoi 176 - -176
ftruncate 180 - -180
strtok_r 200 - -200
check_tmo_threads 204 - -204
panicf 224 12 -212
lcd_mono_bitmap_part 916 692 -224
lcd_scroll_stop_line 248 - -248
lcd_bitmap_part 248 - -248
memchr 252 - -252
fat_cache 256 - -256
cache_fat_sector 260 - -260
load_firmware 552 284 -268
lcd_update_rect 272 - -272
fat_recalc_free 356 72 -284
strncmp 384 96 -288
lcd_hline 316 - -316
usb_drv_recv 324 - -324
is_diacritic 380 20 -360
readwrite 1432 1068 -364
update_short_entry 372 - -372
lseek 648 276 -372
opendir_uncached 380 - -380
fsync 384 - -384
usb_core_handle_transfer_completion 1836 1448 -388
update_fat_entry 400 - -400
find_free_cluster 408 - -408
lcd_scroll_fn 416 - -416
lcd_fillrect 424 - -424
usb_storage_transfer_complete 952 508 -444
handle_scsi 2492 2040 -452
static._cbw_buffer 1024 512 -512
fat_tempbuf 512 - -512
diac_ranges 568 - -568
lcd_putsxyofs 872 276 -596
format 1632 1032 -600
reset_endpoints 668 - -668
lcd_putsxyofs_style 860 - -860
add_dir_entry 2748 1844 -904
open_internal 972 - -972
INT_USB 972 - -972
lcd_alpha_bitmap_part 1048 - -1048
fat_getnext 1136 - -1136
threads 1564 - -1564
sd_stack 2560 - -2560
scroll_stack 3072 - -3072
openfiles 6336 - -6336
lcd_scroll 18176 9856 -8320
opendirs 11008 - -11008
fat_cache_sectors 16384 - -16384
rockboxlogo 19008 - -19008
lcd_framebuffer 77440 - -77440
------------------------------------------------------------------------------
(add/remove: 322/113 grow/shrink: 82/89 up/down: 146269/-171180)
Total: -24911 bytes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment