[PATCH] D33587: [DAGCombine] Do several rounds of combine.

Amaury SECHET via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 28 18:09:23 PST 2019


deadalnix added a comment.

In D33587#1374792 <https://reviews.llvm.org/D33587#1374792>, @craig.topper wrote:

> I don't see changes to addcarry.ll and subborrow.ll in this patch. So do we not have test cases from your workloads that show the benefit of this patch?


That is because I have other transforms that have no effect without this patch. To be able to do anything more than what's already done, I need to linearize carries propagation as in D57302 <https://reviews.llvm.org/D57302>. Then I can do various transforms such as D57317 <https://reviews.llvm.org/D57317> (I have others to submit). Without reworking the carry propagation, there is no hope of getting nice chains of adc (or whatever the equivalent is on the target) and without this, breaking diamond propagation doesn't work reliably as the patterns are too deep.

I can submit other patches, but at this time it only looks like it would clutter the review queue as they'd all depend on D57302 <https://reviews.llvm.org/D57302> which doesn't work reliably without this one. As mentioned earlier, punching through zext/sext and other ops that often find themselves on the path of carries works as well for me, but it seems like a missed opportunity considering what we get out of SimplifyDemandedBits and alike.

> Are there non-X86 changes from this patch as well that haven't been captured here? Or is X86 somehow the only target affected by this?

There are other changes. Most of them in the AMDGPU backend. I will get them sorted out before committing anything, but I would like that we decide of a path forward so I can avoid maintaining them manually for a long time. the x86 ones are easy to maintain thanks to utils/update_llc_test_checks.py


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D33587/new/

https://reviews.llvm.org/D33587





More information about the llvm-commits mailing list