[llvm-dev] Q. about GlobalISel and order of instructions
Quentin Colombet via llvm-dev
llvm-dev at lists.llvm.org
Fri Jan 29 10:32:12 PST 2021
Hi Paul,
Thanks for the heads-up!
> On Jan 28, 2021, at 8:12 PM, via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hello Global ISel fans,
>
> I am trying to patch up some unittests that accidentally weren't
> actually running (https://reviews.llvm.org/D95257). A number of
> these look like all the right instructions are coming out, but
> they aren't "in the right order." That is, I see some tests
> expect something along the lines of
>
> %2:_(s16) = G_TRUNC
> %3:_(s10) = G_TRUNC %2:_(s16)
> %4:_(s10) = G_SEXT_INREG %3:_(s10)
> %5:_(s16) = G_SEXT %4:_(s10)
>
> That is, each instruction feeds nicely into the next one.
> But what I'm actually seeing is reordered:
>
> %5:_(s16) = G_SEXT %4:_(s10)
> %2:_(s16) = G_TRUNC
> %4:_(s10) = G_SEXT_INREG %3:_(s10)
> %3:_(s10) = G_TRUNC %2:_(s16)
>
> Now, I can certainly patch up the test to match the order I see,
> but... Is that actually correct? Naively it looks like we have
> uses preceding defs, which just looks weird.
That’s definitely broken!
>
> If the order I'm seeing is wrong (and it's just a standard dump
> of a MachineFunction) then can somebody fix it?
Are these the tests you marked as FIXME in the PR you’ve linked?
Cheers,
-Quentin
> It will sure
> make a lot less churn in the unittest.
>
> Thanks,
> --paulr
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
More information about the llvm-dev
mailing list