https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91189
Witold Markowski <witold.a.markowski at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |witold.a.markowski at gmail dot co | |m --- Comment #5 from Witold Markowski <witold.a.markowski at gmail dot com> --- I did a small research in this topic and now I know that avr-gcc-9.1.0 compiler generates some additional, overhead operations, like: 932: 6e 87 std Y+14, r22 ; 0x0e 934: 7f 87 std Y+15, r23 ; 0x0f 936: 88 8b std Y+16, r24 ; 0x10 938: 99 8b std Y+17, r25 ; 0x11 93a: 6e 85 ldd r22, Y+14 ; 0x0e 93c: 7f 85 ldd r23, Y+15 ; 0x0f 93e: 88 89 ldd r24, Y+16 ; 0x10 940: 99 89 ldd r25, Y+17 ; 0x11 Storing and reading back the same registers. I just found that exactly the same case is already reported with issue id 90706. Because of this I will not attach any examples here. In my opinion the current issue depends on 90706 (please somebody update the 'Depends on' field of the issue). When 90706 is fixed then we should recheck this again and we will se how much it improves the situation.