implementing llvm call implementation