can't we use numba directly, not llvmlite?
In practice, what numba does is turn the python code into llvm types, and then compile those with LLVM. What the OP is doing is turning tensorflow dags into llvm types, and then compiling those with LLVM. You can look at numba and the OP's project both as front ends to LLVM.
llvmlite is an Python interface to LLVM
So, JIT compilation for TensorFlow graphs would need llvmlite as TensorFlow graphs aren't Python.