[llvm-dev] [GlobalISel] Prioritizing long patterns in combiner over short ones
Dominik Montada via llvm-dev
llvm-dev at lists.llvm.org
Tue Dec 15 08:19:25 PST 2020
Hi Jason,
thanks for the reply. That's what we're already using but it's not
useful in this case. It seems that the order only actually matters when
the roots are the same. In my case, the roots are different. In one case
I'm trying to match a G_AND and in the other one I'm trying to match
G_OR. The G_AND pattern also shows up in the larger G_OR pattern. Since
the combiner walks top-down, it sees the G_AND before the G_OR and
matches the smaller pattern. When it then reaches the G_OR later on, the
larger pattern doesn't match anymore because the G_AND has been combined
away. If the combiner would walk bottom-up, it would see the G_OR before
the G_AND and my use-case would work as expected.
So this is not a problem of priority, but rather a problem of the
traversal that the combiner does. I do understand though that simply
switching the traversal to bottom-up won't work in every case and might
even cause the same problem.
Cheers,
Dominik
Am 15.12.20 um 17:05 schrieb Jason Eckhardt:
> GICombineGroup may be of use:
>
> // A group of combine rules that can be added to a GICombiner or
> another group.
> class GICombineGroup<list<GICombine> rules> : GICombine {
> // The rules contained in this group. The rules in a group are
> flattened into
> // a single list and sorted into whatever order is most efficient.
> However,
> // they will never be re-ordered such that behaviour differs from the
> // specified order. It is therefore possible to use the order of
> rules in this
> // list to describe priorities.
> let Rules = rules;
> }
>
>
> ------------------------------------------------------------------------
> *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of
> Dominik Montada via llvm-dev <llvm-dev at lists.llvm.org>
> *Sent:* Tuesday, December 15, 2020 9:09 AM
> *To:* LLVM Developers' List <llvm-dev at lists.llvm.org>
> *Subject:* [llvm-dev] [GlobalISel] Prioritizing long patterns in
> combiner over short ones
> External email: Use caution opening links or attachments
>
>
> Hi,
>
> I'm currently writing target specific combiners with GlobalISel. I have
> a case where a sub-node of a larger pattern also matches another,
> smaller combiner pattern. Because the combiner runs top-down, the
> smaller pattern is matched before the larger pattern has a chance to be
> matched. Do I have to teach my larger pattern to handle this case or is
> there a better way to do this?
>
> More importantly, are there any plans to improve this behavior?
>
> Cheers,
>
> Dominik
>
> --
> ----------------------------------------------------------------------
> Dominik Montada Email: dominik.montada at hightec-rt.com
> HighTec EDV-Systeme GmbH Phone: +49 681 92613 19
> Europaallee 19 Fax: +49-681-92613-26
> D-66113 Saarbrücken WWW: http://www.hightec-rt.com
>
> Managing Director: Vera Strothmann
> Register Court: Saarbrücken, HRB 10445, VAT ID: DE 138344222
>
> This e-mail may contain confidential and/or privileged information. If
> you are not the intended recipient please notify the sender immediately
> and destroy this e-mail. Any unauthorised copying, disclosure or
> distribution of the material in this e-mail is strictly forbidden.
> ---
>
--
----------------------------------------------------------------------
Dominik Montada Email: dominik.montada at hightec-rt.com
HighTec EDV-Systeme GmbH Phone: +49 681 92613 19
Europaallee 19 Fax: +49-681-92613-26
D-66113 Saarbrücken WWW: http://www.hightec-rt.com
Managing Director: Vera Strothmann
Register Court: Saarbrücken, HRB 10445, VAT ID: DE 138344222
This e-mail may contain confidential and/or privileged information. If
you are not the intended recipient please notify the sender immediately
and destroy this e-mail. Any unauthorised copying, disclosure or
distribution of the material in this e-mail is strictly forbidden.
---
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201215/5dc3deb4/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 6822 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201215/5dc3deb4/attachment.bin>
More information about the llvm-dev
mailing list