[llvm-dev] GVN Hoist moving a store across load

Daniel Berlin via llvm-dev llvm-dev at lists.llvm.org
Fri Aug 5 13:49:17 PDT 2016


>From what i can tell (just diffing before/after) , this is caused by the
same iterator bug and should be fixed in a moment by
https://reviews.llvm.org/D23187



On Fri, Aug 5, 2016 at 1:19 PM, Krzysztof Parzyszek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Opened https://llvm.org/bugs/show_bug.cgi?id=28874 for this.
>
> -Krzysztof
>
>
>
> On 8/5/2016 1:07 PM, Krzysztof Parzyszek via llvm-dev wrote:
>
>> Hi,
>>
>> I have a scenario, roughly like this:
>>
>>   if (...) {
>>     ... = *x
>>     *x = 0
>>   } else {
>>     ... = *x
>>     *x = 0
>>   }
>>
>> The two sides are functionally different, but both load some value and
>> then set it to 0.
>>
>> After GVN Hoist, I get:
>>
>>   *x = 0
>>   if (...) {
>>     ... = *x
>>   } else {
>>     ... = *x
>>   }
>>
>> That is, the store was hoisted above the loads.
>>
>> The code is not exactly public, so I can't just attach it as a testcase,
>> but it seems like some simple check is missing somewhere.
>>
>> Does this ring a bell?
>>
>> -Krzysztof
>>
>>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by The Linux Foundation
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160805/03ee882d/attachment.html>


More information about the llvm-dev mailing list