[PATCH] D64174: [DAGCombine] Do several rounds of combine for addcarry nodes.

Amaury SECHET via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 16 20:34:48 PDT 2019


deadalnix added a comment.

In D64174#1624738 <https://reviews.llvm.org/D64174#1624738>, @lebedev.ri wrote:

> IMHO this is very unusual and papers over some other problem.


The problem it paper over is that the pattern we are interested in are deep. The same technique benefits any deep pattern, such as anything using simplifydemandedbits, but there was concern that doing it in all cases would hurt performance. The reason you end up with deep patterns in that case is because you find yourself facing things such as:

(addcarry (uaddo a, b), 0, c) and now you have two carries that propagate and the rest of the DAG is a total mess. This benefits cryptographic computation - and I'd expect many large integer computation in general - substantially.

The approach isn't that unusual as it is similar to what InstCombine does, only more focused on specific nodes that especially benefit to ensure performances stay good in case this isn't required.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D64174





More information about the llvm-commits mailing list