[llvm-commits] [llvm] r127539 - /llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

Duncan Sands baldrick at free.fr
Sun Mar 13 10:26:00 PDT 2011


Hi Jin Gu Kang,

> I didn't know to add testcase to testsuite.
> Please Let me know how to add testcase.

testcases for instcombine go in test/Transforms/InstCombine.  There are
plenty of examples in there; I suggest you copy one that uses FileCheck.
Test that your testcase works by doing "make check" in the top-level
build directory.

>
> And I will insert assertions and then try to remove assumptions

OK, thanks.

Ciao, Duncan.

>
> Thanks your comment,
> Jin-Gu Kang
> ________________________________________
> From: Duncan Sands [baldrick at free.fr]
> Sent: Saturday, March 12, 2011 11:32 PM
> To: Jin Gu Kang
> Cc: llvm-commits at cs.uiuc.edu
> Subject: Re: [llvm-commits] [llvm] r127539 -    /llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
>
> Hi Jin Gu,
>
>> I sended testcase on previous e-mail as following:
>
> it should be added to the testsuite.
>
>> and
>>
>>>     %A = alloca i32
>>>     %Ptr = getelementptr A, 0
>>>     %Ptr2 = bitcast i32 *%Ptr, i32*
>>>     %LI = load %Ptr2
>>>     do other stuff with Ptr2 that modifies the contents of %A
>>>     %ST = store %LI, %Ptr<-- would be wrong to remove the store
>>
>> "%Ptr2 = bitcast i32 *%Ptr, i32*" instruction is removed on InstCombine Pass
>> so equivalentAddressValues does not check this instrucion.
>
> I don't think you should rely on this.  I think you should rework the check so
> that it doesn't make any such "global" assumptions (i.e. assumptions about what
> code far away from this point does), only local assumptions (i.e. that can be
> verified by just reading the function itself).  An alternative is to add some
> assertions that check the assumptions you are relying on.
>
> Ciao, Duncan.
>
> PS: Please don't forget to add some descriptive comments.




More information about the llvm-commits mailing list