[llvm-dev] GVN Hoist moving a store across load
Krzysztof Parzyszek via llvm-dev
llvm-dev at lists.llvm.org
Fri Aug 5 14:08:30 PDT 2016
This patch fixes the original application. In the testcase, a load is
hoisted instead of the store.
Thanks!
-Krzysztof
On 8/5/2016 3:49 PM, Daniel Berlin wrote:
> 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 <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> Opened https://llvm.org/bugs/show_bug.cgi?id=28874
> <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 <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev
mailing list