Writing two backends for two different architectures would be a lot of work and then lots of platform specific optimizations therefore llvm is the present and seems to be the future for the foreseeable future as well.
LLVM is modular in the sense that it never compiles one language straight to machine code.
It has a front-end compiler that compiles your code to an IR.
This IR is called LLVM, as the IR is modeled around a Low-level Virtual Machine(LLVM).
It has a back-end compiler that takes care of translating the IR to the host’s machine code