enhance llvm api code generator