[LLVMdev] JumpThreading and @llvm.dbg.declare()

Karl-Johan Karlsson karl-johan.karlsson at ericsson.com
Thu Feb 5 04:49:18 PST 2015


Hi!

I have a small issue with the JumpThreading pass (in opt). As described 
in the code (JumpThreading.cpp), the pass may if certain criteria are 
fulfilled duplicate the content of a block. If the duplicated block 
contain a call to @llvm.dbg.declare() you will end up with invalid code 
as the intrinsic @llvm.dbg.declare() only should occur once for each 
variable.

I think the JumpThreading pass should lower all llvm.dbg.declare() into 
llvm.dbg.value() the same way as the instcombine pass do (see 
InstructionCombining.cpp):

   // Lower dbg.declare intrinsics otherwise their value may be clobbered
   // by instcombiner.
   bool DbgDeclaresChanged = LowerDbgDeclare(F);

Do you agree? Ok to commit?

Regards
/ Karl-Johan Karlsson




More information about the llvm-dev mailing list