[LLVMdev] [PATCH] Added lowering of dbg.declare in JumpThreading.cpp (original) (raw)
Karl-Johan Karlsson karl-johan.karlsson at ericsson.com
Mon Feb 9 06:23:16 PST 2015
- Previous message: [LLVMdev] JumpThreading and @llvm.dbg.declare()
- Next message: [LLVMdev] [RFC] LoopInterchange Pass for llvm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
The jumpthreading algorithm might duplicate blocks, including dbg.declare instrinsics. Avoid ending up with two dbg.declare intrinsics for a single alloca, by using the same method as in InstructionCombining. Lower the dbg.declare intrinsics into an appropriate set of dbg.value instrinsics.
Regards / Karl-Johan Karlsson
On 02/06/2015 09:39 AM, Karl-Johan Karlsson wrote:
On 02/05/2015 08:21 PM, Hans Wennborg wrote: On Thu, Feb 5, 2015 at 4:49 AM, Karl-Johan Karlsson <karl-johan.karlsson at ericsson.com> wrote: 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? Did you forget to attach a patch? A patch with a test case showing the problem you're describing would be great. Also, patches should generally be sent to the llvm-commits list, not llvmdev. I will create a patch with a testcase and send it to llvm-commits. Regards / Karl-Johan Karlsson Thanks, Hans
LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev -------------- next part -------------- A non-text attachment was scrubbed... Name: jumpthreading.patch Type: text/x-patch Size: 5401 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150209/96be6824/attachment.bin>
- Previous message: [LLVMdev] JumpThreading and @llvm.dbg.declare()
- Next message: [LLVMdev] [RFC] LoopInterchange Pass for llvm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]