[llvm-dev] [GlobalISel] Prioritizing long patterns in combiner over short ones
Amara Emerson via llvm-dev
llvm-dev at lists.llvm.org
Tue Jan 19 22:51:39 PST 2021
+Daniel.
Daniel, do you remember if there was a strong reason for choosing to go top-down on the combiner?
Amara
> On Dec 17, 2020, at 2:14 AM, Jay Foad via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> I am really surprised that "the combiner runs top-down". Surely it's
> better to combine smaller sub-expressions before combining larger
> expressions? Or is there actually a good reason to keep the top-down
> order??
>
> DAGCombiner also runs mostly top-down (but it can also add nodes to
> the worklist in a bottom-up direction for certain cases). The top-down
> order causes problems when you have deep expressions trees that could
> be simplified away to nothing. Outer combines see these subexpression
> unsimplified. They can use recursive helper functions like
> computeKnownBits to try to analyse the unsimplified expression, but
> the recursive helper functions typically have a max recursion depth of
> 6. which is easy to hit.
>
> DAGCombiner is so embedded now that it is hard to change the basic
> top-down order, but I would hope we could change the GlobalISel
> combiner.
>
> Jay.
>
> On Tue, 15 Dec 2020 at 15:09, Dominik Montada via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>>
>> 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.
>> ---
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> _______________________________________________
> 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