The current implementation of findLabel() in peep.c for mcs51 tries to find labels but forgets to compensate for the trailing colon and thus cannot find any label. And when fixed SDCC generates errors when compiling the libraries. E.g.
../../bin/sdcc -I../../device/include -I../../device/include/mcs51 --model-small --nostdinc --std-c99 -c time.c -o small/time.rel
time.c:208: error 9: FATAL Compiler Internal Error in file 'peep.c' line number '555' : error in deadmove
Contact Author with source code
make[4]: *** [small/time.rel] Error 1
In [r10458], I fixed the issue in findLabel(). I worked arund the error by making doPushScan() non-recursive for now. Due to the bug, recursion didn't work there anyway. This means the removal of dead push/pop pairs still won't work over conditional jumps. But at least the removal of dead moves is now working properly across them.
Philipp