Hi, I tried creating intrinsics which are to be placeholders for some instructions which should not be executed by the backend. Kindly help me with the errors in my "migrate_begin" intrinsic creation The following are the additions made to the Intrinsics.td file def llvm_migrate_begin : LLVMType<iAny>; def int_migrate_begin : Intrinsic<[llvm_migrate_begin,llvm_vararg_ty], [IntrWriteMem],"llvm.migrate_begin">; A section of the code which deals with the "migrate_begin" intrinsic creation is as follows const Type **Tys=(const Type**)calloc(extTys.size(),sizeof(Type*)); /* extTys vector contains data types(pointers) of formal parameters of the function "f" */ int i=0; for(vector<const Type*>::iterator it=extTys.begin(),e=extTys.end();it!=e;it++) {Tys[i++]=*it;} extTys.clear(); Module *M = bbp->getParent()->getParent(); Function *f = Intrinsic::getDeclaration(M,Intrinsic::migrate_begin,Tys,i); /* migrate_begin intrinsic creation */ CallInst* CI = new CallInst(f,bbp); /*bbp is pointer to basic block where intrinsic is to be inserted*/ Errors: /work/aditya/llvm-2.1/Debug/bin/opt(llvm::FunctionType::FunctionType(llvm::Type const*, std::vector<llvm::Type const*, std::allocator<llvm::Type const*> > const&, bool, llvm::ParamAttrsList const*)+0x6a)[0x85ea1d0] /work/aditya/llvm-2.1/Debug/bin/opt(llvm::FunctionType::get(llvm::Type const*, std::vector<llvm::Type const*, std::allocator<llvm::Type const*> > const&, bool, llvm::ParamAttrsList const*)+0xc5)[0x85ecd01] /work/aditya/llvm-2.1/Debug/bin/opt(llvm::Intrinsic::getType(llvm::Intrinsic::ID, llvm::Type const**, unsigned int)+0x3f8e)[0x85ad73e] /work/aditya/llvm-2.1/Debug/bin/opt(llvm::Intrinsic::getDeclaration(llvm::Module*,llvm::Intrinsic::ID,llvm::Type const**, unsigned int)+0x20)[0x85ad8ea]