[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