Vbcc
vbcc is a portable and retargetable ANSI C compiler. It supports C89 (ISO/IEC 9899:1989) as well as parts of C99 (ISO/IEC 9899:1999). It is divided into two parts. One is target-independent and the other is target-dependent. vbcc provides complete abstraction of host-arithmetic and target-arithmetic. It fully supports cross-compiling for 8-bit, 16-bit, 32-bit and 64-bit architectures. Embedded systems are supported by features such as different pointer sizes, ROM-able code, inline assembly, bit-types, interrupt handlers, section attributes, and stack usage calculation (depending on the backend). vbcc supports the following backends, with different degrees of maturity: 68K, ColdFire, PowerPC, 6502, VideoCore, 80x86 (386 and above), Alpha, C16x/ST10, 6809/6309/68HC12, and Z-machine. The compiler itself can run on all common operating systems, including Windows, Mac OS X, and Unix/Linux. Optimizations
The compiler provides a large set of high-level optimizations as well as target-specific optimizations to produce faster or smaller code. It is also able to optimize across functions and modules. Target-independent optimizations supported by vbcc include: 

cross-module function inlining 
partial inlining of recursive functions 
interprocedural dataflow analysis 
interprocedural register allocation
register allocation for global variables 
global common subexpression elimination
global constant propagation
global copy propagation 
dead code elimination
alias analysis 
loop unrolling
induction variable elimination 
loop-invariant code motion
loop reversal

References

External links
Dr. Volker Barthelmann´s Compiler Page
vbcc - ISO/ANSI-C Compiler
macOS
Atari cross development
Amiga cross development
Windows cross development
Linux
Amiga cross development

C (programming language) compilers
compilers and interpreters
Amiga development software
MorphOS software
Atari ST software