I'm designing a simple CPU at the moment[1] and one of the things that keeps me awake at night is thinking about how to make a compiler for it.
It only supports 64K words of RAM (and I'm not planning to implement bank switching), and I definitely want the compiler to be self-hosting on my CPU, so retargeting LLVM or similar won't be applicable.
I've looked at Small-C[2], Cowgol[3], and PL/0[4] which all target related goals, from different directions.
[1] https://github.com/jes/scamp-cpu
[2] https://en.wikipedia.org/wiki/Small-C