[LLVMdev] Instruction does not dominate all uses! <badref> ??

edA-qa mort-ora-y eda-qa at disemia.com
Fri Nov 2 02:20:40 PDT 2012


I'm having trouble figuring out what the error "Instruction does not
dominate all uses!" means. I'm trying to construct a call to a function
with two parameters. The printed IR, with error, looks like this:

define i32 @add(i32, i32) {
EntryBlock:
  %2 = add i32 %0, %1
  ret i32 %2
}

define i32 @eval_expr() {
EntryBlock:
  ret i32 <badref>
}

Instruction does not dominate all uses!
  <badref> = call i32 @add(i32 2, i32 3)
  ret i32 <badref>


And the approximate/simplified code I'm using to generate the call,
which would appear at <badref> is:

	llvm::Value * func = module->getFunction( "add" );
	
	std::vector<llvm::Value*> args;
	args.push_back( llvm::ConstantInt::get( llvm::Type::getInt32Ty(
*context ), 2 ) );
	args.push_back( llvm::ConstantInt::get( llvm::Type::getInt32Ty(
*context ), 3 ) );
	
	llvm::ArrayRef<llvm::Value*> ar_args( args );
	return llvm::CallInst::Create( func, ar_args );




-- 
edA-qa mort-ora-y
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Sign: Please digitally sign your emails.
Encrypt: I'm also happy to receive encrypted mail.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121102/a66ba22e/attachment.sig>


More information about the llvm-dev mailing list