[PATCH] D29268: [DAGCombine] Combine composition of ADDC(ADDE)
Zvi Rackover via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 30 01:18:57 PST 2017
zvi added inline comments.
================
Comment at: lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1872
+ if (N1.getOpcode() == ISD::ADDE &&
+ N->isOnlyUserOf(N1.getValue(0).getNode()) &&
+ isNullConstant(N1.getOperand(1)))
----------------
deadalnix wrote:
> Is that important to check this has only one use ? I'd assume that having (adde Y, 0, Carry) + (adde X, Y, Carry) is still preferable to (addc X, (adde Y, 0, Carry)) as it break dependencies between instructions.
That's a fair point, but here I am following the practice that is common in the DAG Combiner. If you search for "hasOneUse" or "isOnlyUserOf" you can see the conservative approach of avoiding increase in instruction count.
If you can provide a benchmark that can show this case is an exception, we can discuss the trade-off with data to guide us - and better do it in a follow-up patch.
Repository:
rL LLVM
https://reviews.llvm.org/D29268
More information about the llvm-commits
mailing list