This is the llvm related code  and pass creation.