Hi, I would like to work on a new Forth frontend for LLVM or possibly for another language. I am also interested on the LLVM superoptimizer project, but I don't currently know how to work on the backend of a compiler. What things should I understand before tackling such a project?