LLVM backend structure