Draft: llvmpipe: add a new jit engine based on llvm orcjit, also add in riscv support

Alex Fan requested to merge alexfanqi/mesa:main into main

Hi, dear mesa developers

I gave it a go to implement a new jit engine based on orc lljit for llvmpipe, as an alternative to old mcjit. A bonus of this is riscv64/32 llvmpipe support that enables headless rendering, which lots of riscv users are looking for. llvm mcjit doesn't accept new architecture any more.

This MR passes tests on my local riscv64 qemu user environment except that test_arit gives some inaccurate results that looks no related to jit impl. It has no per-func perf nor disasm implemented yet. That shouldn't be hard to add later.

As I am not an experienced c++ programmer, I would like your kind advice or feedback on the code and implementation.

Thanks a lot.

Edited by Alex Fan

Merge request reports