Jakub, Let me know if you need additional help on this. I think this assembler->obj in llvm is the last major piece for a complete toolchain for clang/llvm. Thanks, Yonghong On Wed, Aug 30, 2017 at 9:37 PM, Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > On Wed, Aug 30, 2017 at 9:24 PM, Jakub Kicinski <kubakici@xxxxx> wrote: >> >>> llvm assembler is almost there too, but it needs some work. >> >> Does it use the "verifier instruction format"? Is it available >> somewhere to look at? > > yes. you can use verifier instruction format. > That was the goal for llvm to be as close as possible to > kernel verifier syntax. > But, I think, it's fine to deviate if it makes asm code easier to read. > What is missing is AsmParser directory in > llvm/lib/Target/BPF > disassembler, elf tools, codegen are all there. > Most of the core backend components are shared in the llvm, > so it's only missing text parser. > Most backends already have assemblers: > ls -d lib/Target/*/AsmParser > To make one for BPF requires a lot of copy-paste from others ;)