[LLVMdev] [PATCH] Added lowering of dbg.declare in JumpThreading.cpp

Karl-Johan Karlsson karl-johan.karlsson at ericsson.com
Mon Feb 9 06:23:16 PST 2015


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>


More information about the llvm-dev mailing list