This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation.
This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction:
sdcc 2.6.5 #4749: 23354 bytes.
sdcc 2.6.5 #4749 with this patch: 23081 bytes.
sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes.
This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code.