[llvm-dev] Q. about GlobalISel and order of instructions
via llvm-dev
llvm-dev at lists.llvm.org
Fri Jan 29 12:00:17 PST 2021
> -----Original Message-----
> From: Quentin Colombet <qcolombet at apple.com>
> Sent: Friday, January 29, 2021 1:32 PM
> To: Robinson, Paul <paul.robinson at sony.com>
> Cc: llvm-dev at lists.llvm.org
> Subject: Re: [llvm-dev] Q. about GlobalISel and order of instructions
>
> 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://urldefense.com/v3/__https://reviews.llvm.org/D95257__;!!JmoZiZGBv
> 3RvKRSx!pxOXw4x2XmGszxqKSXAovQkJx-
> JyBTV988c1AXpEDJn9K0UNJwwjhVEcDTvbulL5Dw$ ). 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?
Thanks, Quentin! Some of them have other more functional differences,
which are probably normal things where I can fix the test to match.
The ones that have just the ordering problem look like this set:
FewerElementsPhi
WidenScalarBuildVector
WidenSEXTINREG
NarrowSEXTINREG
Thanks!
--paulr
>
> 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://urldefense.com/v3/__https://lists.llvm.org/cgi-
> bin/mailman/listinfo/llvm-
> dev__;!!JmoZiZGBv3RvKRSx!pxOXw4x2XmGszxqKSXAovQkJx-
> JyBTV988c1AXpEDJn9K0UNJwwjhVEcDTsB1HBaAQ$
More information about the llvm-dev
mailing list