For question regarding the SDCC ISO C compiler which targets CPUs used in retro machines like z80.

SDCC - Small Device C Compiler is a retargettable, optimizing Standard C (ANSI C89, ISO C99, ISO C11) compiler suite that targets many 8 and 16 bit microcontrollers and chips used in vintage computers like Z80/Z180.

It supports all standard C types (even float) and performs a host of standard optimizations such as global sub expression elimination, loop optimizations (loop invariant, strength reduction of induction variables and loop reversing), constant folding and propagation, copy propagation, dead code elimination and jump tables for 'switch' statements.

It can run on Linux, Windows, Mac OS X.