[llvm-dev] Why are generic dag combines run before target dag combines?

Craig Topper via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 9 19:28:01 PDT 2020


Probably because there's also constant folding and canonicalization
transforms usually at the beginning of the generic DAG combine. In general
you probably want target combines to run after that. Is it possible to do
your combine from the generic combined form? The other option is to add a
TLI hook to disable the transform. We've got a quite a lot of those.

~Craig


On Thu, Jul 9, 2020 at 7:05 PM Thomas Lively via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi llvm-dev,
>
> I just tried to implement a target-specific dag combine to preempt a
> generic dag combine, and I was surprised to see that it didn't work because
> the generic dag combines are run first. Does anyone know the rationale for
> running the generic dag combines first? I would have expected the target
> dag combines to run first because they have more specific information about
> what combines will be useful.
>
> Thanks,
>
> Thomas
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200709/6ba3747b/attachment.html>


More information about the llvm-dev mailing list