I've made a virtual processor with a simple instruction set and memory model as a learning exercise (and mostly just for fun). I can write programs in its assembly language, assemble them with my assembler, and successfully run them on a virtual machine.
I've been wanting to write a compiler for a higher-level language that targets this machine so I don't have to write everything in assembly. I've heard of LLVM, a compiler project that supports multiple front-ends for different languages and outputs IR that is somewhat assembly-like. This IR is given to a platform-specific backend that turns it into assembly/machine code for a platform.
I've looked into writing my own backend; I've seen LLVM's backend tutorial and the backend for Cpu0 tutorial, and, frankly, it looks a bit complicated.
Is it feasible to write a compiler, external to LLVM, that reads LLVM's *.ll files and outputs assembler for my platform, as opposed to writing a whole new LLVM backend?
I don't care much about my code running fast and being highly optimized right now, I just want to get real code compiling to it. I'm okay with figuring out the register allocation, et. al. on my own, I don't need it to be efficient.